Адрес фактического проекта электронной коммерции SpringBoot (20k+star):GitHub.com/macro-positive/…
Резюме
Spring Cloud Alibaba стремится предоставить универсальное решение для разработки микросервисов. Nacos, один из его основных компонентов, может использоваться в качестве центра регистрации и центра настройки. В этой статье подробно рассказывается об его использовании.
Введение в Нако
Nacos помогает вам обнаруживать, настраивать и управлять микросервисами. Nacos предоставляет набор простых в использовании функций, которые помогут вам быстро реализовать динамическое обнаружение сервисов, настройку сервисов, метаданные сервисов и управление трафиком.
Накос обладает следующими характеристиками:
- Обнаружение служб и мониторинг работоспособности служб: поддержка обнаружения служб на основе DNS и RPC, поддержка проверки работоспособности служб в режиме реального времени и предотвращение отправки запросов на неработоспособные хосты или экземпляры служб;
- Служба динамической конфигурации. Служба динамической конфигурации позволяет управлять конфигурацией приложений и конфигурацией служб всех сред централизованным, внешним и динамическим образом;
- Служба динамической DNS. Служба динамической DNS поддерживает взвешенную маршрутизацию, упрощая реализацию балансировки нагрузки среднего уровня, более гибких политик маршрутизации, управления трафиком и простых служб разрешения DNS для внутренней сети центра обработки данных;
- Управление службами и метаданными: поддерживает управление всеми службами и метаданными в центре обработки данных с точки зрения построения платформы микрослужб.
Использование Nacos в качестве реестра
Установите и запустите Nacos
-
Давайте сначала загрузим Nacos с официального сайта, скачать здесь
nacos-server-1.1.4.zip
файл, адрес загрузки:GitHub.com/alibaba/вывезти… -
настроить
JAVA_HOME
Переменные среды, если они не настроены, Nacos не сможет работать;
JAVA_HOME=D:\developer\env\Java\jdk1.8.0_91
-
Разархивируйте установочный пакет и запустите его напрямую
bin
в каталогеstartup.cmd
; -
После успешного запуска посетите
http://localhost:8848/nacos
Вы можете просмотреть домашнюю страницу Nacos.Пароль учетной записи по умолчанию — nacos.
Создайте заявку на регистрацию в Nacos
Мы демонстрируем функции регистрации и обнаружения служб путем преобразования consul-user-service и consul-ribbon-service, в основном путем изменения исходной поддержки реестра Consul на поддержку реестра Nacos.
-
Создайте модуль nacos-user-service и модуль nacos-ribbon-service;
-
Если вы хотите использовать компоненты Spring Cloud Alibaba, вам необходимо добавить следующую конфигурацию в pom.xml;
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- Измените соответствующие зависимости и измените зависимости, найденные в исходной регистрации Consul, на Nacos:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- Измените файл конфигурации application.yml и измените конфигурацию регистрации и обнаружения Consul на Nacos:
server:
port: 8206
spring:
application:
name: nacos-user-service
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
management:
endpoints:
web:
exposure:
include: '*'
- Запустив два nacos-user-service и один nacos-ribbon-service, вы можете увидеть следующую информацию на странице Nacos:
Функция балансировки нагрузки
Поскольку мы запускаем два nacos-user-services, а nacos-ribbon-service по умолчанию вызывает свой интерфейс, мы вызываем интерфейс nacos-ribbon-service для демонстрации функции балансировки нагрузки.
Вызовите интерфейс несколько раз:http://localhost:8308/user/1, вы можете обнаружить, что консоли двух nacos-user-service поочередно печатают следующую информацию.
2019-11-06 14:28:06.458 INFO 12092 --- [nio-8207-exec-2] c.macro.cloud.controller.UserController : 根据id获取用户信息,用户名称为:macro
Используйте Nacos в качестве центра конфигурации
Мы демонстрируем функцию управления конфигурацией, создавая модуль nacos-config-client и добавляя информацию о конфигурации на страницу Nacos.
Создайте модуль nacos-config-client.
- Добавьте связанные зависимости в pom.xml:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- Добавьте файл конфигурации application.yml, чтобы включить настройку среды разработки:
spring:
profiles:
active: dev
- Добавьте файл конфигурации bootstrap.yml, в основном для настройки функции Nacos в качестве центра конфигурации:
server:
port: 9101
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos地址
config:
server-addr: localhost:8848 #Nacos地址
file-extension: yaml #这里我们获取的yaml格式的配置
- Создайте ConfigClientController и получите информацию о конфигурации из центра конфигурации Nacos:
/**
* Created by macro on 2019/9/11.
*/
@RestController
@RefreshScope
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/configInfo")
public String getConfigInfo() {
return configInfo;
}
}
Добавить конфигурацию в Nacos
- Давайте сначала поговорим о формате композиции dataid в Nacos и соответствующей связи с атрибутами в конфигурационном файле SpringBoot:
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
- Например, теперь мы хотим получить имя приложения как
nacos-config-client
применение вdev
окружающая обстановкаyaml
Конфигурация dataid следующая:
nacos-config-client-dev.yaml
- Добавьте следующую конфигурацию в соответствии с указанным выше идентификатором данных:
config:
info: "config info for dev"
- Заполните схему конфигурации:
- Запустите nacos-config-client и вызовите интерфейс для просмотра информации о конфигурации:http://localhost:9101/configInfo
config info for dev
Конфигурация динамического обновления Nacos
Пока мы изменяем информацию о конфигурации в Nacos и снова вызываем интерфейс для просмотра конфигурации, мы обнаружим, что конфигурация была обновлена.Nacos и Consul поддерживают конфигурацию динамического обновления. Когда мы изменим конфигурацию на странице Nacos и опубликуем ее, приложение обновит конфигурацию и распечатает следующую информацию.
2019-11-06 14:50:49.460 INFO 12372 --- [-localhost_8848] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$ec395f8e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-11-06 14:50:49.608 INFO 12372 --- [-localhost_8848] c.a.c.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'nacos-config-client-dev.yaml', group: 'DEFAULT_GROUP'
2019-11-06 14:50:49.609 INFO 12372 --- [-localhost_8848] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='nacos-config-client-dev.yaml'}, NacosPropertySource {name='nacos-config-client.yaml'}]}
2019-11-06 14:50:49.610 INFO 12372 --- [-localhost_8848] o.s.boot.SpringApplication : The following profiles are active: dev
2019-11-06 14:50:49.620 INFO 12372 --- [-localhost_8848] o.s.boot.SpringApplication : Started application in 0.328 seconds (JVM running for 172.085)
2019-11-06 14:50:49.638 INFO 12372 --- [-localhost_8848] o.s.c.e.event.RefreshEventListener : Refresh keys changed: [config.info]
использованная литература
Официальная документация Spring Cloud Alibaba:GitHub.com/Alibaba/SPR…
используемые модули
springcloud-learning
├── nacos-config-client -- 用于演示nacos作为配置中心的nacos客户端
├── nacos-user-service -- 注册到nacos的提供User对象CRUD接口的服务
└── nacos-ribbon-service -- 注册到nacos的ribbon服务调用测试服务
Адрес исходного кода проекта
публика
проект торгового центраПолный набор учебных пособий сериализуется,Обратите внимание на общедоступный номерПолучите это прямо сейчас.