в предыдущих двух статьях
Базовое руководство по Spring Cloud Alibaba, часть 1: использование Nacos для реализации регистрации и обнаружения сервисов
Базовое руководство по Spring Cloud Alibaba, часть 2: режим потребления
Я считаю, что у нас есть простое представление о том, как использовать Nacos для создания центра регистрации и реализации регистрации и обнаружения услуг. В Alibaba Spring Cloud мы также можем использовать методы потребления услуг Ribbon и Feign. Итак, далее давайте узнаем об управлении конфигурацией Nacos, чтобы почувствовать его красоту.
1. Введение в управление конфигурацией Nacos
Согласно официальным документам, Nacos занимается не только обнаружением служб и мониторингом работоспособности служб, а также реализует обнаружение регистрации служб, но и службы динамической настройки. Служба динамической конфигурации Nacos позволяет вам управлять конфигурацией приложений и конфигурацией служб всех сред централизованно, внешне и динамически.Мы можем централизованно хранить все конфигурации во всей системе архитектуры в Nacos. Этот принцип тот же, что и в Spring Cloud Config, преимущества заключаются в следующем:
- Динамическая конфигурация устраняет необходимость повторного развертывания приложений и служб при изменении конфигурации, что делает управление конфигурацией более эффективным и гибким.
- Централизованное управление конфигурацией упрощает внедрение служб без сохранения состояния и упрощает эластичное расширение служб по требованию.
Nacos предоставляет хранилище ключей/значений для хранения конфигурации и других метаданных, обеспечивая серверную и клиентскую поддержку внешней конфигурации в распределенных системах. С помощью Spring Cloud Alibaba Nacos Config вы можете централизованно управлять конфигурацией внешних свойств вашего приложения Spring Cloud в Nacos Server. Spring Cloud Alibaba Nacos Config является альтернативой Config Server и Client.Концепции клиента и сервера имеют ту же абстракцию, что и Spring Environment и PropertySource.На специальном этапе начальной загрузки конфигурация загружается в среду Spring. По мере того, как приложение перемещается по конвейеру развертывания от разработки к тестированию и производству, вы можете управлять конфигурацией между этими средами и гарантировать, что приложение имеет все необходимое для запуска при миграции.
2. Конфигурация Nacos в реальном бою
Далее мы расскажем, как создать содержимое конфигурации в Nacos и как получить информацию о конфигурации Nacos в приложениях Spring Cloud. Демонстрационная версия:
Nacos: 1.0.1 Spring Boot: 2.1.6.RELEASE Spring Cloud: Greenwich.SR1 Spring Cloud Alibaba: 0.2.2.RELEASE
Создать конфигурацию Nacos
Откройте браузер и введите: localhost:8848 Введите пароль учетной записи, чтобы войти на домашнюю страницу управления Nacos.
Нажмите в правом верхнем углу ➕ заполните следующую соответствующую конфигурациюPS:
- Идентификатор данных: Заполните alibaba-nacos-config-client.properties (почему это? Посмотрите на это медленно ниже)
- Группа: не изменять, использовать значение по умолчанию DEFAULT_GROUP.
- Формат конфигурации: поддержка шести форматов, здесь я выбираю Свойства
- Содержимое конфигурации: Содержимое конфигурации, загружаемое приложением, здесь только пример, выполните простую настройку, например: gongzhonghao=lihaodong_blog
В Nacos Spring Cloud полный формат dataId выглядит следующим образом:${prefix}-${spring.profile.active}.${file-extension}
- Префикс по умолчанию имеет значение spring.application.name, а также может быть настроен с помощью элемента конфигурации spring.cloud.nacos.config.prefix.
- spring.profile.active — это профиль, соответствующий текущей среде.Подробности см. в документации Spring Boot. Примечание. Когда spring.profile.active пуст, соответствующий коннектор также не будет существовать, а формат сплайсинга dataId станет
${prefix}.${file-extension}
- file-exetension — это формат данных содержимого конфигурации, который можно настроить с помощью элемента конфигурации spring.cloud.nacos.config.file-extension. В настоящее время поддерживаются только свойства и типы yaml.
После завершения настройки это выглядит так
После того, как настройка параметров завершена, их необходимо получить и упорядочить программой!
Создайте клиент конфигурации
Здесь используется та же поза, что и в предыдущей статье.
файл pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xd</groupId>
<artifactId>SpringCloudAlibabaLearn</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>alibaba-nacos-config-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>alibaba-nacos-config-client</name>
<description>Nacos作为配置中心服务</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--nacos config依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
В основном как подмодуль на предыдущей основе, интегрируйте родительский файл pom и добавьте зависимости nacos-config
bootstrap.properties
server.port=8084
#配置客户端 Nacos中创建的配置Data Id匹配( 除了.properties或者.yaml后缀)
spring.application.name=alibaba-nacos-config-client
#注册服务到nacos
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
Основной реестр конфигурации и центр конфигурации Примечание: здесь необходимо использовать bootstrap.properties. При этом значение spring.application.name должно совпадать с Data Id конфигурации, созданным на предыдущем этапе Nacos (за исключением суффикса .properties или .yaml)
Создайте основной класс приложения и реализуйте интерфейс:
package com.xd.alibabanacosconfigclient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope //主要用来让这个类下的配置内容支持动态刷新
@SpringBootApplication
public class AlibabaNacosConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(AlibabaNacosConfigClientApplication.class, args);
}
// nacos配置的参数
@Value("${gongzhonghao}")
private String gongzhonghao;
@GetMapping("/test")
public String getGongzhonghao() {
return gongzhonghao;
}
}
@SpringBootApplication
: определение является приложением Spring Boot.
@RestController
: аннотация @RestController, эквивалентная комбинации двух аннотаций @Controller+@ResponseBody, возвращает данные json без добавления аннотации @ResponseBody перед методом@Value
: Вводится конфигурация с ключом gongzhonghao (по умолчанию — пустая строка), эта конфигурация будет возвращена через интерфейс /test, и позже мы будем использовать этот интерфейс для проверки загрузки конфигурации в Nacos.@RefreshScope
: он в основном используется для того, чтобы содержимое конфигурации в этом классе поддерживало динамическое обновление, то есть после запуска нашего приложения после изменения содержимого конфигурации в Nacos оно вступит в силу немедленно.
стартовая программа
Консоль выводит адрес центра регистрации и информацию, относящуюся к центру конфигурации, что указывает на успешный запуск.тестовое задание
Откройте браузер и введитеhttp://localhost:8084/testСодержимое отображается следующим образом:
Полученный контент заключается в том, что конфигурация проверки, которую я настроил в nacos, прошла успешно.Мы изменяем этот контент через страницу Nacos после нажатия кнопки «Опубликовать». посмотри сноваhttp://localhost:8084/test Вы можете видеть, что результат возврата изменился
3. Ссылки:
- Официальная документация Nacos:nacos.io/zh-cn/
- Блоги, связанные с Nacos:blog.brotherspace.com/spring-ugly…
4. Пример кода
- GitHub: GitHub.com/l ИХ Аодонг 88…
- облако кода:гит ee.com/li_active/…
Если вы заинтересованы в них, добро пожаловать, пометьте, подпишитесь, добавьте в избранное и вперед, чтобы поддержать!