Это 26-й день моего участия в августовском испытании обновлений.Подробности о событии:Испытание августовского обновления
🌈 Обзор прошлых выпусков
Спасибо за чтение, я надеюсь, что это может быть полезно для вас.Если есть какие-либо недостатки в сообщении в блоге, пожалуйста, оставьте сообщение в области комментариев или добавьте меня в личное представление на главной странице, чтобы пообщаться со мной в частном порядке. Я Сяолинь, мальчик, который умеет писать жуки и петь рэп.
- Самое полное объяснение SpringCloudAlibaba во всей сети 2️⃣ (рекомендуемая подборка)
- Самое полное объяснение SpringCloudAlibaba во всей сети 1️⃣ (рекомендуемая подборка)
- 💖Познакомьтесь с RocketMQ за 10 минут! Если хочешь зайти на али, то даже этого сделать нельзя? 2️⃣💖
5. Управление услугами: Nacos
5.1. Обзор управления услугами
Управление службами — это основной и самый базовый модуль микросервисной архитектуры. используется для реализации различных микросервисовАвтоматизируйте регистрацию и обнаружение.
-
Регистрация службы: в структуре управления службами создается центр регистрации, и каждое подразделение службы регистрирует сведения о своих собственных службах в центре регистрации. И сформировать список сервисов в центре регистрации.Центру регистрации сервисов нужно следить, доступны ли сервисы в списке по пульсу.Если нет, то нужно удалить недоступные сервисы из списка сервисов.
-
Обнаружение службы: вызывающая служба консультируется с центром регистрации службы для службы и получает список экземпляров всех служб, чтобы реализовать доступ к конкретному экземпляру службы.
5.2, принцип регистрации центра
- Когда мы начнем это снова, мы расскажем о регистрационном центре о информации об обслуживании, и в то же время вытащите новейшую информацию о последнем 1 списке услуг локально.
- Время от времени я отправляю в центр регистрации пульсирующий пакет, сообщая центру регистрации, что я все еще жив, и в то же время я вытаскиваю последнюю информацию из списка услуг.
- Если служба зависнет, то он не будет посылать пакеты сердцебиения в реестр. Если центр регистрации обнаружит, что пакет пульса не был отправлен несколько раз подряд, центр регистрации удалит информацию об узле этой службы, чтобы реализовать динамическую регистрацию и выброс службы, и нам не нужно управлять им вручную.
Реестр сервисов — очень важный компонент микросервисной архитектуры, он играет роль координатора в микросервисной архитектуре и обычно включает в себя следующие функции:
-
Обнаружение службы:
- Регистрация службы: сохраняет информацию о поставщиках услуг и абонентах службы.
- Подписка на службу: служба вызывает информацию поставщика услуг подписки, и реестр отправляет информацию поставщика подписчику.
-
Конфигурация службы:
- Подписка на конфигурацию: поставщики услуг и вызывающие службы подписываются на конфигурации, связанные с микрослужбами.
- Доставка конфигурации: активно передавайте конфигурацию поставщикам услуг и вызывающим службам.
-
Обнаружение работоспособности службы: Обнаружение работоспособности поставщика услуг.Если обнаружено, что служба не отправляет пакеты пульса несколько раз подряд, это означает, что служба ненормальна, и служба устраняется.
5.3. Общие центры регистрации
5.3.1. Зоопарк
Zookeeper — это инфраструктура распределенных служб и подпроект Apache Hadoop, который в основном используется для решения некоторых проблем управления данными, часто встречающихся в распределенных приложениях, таких как: унифицированная служба именования, служба синхронизации состояний, управление кластером, распределенное управление конфигурацией приложений. предметы и т. д.
5.3.2. Эврика
Eureka является важным компонентом Springcloud Netflflix, основная роль которого заключается в регистрации и обнаружении служб. Но теперь закрытый исходный код
5.3.3. Консул
Consul — это инструмент с открытым исходным кодом, разработанный на основе языка GO, в основном для распределенных сервис-ориентированных систем, обеспечивающий регистрацию сервисов, обнаружение сервисов и функции управления конфигурацией. Функции Consul очень практичны, в том числе: регистрация/обнаружение сервисов, проверка работоспособности, хранение ключей/значений, мультицентр обработки данных, гарантия распределенной согласованности и другие функции. Сам Консул представляет собой просто бинарный исполняемый файл, поэтому установка и развертывание очень просты, нужно только скачать его с официального сайта и выполнить соответствующий стартовый скрипт.
5.3.4. Нако
Nacos — это платформа для динамического обнаружения служб, управления конфигурацией и управления службами, которая упрощает создание облачных приложений. Это один из компонентов Spring Cloud Alibaba, который отвечает за обнаружение регистрации службы и настройку службы.
5.4. Введение в Нако
Nacos Alibaba Июль 2018 запуск проекта с открытым исходным кодом, проще построить динамическую облачную службу регистрации и обнаружения приложений, управления конфигурацией и управления услугами платформы. Nacos взяла на себя обязательство быстро реализовать динамическую регистрацию и обнаружение сервисов, настройку сервисов, метаданные сервисов и управление трафиком.
Его основные функции:
- Регистрация службы:
Клиент Nacos зарегистрирует собственную службу на сервере Nacos, отправив запрос REST, и предоставит собственные метаданные, такие как IP-адрес, порт и другую информацию. После того, как сервер Nacos получит запрос на регистрацию, он сохранит эти метаданные в двухуровневой карте памяти. 2. Сердцебиение службы:
После того, как служба зарегистрирована, клиент Nacos будет поддерживать регулярный пульс, чтобы поддерживать контроль над сервером Nacos, указывая, что служба постоянно доступна, чтобы предотвратить ее удаление.По умолчанию пульсация отправляется каждые 5 секунд. 3. Сервисная синхронизация:
Кластеры серверов Nacos будут синхронизировать экземпляры службы друг с другом, чтобы обеспечить согласованность информации о службе. 4. Обнаружение службы:
Когда потребитель службы (клиент Nacos) вызывает службу, предоставляемую службой, он отправляет запрос REST на сервер Nacos для получения списка служб, зарегистрированных выше, и кэширует его локально в клиенте Nacos. откроет запланированное задание локально в клиенте Nacos.Служба обновляет последнюю информацию реестра в локальный кеш. 5. Проверка работоспособности службы:
Nacos Server запустит запланированную задачу для проверки работоспособности зарегистрированного экземпляра службы.Для экземпляров, которые не получали пульс от клиента в течение более 15 секунд, для атрибута работоспособности будет установлено значение false (служба клиента не будет обнаружена).Если определенный Если экземпляр не получает пульс в течение более 30 секунд, экземпляр будет удален напрямую (экземпляр, который был удален, будет перерегистрирован, если он возобновит отправку импульсов).
5.5 Реальный бой Нако
5.5.1 Создание среды Nacos
5.5.1.1 Загрузка среды Nacos
Нам нужно идтиссылка для скачиванияЗагрузите Nacos, загруженный Nacos представляет собой установочный пакет в формате zip, а затем распакуйте его. Если вы работаете в Linux, вам нужно выполнить:
tar -zxvf Nacos下载包的名称
5.5.1.2 Старт
Мы используем Windows в качестве примера, то же самое верно и для Linux. Переключаемся сразу в директорию bin, затем cmd, вводим команду:
startup.cmd -m standalone
Автономная среда должна быть запущена с параметром -m standalone, иначе она не запустится Кластерная среда запускается без параметров..
Мы не берем никаких параметров (запускаем как кластер), и возникает следующая ошибка.
Чтобы начать правильно:
5.5.1.3 Тестирование
Открыть ввод в браузереhttp://localhost:8848/nacos/index.html#/login, вы можете получить доступ к сервису, пароль учетной записи по умолчанию — nacos.
5.5.2. Зарегистрируйте товары и услуги в Nacos
5.5.2.1 Добавление зависимостей
Нам нужно добавить зависимости nacos в файл pom.xml в модуле shop-product-server.
<!--nacos客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
5.5.2.2 Добавьте аннотации к основному классу
@SpringBootApplication
@EnableDiscoveryClient
public class ShopProductServerApp {
public static void main(String[] args) {
SpringApplication.run(ShopProductServerApp.class,args);
}
}
5.5.2.3 Добавить адрес службы Nacos
Нам нужно добавить адрес службы nacos в application.yml.
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
5.5.2.4 Просмотр
Объясните, что регистрация прошла успешно!
5.5.3 Зарегистрируйте услугу заказа в Nacos
Далее начинаем модифицировать код модуля shop-order-server и регистрировать его в сервисе nacos.
5.5.3.1 Добавление зависимостей
<!--nacos客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
5.5.3.2 Добавление аннотаций
@SpringBootApplication
@EnableDiscoveryClient
public class ShopOrderServerApp {
public static void main(String[] args) {
SpringApplication.run(ShopOrderServerApp.class,args);
}
@Bean
@LoadBalanced
public RestTemplate getInstance(){
return new RestTemplate();
}
}
5.5.3.3 Добавить адрес службы Nacos
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
5.5.3.4 Испытание
5.5.4, напишите тестовый код
@Autowired
private DiscoveryClient discoveryClient;
@RequestMapping("test")
public String test(){
ServiceInstance serviceInstance = discoveryClient.getInstances("product-service").get(0);
return serviceInstance.toString();
}