Серия статей для изучения:
Серия Learning Microservices (1): Общие сведения о микросервисах
Серия Learning Microservices (2): Создание сервисов на основе Springboot
Серия учебных микросервисов (4): шлюз сервисного шлюза springboot
Серия Learning Microservices (5): микросервисы springboot используют nacos в качестве реестра
Серия Learning Microservices (7): анализ принципов nacos
Learning Microservices Series (8): Springboot Service Distributed Transactions and Solutions
Learning Microservices Series (9): Дизайн аутентификации безопасности интерфейса службы Springboot
Серия Learning Microservices (11): CI/CD, DevOps для микросервисов
Серия Learning Microservices (12): Управление услугами
В нашей вышеприведенной статье показан ряд связанных технологий в архитектуре микросервисов.Когда бизнес-сервисы превратятся в архитектуру микросервисов, возникнут проблемы управления службами. В архитектуре микросервисов возникают новые проблемы с сервисами, что требует управления сервисами для микросервисов. Какие проблемы должны решить микросервисы? 1. Наблюдаемость. Поскольку у микрослужб больше носителей развертывания, чем у монолитных приложений, им необходимо иметь четкий контроль над отношениями вызова и состоянием многих служб. 2. Управление трафиком и защита безопасности. Поскольку существуют разные версии микросервисов, в процессе смены версии необходимо контролировать вызовы между микросервисами, чтобы выполнить плавную смену версий микросервисов. В этом процессе его необходимо распределить по разным версиям служб в соответствии с характеристиками трафика (параметры доступа и т. д.) и процентным соотношением, что также отражает темы подразделения управления службами, такие как выпуск в градациях серого, выпуск в сине-зеленых тонах и А/Б тестирование.
наблюдаемость
Наблюдаемость Нам нужно несколько программ APM, чтобы отслеживать состояние службы. В том числе загрузка процессора в оборудовании, ситуация с памятью и ситуация с сетью. Такая информация, как время отклика интерфейса частоты ошибок и вызывающая ссылка на уровне системного программного обеспечения.
Как правило, наши часто используемые инструменты APM:
SkyWalking
адрес github: wu-sheng/sky-walking. Это открытая версия брата по имени Ву Шэн из Китая. Это также система для отслеживания, оповещения и анализа бизнес-операций кластеров распределенных приложений JAVA. Функции относительно просты. Однако , отслеживание ссылок может хорошо поддерживаться в некоторых относительно простых сервисах.
Zipkin
Это открытый исходный код Twitter.Java-приложение Zipkin использует компонент под названием Brave для сбора данных анализа производительности внутри приложения. Реализуя серию перехватчиков Java, он может отслеживать процесс вызова запросов http/servlet и доступ к базе данных. Затем, добавляя эти перехватчики в файлы конфигурации, такие как spring, сбор данных о производительности java-приложений завершается. Своевременный сбор данных для служб для устранения проблем с задержкой в микросервисных архитектурах, включая сбор, хранение, поиск и представление данных.
Grafana+zabbix
Программное обеспечение Zabbix может отслеживать многочисленные сетевые параметры, а также работоспособность и целостность сервера. Zabbix использует гибкий механизм оповещения, который позволяет пользователям настраивать оповещения по электронной почте практически для любого события. Это позволяет пользователям быстро реагировать на проблемы с сервером.
Кроме того, существует много коммерческого программного обеспечения APM: например, Tingyun, Bo Rui и др.
Управление трафиком и защита безопасности
Управление трафиком и защита автоматических выключателей, здесь я подробно расскажу о страже Али. Давайте сначала взглянем на экосистему Sentinel:
Sentinel разделен на две части:
- Базовая библиотека (Java-клиент) не зависит ни от какой платформы/библиотеки, может работать во всех средах выполнения Java, а также имеет хорошую поддержку таких платформ, как Dubbo/Spring Cloud.
- Консоль (Dashboard) разработана на основе Spring Boot и может запускаться сразу после упаковки без дополнительных контейнеров приложений, таких как Tomcat.
Сравнение с Хайстрикс:
Доступ к консоли для просмотра данных мониторинга в режиме реального времени
- Сначала вам нужно загрузить jar-пакет консоли, вы можете напрямую загрузить его сGitHub.com/alibaba/s ru…страницу для загрузки, или вы можете скачать исходный код и скомпилировать его самостоятельно (GitHub.com/alibaba/s ru…
java -Dserver.port=8333- Dcsp.sentinel.dashboard.server=localhost:8333 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.4.2.jar
- -Dserver.port указывает порт консоли
- -Dcsp.sentinel.dashboard.server указывает адрес консоли, что эквивалентно регистрации себя, чтобы вы могли видеть свою информацию после запуска
- -Dproject.name указывает имя подключенного приложения
- доступ после запускаhttp://localhost:8333Вы можете перейти на домашнюю страницу консоли, как показано ниже:
Мы не будем объяснять работу в этой консоли.Вы можете попробовать сами.Например, если мы хотим увидеть данные мониторинга в реальном времени, то щелкните первое меню мониторинга в реальном времени, и вы увидите следующие эффекты:
Вся страница консоли объясняется на китайском языке. Вы можете просто щелкнуть и ознакомиться с конкретными функциями каждой части. Вы можете увидеть количество запросов в секунду для каждого URI, количество отклоненных запросов в секунду и другую информацию.
Консоль клиентского доступа
Вышеупомянутое фактически подключает саму консоль.Если мы хотим получить доступ к проектам в нашей реальной работе, как мы должны получить к ней доступ? Клиенту необходимо импортировать модуль Transport для связи с консолью Sentinel. Вы можете импортировать пакет JAR через pom.xml:
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>1.8.1</version>
</dependency>
Аналогичным образом увеличьте параметр запуска JVM, чтобы указать адрес консоли:
-Dcsp.sentinel.dashboard.server=localhost:8333
Примечание. Если ваше приложение является приложением Spring Boot или Spring Cloud, вы можете использовать Spring Cloud Alibaba, чтобы указать конфигурацию через файл конфигурации Spring.Мы обсудим конкретную конфигурацию ниже.
Sentinel будет инициализирован, когда клиент вызовет его в первый раз, и начнет отправлять пакеты пульса на консоль. Затем мы можем увидеть наши собственные подключенные приложения на консоли. И различные механизмы ограничения тока могут быть добавлены через конфигурацию.
В проекте Springboot представлен Sentinel
- добавлен pom-файл
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
- добавлен файл свойств
#sentinel控制台
spring.cloud.sentinel.transport.dashboard=localhost:8099
spring.cloud.sentinel.eager=true
- После запуска дозорной консоли запустите службу springboot напрямую.
На этом вся наша серия микросервисов закончена, и в будущем мы напишем другие темы, включая Vue на стороне пользователя и golang на стороне сервера, которые уже были освещены в этой серии. Пожалуйста, обратите больше внимания на общедоступный номер:IT技术小栈