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 и т.д., а также приветствует использование, предложения и вклад. Если вы считаете, что это может быть полезно для вас или будет полезно в будущем, пожалуйста, поставьте проекту «звёздочку».
Поддержка хранения данных:
Функции:
Параметры
Параметр 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 |
Использование
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 &
java -jar -Dnacos-vip.standalone=true nacos-vip-1.0.2.jar > logs/catalina.out 2>&1 &
Параметры:
Запуск (по умолчанию DockerHub будет извлечён автоматически, нет необходимости извлекать Docker):
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-сервер
sh startup.sh -m standalone
sh startup.sh
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )