Добро пожаловать в Наггетс: [Ccww】учимся вместе
Возможность развиваться, ожидается повышение заработной платы
Знание интервью, ожидание работы
Практичная дрель, брак 996
Также приглашаем обратить внимание на публичный аккаунт WeChat [Технический блог Ccww], впервые была запущена оригинальная техническая статья
Если эта статья была вам полезна, понравилась, то ставьте палец вверх!
предисловие
Считаете ли вы, что вам трудно продвигаться по работе?
Вам трудно пройти собеседование при приеме на работу?
Вам кажется, что вы работаете сверхурочно за 996 каждый день?
Вы должны поддерживать способность учиться на работе, чтобы получить лучшее продвижение по службе, а повышение зарплаты уже не за горами. Добро пожаловать учиться вместе【Возможность развиваться, ожидается повышение заработной платы】ряд
- redis
- Параллелизм Java
- mongodb, весенняя загрузка, весенняя безопасность...
При поиске собеседования при приеме на работу вы должны суммировать баллы знаний на собеседовании на основе обучения, а работа не за горами.Добро пожаловать, чтобы учиться вместе【Знание интервью, ожидание работы】Серия+«Знания на собеседовании, работа ждет» — вопросы на собеседовании в MongoDB, чтобы легко справиться с пыткой души BAT
Наконец, должны ли быть полностью подготовлены теоретические знания, должны ли они применяться на практике? Добро пожаловать учиться вместе【Практичная дрель, брак 996】ряд
1. Сложная система разделения микросервисов приносит проблемы
Использование архитектуры микросервисов может принести нам пользу и удобство, но также создает множество проблем и новых проблем. Например, вызов, вызов и связь между микросервисами будут сложными? Режим связи один-к-одному или один-ко-многим? Зависимые службы не готовы, как я могу проверить свою функциональность разработки? Проблемы согласованности данных и т. д. Подводить итоги:
- Грубые и мелкие микросервисы трудно понять
- Распределенные микросервисы усложняют вызовы и взаимодействие между сервисами.
- Проблемы согласованности данных
- Повышенная сложность тестирования и связанная с этим интеграция микросервисов.
- Сложность эксплуатации и обслуживания резко возрастает.Большое количество развертываний и процесс мониторинга приводят к увеличению общей сложности эксплуатации и обслуживания.
- Зависимые изменения службы трудно отследить
Чтобы решить эти проблемы, когда мы проектируем микросервисную архитектуру, мы должны всесторонне рассмотреть и взвесить все за и против, чтобы сделать разумный выбор и добиться наилучшего эффекта, чтобы достичь конечной цели разделения нашей сложные системные микросервисы. Далее давайте обсудим и обсудим дизайн-мышление.
2. Метод микросервисного деления
Основная задача проектирования микросервисной архитектуры — разумно разделить бизнес-функции на микросервисы в соответствии с заданными факторами. У каждой компании есть свое бизнес-подразделение для каждой сложной системы, но микросервисы могут быть созданы на основе этих двух методов:
- Разделенные по разным уровням бизнес-функции-микросервисы Rest API:
- Отвечает за дизайн поведения бизнес-функции
- управление данными
- Обеспечить внешний интерфейс на основе протокола Rest
- Вертикальное разделение фронтенда и бэкэнда на основе микросервисов Rest API — микросервисы веб-интерфейса:
- Сосредоточьтесь на дизайне интерактивных страниц
- Доступ к данным на основе микросервисов Rest API
На основе распределенного высокопроизводительного дизайна с высокой степенью параллелизма в сочетании с микросервисами Rest API и микросервисами веб-интерфейса можно создать многомерную, стабильную и масштабируемую системную платформу, адаптируемую для доступа в любом масштабе.
3. Управление и координация микросервисов
При разработке микросервисов способность управления микросервисами имеет решающее значение, и даже качество микросервисной системы зависит от способности управления микросервисами. Компоненты и службы управления могут использоваться для управления и координации больших распределенных систем, чтобы гарантировать, что система работает правильно, стабильно и эффективно.
Здесь представлены только основные компоненты Spring Cloud (выбор компонентов управления должен основываться на ситуации в компании), в том числе:
- Eureka (регистрация и обнаружение микрослужб): предоставляет функции для регистрации и обнаружения служб.
- Лента (балансировка нагрузки): обеспечивает функцию управления планированием балансировки нагрузки.
- Zuul (Microservice Gateway): Предоставляет службы шлюза и функции динамической маршрутизации.
- Hystrix (предохранитель микросервиса): обеспечивает такие функции, как отказоустойчивость, снижение качества обслуживания и аварийное переключение.
- Config (унифицированная конфигурация): Предоставляет унифицированную функцию службы управления конфигурацией.
- Sleuth (отслеживание микрослужб): может использоваться для мониторинга работы служб в кластере.
Как эти компоненты осуществляют управление микросервисами? Основной процесс выглядит следующим образом:
4. Горизонтальное направление — дизайн микросервиса Rest API
Функции реализации микросервиса Rest API:
- Отвечает за дизайн поведения бизнес-функции
- управление данными
- Обеспечить внешний интерфейс на основе протокола Rest
Микросервисы Rest API в основном связаны с базами данных., где управление данными реализует сохраняемость данных на основе базы данных. При разработке интерфейса используются GET, POST, PUT, DELETE для выполнения операций CRUD с данными в соответствии со спецификациями Restful.
Но самое главное — как спроектировать микросервисы Rest API, производительность которых будет иметь решающее значение для производительности всей системы и будет играть решающую роль. Вот решения:
-
Используйте кластеризацию и группировку базы данных для обеспечения производительности доступа к базе данных:
- На основе кластера с распределенной архитектурой производительность доступа к базе данных увеличивается за счет синхронизации ведущий-ведомый, а несколько подчиненных устройств, доступных только для чтения, снижают нагрузку на хост при чтении и записи.
- В зависимости от группировки кластера обычно только одна группа находится в обычном режиме, а остальные играют роль резервного копирования.
-
ПО промежуточного слоя базы данных реализует разделение чтения и записи
-
Использование кэширования данных также может повысить производительность доступа к данным, и можно использовать высокопроизводительные базы данных NoSQL, такие как Redis. Тем не менее, чтобы обеспечить процент попаданий в кэш, необходимо соблюдать:
- Не храните большие объемы данных в кеше
- Разумно установите эффективное время для каждого кэшированного данных и не сохраняйте кэшированные данные.
-
Сохраняйте независимость микрослужб Rest API и запрещайте взаимные вызовы между микрослужбами Rest API.
5. Вертикальная ориентация — дизайн микросервиса веб-интерфейса
Вертикальное разделение, основанное на разделении интерфейсной и серверной частей микросервисов Rest API — микросервисы веб-интерфейса включают две функции:
- Сосредоточьтесь на дизайне интерактивных страниц
- Доступ к данным на основе микросервисов Rest API
При разработке микросервисов веб-интерфейса основное внимание уделяется высокому уровню параллелизма. Высокий уровень параллелизма может быть достигнут следующими методами:
-
В микрослужбе Rest API используйте FeignClient для реализации вызовов балансировки нагрузки. FeignClient автоматически реализует службы динамической маршрутизации Zuul и балансировки нагрузки Ribbon.
-
Используйте компоненты Hystrix для реализации конструкции автоматических выключателей, обеспечения отказоустойчивой конструкции для механизмов доступа к услугам и перехода на более раннюю версию.
-
Используйте неблокирующие асинхронные вызовы для достижения высокого параллелизма
-
Используйте распределенную файловую систему для независимого управления изображениями, видео и другими данными в распределенной файловой системе. Например, FastDFS.
6. Правила вызова между микросервисами
Чтобы обеспечить независимость каждого микросервиса, снизить сложность связи и повысить эффективность вызовов между микросервисами, мы придерживаемся следующих правил для вызовов между микросервисами:
- Есть в основномМикросервис веб-интерфейса вызывает микросервис Rest API, микрослужба веб-интерфейса может одновременно вызывать несколько Rest API.
- Чтобы обеспечить высокую производительность Rest API и избежать влияния изменений Rest API, запрещается вызывать друг друга между Rest API.Остальные API могут взаимодействовать друг с другом только через MQ..
- Веб-интерфейсы могут использовать соответствующие экземпляры для перехода друг к другу, а также могут выполнять управление балансировкой нагрузки.
7. Дизайн конечной согласованности данных
Для данных мультисервисной архитектуры микросервисов необходимо обеспечить согласованность данных, которую можно разумно спроектировать на основе теории BASE принципа CAP. Конкретные операции реализации:
- Операция синхронизации в реальном времени путем вызова различных API-интерфейсов Rest
- Используйте каналы сообщений для асинхронной обработки с учетом событий.
CAP (непротиворечивость, доступность, устойчивость к разделам) означает, что согласованность, доступность и устойчивость к разделам не могут сочетаться друг с другом.
BASE (базово доступный, мягкое состояние, в конечном счете непротиворечивый) в основном доступен, мягкое состояние и окончательная согласованность. BASE является результатом компромисса между согласованностью и доступностью в CAP.
8. Архитектура распределенного кластера
Благодаря среде управления микрослужбами несколько копий каждой микрослужбы могут быть опубликованы в одной и той же локальной сети или распределены по регионам и компьютерным залам для создания стабильной, надежной и устойчивой системной платформы. Как показано ниже:
9. Дизайн безопасности микросервиса
С точки зрения конструкции безопасности она может включать:
- Дизайн брандмауэра
- Противоударный дизайн
- Дизайн контроля доступа
- дизайн конфиденциальности данных
Конструкция брандмауэра является первым барьером для безопасности системы.Брандмауэры можно использовать для обеспечения безопасной и надежной распределенной среды для серверов с микросервисной архитектурой, как показано на следующем рисунке:
Вы в порядке, офицеры? Если вам это нравится, проведите пальцем, чтобы нажать 💗, нажмите, чтобы подписаться! ! Спасибо за Вашу поддержку!
Добро пожаловать в публичный аккаунт【Технический блог Ccww], впервые была запущена оригинальная техническая статья