1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qm012-nacos-vip

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 9.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 08:37 508a545

Nacos: сервис-центр VIP-адресов для одноузловой и кластерной конфигурации

Введение

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

Этот подход подходит для управления как одноузловым, так и кластерным Nacos, в то время как для управляемого микросервисного движка MSE от Alibaba Cloud (https://cn.aliyun.com/product/aliware/mse) эта задача уже решена официально.

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

Для клиентских проектов на основе Spring Cloud и других клиентов (SpringBoot, Go, Node.js, Python и т. д.) при настройке адреса сервера конфигурации spring.cloud.nacos.config.serverAddr=127.0.0.1:8848,127.0.0.2:8848,127.0.0.3:8848 если у нас более 100 клиентов, и адрес меняется, нужно ли нам изменять конфигурацию для всех 100 клиентов? Такой подход не очень гибкий. Официальные документы и блоги предоставляют только способ настройки serverAddr, а в режиме кластера серверов нам необходимо изменить адрес в cluster.conf при добавлении или удалении серверов, поэтому мы решили изучить исходный код и провести исследование, что привело к созданию этого проекта.

Он адаптирован для клиентских и серверных систем, предоставляет способы использования и развёртывания документов, унифицированный API-менеджмент для различных способов хранения адресов, поддержку Docker и т.д., а также приветствует использование, предложения и вклад. Если вы считаете, что это может быть полезно для вас или будет полезно в будущем, пожалуйста, поставьте проекту «звёздочку».

Поддержка хранения данных:

  • Redis (одноузловая и кластерная конфигурация);
  • Cache (одноузловая конфигурация).

Функции:

  • Поддержка Docker;
  • Планируется поддержка скриптов запуска (в разработке).

Параметры

Параметр Nacos-VIP Описание Возможные значения Значение по умолчанию
nacos-vip.accessToken(-D) Ключ для операций с API, полученный из заголовка Access-Token String NULL
nacos-vip.clusterListSize(-D) Ограничение размера списка IP-адресов, передаваемых для операций API Integer NULL
nacos-vip.standalone(-D) Указывает на одноузловую конфигурацию true/false false
Параметр Nacos-VIP Описание Возможные значения Значение по умолчанию
spring.redis.host(-D) Адрес Redis String NULL
spring.redis.port(-D) Порт Redis int NULL
spring.redis.database(-D) База данных Redis int NULL
spring.redis.password(-D) Пароль Redis String NULL

Использование

Использование в виде jar-файла

  1. Загрузите проект на локальный компьютер или загрузите готовый nacos-vip-1.0.2.jar.
  2. Запустите:
    • Примечание: рекомендуется использовать конфигурацию Redis независимо от одноузлового или кластерного запуска.
    1. Одноузловая конфигурация (-Dnacos-vip.standalone=true):
      • Конфигурация Redis: используется хранилище Redis.
      • Без конфигурации Redis: используется кэш-хранилище (данные сохраняются до завершения текущего процесса).
    2. Кластерная конфигурация (без настройки: по умолчанию false):
      • Конфигурация Redis: используется хранилище Redis.
      • Без настройки Redis: планируется использовать встроенное хранилище Derby (в разработке).
    3. При запуске одноузловой или кластерной конфигурации, если Redis уже настроен, он будет использоваться в качестве хранилища (также можно извлечь код и изменить его в файле application.properties).
      java -jar -Dspring.redis.database=1 -Dspring.redis.host=127.0.0.1 -Dspring.redis.port=6379 -Dspring.redis.password=123456 nacos-vip-1.0.2.jar > logs/catalina.out 2>&1 & 
    4. Запуск без настройки Redis в одноузловом режиме:
      java -jar -Dnacos-vip.standalone=true nacos-vip-1.0.2.jar > logs/catalina.out 2>&1 & 

Docker-использование

  1. Параметры:

    • -v: путь к хосту:/home/nacos-vip/logs
    • -e JAVA_OPT="-Dnacos-vip.standalone=true"
    • -p: порт хоста:8849
    • --name: имя контейнера
    • -d: фоновый запуск
    • Остальные параметры см. в документации по запуску Docker.
  2. Запуск (по умолчанию DockerHub будет извлечён автоматически, нет необходимости извлекать Docker):

    • Для получения информации о кластерном и одноузловом режимах и соответствующих параметрах передачи обратитесь к разделу «Использование jar-файлов».
    docker run -d qm0123/nacos-vip

Конфигурация и развертывание Nacos-сервиса и клиента с использованием прокси (nginx)

server {
    # 监听端口,对应客户端和服务端发起请求所指定的连接点端口 默认值8080,无需更改
    listen                 8080;
    # 自定义域名值 对应客户端和服务端配置的域名
    server_name            nacos-vip.aliyun.com;
    location / {
        # nacos vip 服务的ip:port,此处也可以使用upstream 代理
        proxy_pass         http://127.0.0.1:8849/;
        proxy_set_header   Host             $host:$server_port;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   Access-Control-Allow-Origin  *;
    }
}

Nacos-сервер

  1. Одноузловый режим:
    1. Запуск:
      sh startup.sh -m standalone
  2. Кластерный режим:
    1. Запуск:
      sh startup.sh
    2. Конфигурация:
      1. Текущая версия предоставляет способ настройки списка кластеров.
        1. Распакуйте каталог nacos/conf, измените список IP:порт в cluster.conf.
        2. application.properties настраивает системные параметры для получения nacos.member.list=192.168.16.101:8847?raft_port=8807, 192.168.16.101?raft_port=8808, 192.168.16.101:8849?raft_port=8809.
        3. Режим адресации VIP для сервера AddressServer (рекомендуется):
      2. Для третьего способа настройки:
        1. Из переменных среды:
          1. Windows: «Мой компьютер» → «Свойства» → «Дополнительные параметры системы» → «Переменные среды» → создать новую переменную среды с именем address_server_domain и значением, например, nacos-vip.aliyun.com (соответствует server_name прокси-сервера nginx).
          2. Linux: аналогично.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/qm012-nacos-vip.git
git@api.gitlife.ru:oschina-mirror/qm012-nacos-vip.git
oschina-mirror
qm012-nacos-vip
qm012-nacos-vip
master