Обмен технологиями

Учебные заметки Grain Mall-23-Распределенные компоненты-SpringCloud Alibaba-Центр конфигурации Nacos-Простой пример

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Я уже научился использовать Nacos в качестве центра регистрации. В этом разделе мы познакомимся с еще одной основной функцией Nacos:配置中心

1. Знакомство с центром конфигурации Nacos

Nacos — это простая в использовании платформа для динамического обнаружения сервисов и управления конфигурацией. В качестве центра конфигурации Nacos предоставляет следующие основные функции и преимущества:

  1. Динамическое управление конфигурацией: Nacos позволяет пользователям динамически изменять и отправлять информацию о конфигурации без перезапуска службы, обеспечивая обновления конфигурации в реальном времени.

  2. Настройка централизованного хранилища: Nacos обеспечивает централизованное хранилище конфигурации, что упрощает управление и обслуживание информации о конфигурации, а также позволяет избежать проблемы разброса конфигурации по разным средам и системам.

  3. Настроить контроль версий: Nacos поддерживает контроль версий конфигурации, который может отслеживать историю изменений конфигурации и облегчать операции отката.

  4. Настроить общий доступ: Nacos позволяет совместно использовать конфигурацию между службами, улучшая возможность повторного использования конфигурации и уменьшая избыточность.

  5. Настройка изоляции: Благодаря концепции пространства имен Nacos поддерживает изоляцию конфигурации различных сред (например, разработки, тестирования и производства), чтобы гарантировать, что конфигурации между средами не будут мешать друг другу.

  6. Настройка прослушивания и отправки: Nacos предоставляет функцию мониторинга конфигурации. При изменении конфигурации он может активно отправлять обновления клиенту для обеспечения горячего обновления конфигурации.

  7. безопасность: Nacos поддерживает контроль доступа к конфигурации и управление разрешениями, чтобы гарантировать, что только авторизованные пользователи могут получить доступ к конфигурациям или изменить их.

  8. Поддержка нескольких сред: Nacos поддерживает различные среды развертывания и может обеспечить управление конфигурациями различного масштаба и потребностей.

  9. Интеграция с Spring Cloud: Nacos тесно интегрирован со Spring Cloud и предоставляет Spring-cloud-starter-alibaba-nacos-config и другие компоненты, упрощающие процесс использования центра конфигурации Nacos в приложениях Spring Cloud.

  10. Простота использования: Nacos предоставляет дружественный пользовательский интерфейс, делающий просмотр, изменение и управление конфигурациями интуитивно понятным и простым.

В качестве центра конфигурации Nacos подходит для микросервисной архитектуры, облачных приложений и распределенных систем, требующих динамического управления конфигурацией. Централизованно управляя конфигурациями, Nacos помогает предприятиям повысить эффективность и безопасность управления конфигурациями, а также упрощает разработку, эксплуатацию и обслуживание.

2. Инструкция по использованию Центра конфигурации Nacos

Инструкция по использованию подробно записана в официальной документации, нажмите, чтобы просмотреть документациюhttps://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html

1. Объявите зависимость Maven от центра конфигурации.

Чтобы использовать центр конфигурации, необходимо сначала добавить зависимости.

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

В проекте Guli Mall, поскольку все сервисы должны использовать центр конфигурации Nacos, эта зависимость добавлена ​​в общий модуль.

2. Настройте адрес и имя приложения сервера Nacos в bootstrap.properties.

В каталоге ресурсов проекта или модуля объявите адрес и имя службы сервера Nacos в файле bootstrap.properties.

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon
  • 1
  • 2

3. Создайте файл конфигурации в интерфейсе списка конфигурации Nacos.

Вставьте сюда описание изображения

После нажатия кнопки «Создать конфигурацию» появится следующая страница.

Вставьте сюда описание изображения

  • ① Идентификатор данных эквивалентен имени файла и должен включать имя службы, например gulimall-coupon.properties.
  • ② Тип файла конфигурации поддерживает несколько типов. Для микросервисов это обычно yaml или свойства.
  • ③ Черный ящик содержит информацию о конфигурации, которую необходимо заполнить.

существовать Nacos Spring Cloud середина,Data Id Полный формат выглядит следующим образом:

${prefix}-${spring.profiles.active}.${file-extension}
  • 1
  • prefix Значение по умолчанию:spring.application.name Значение также можно передать через элемент конфигурацииspring.cloud.nacos.config.prefixнастроить.
  • spring.profiles.active То есть, соответствующий текущей обстановкеprofile , пожалуйста, обратитесь к документации Spring Boot для получения подробной информации. Примечание: когдаspring.profiles.active Когда он пуст, соответствующий коннектор не будет существовать, и формат склейки dataId становится${prefix}.${file-extension}
  • file-exetension Чтобы настроить формат данных контента, вы можете передать элемент конфигурацииspring.cloud.nacos.config.file-extension настроить.На данный момент поддерживает толькоproperties иyaml тип.

Три, тест

1. Поместите информацию о конфигурации в проект.

Сначала мы помещаем информацию в файл конфигурации проекта и настраиваем следующую информацию в файле конфигурации application.properties модуля купона:

coupon.user.name=lcy
coupon.age=22
  • 1
  • 2

Вставьте сюда описание изображения

2. Напишите тестовый код

Добавьте в контроллер метод, который будет использовать информацию о конфигурации из файла конфигурации.

	@Value("${coupon.user.name}")
    private String userName;
    @Value("${coupon.user.age}")
    private String userAge;

    @RequestMapping("test")
    public R test(){
        return R.ok().put("name", userName).put("age", userAge);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Обратите внимание, что в приведенном выше коде мы вводим конфигурацию из файла конфигурации в переменную класса через аннотацию @Value, а затем ссылаемся на нее в методе.

3. Тест

После запуска службы введите следующий адрес в браузере.

http://localhost:7000/coupon/coupon/test
  • 1

Вывод следующий: информация в файле конфигурации прочитана.
Вставьте сюда описание изображения

4. Настройте информацию о конфигурации в центре конфигурации.

В качестве примера для настройки возьмите сервис купонов.
Вставьте сюда описание изображения

Нажмите кнопку редактирования в правой части списка файлов конфигурации, чтобы войти в интерфейс редактирования.

Вставьте сюда описание изображения

Обратите внимание: чтобы прояснить разницу и связь между файлом конфигурации центра конфигурации и локальным файлом конфигурации, мы не удаляли локальную конфигурацию на предыдущем шаге.

В настоящее время в центре конфигурации настроена только одна конфигурация. Эта конфигурация также доступна в локальной конфигурации, но значение локальной конфигурации отличается.coupon.user.name=lcy, центр конфигурацииcoupon.user.name=lcy2

Обновите браузер после перезапуска службы. Результаты следующие.

Вставьте сюда описание изображения
Очевидно, что значение name берется из центра конфигурации, а не из локального файла конфигурации.Значение в центре конфигурации перезапишет значение в локальном файле конфигурации.

журнал ошибок

Запись об ошибке Центра конфигурации торгового центра Guli Mall