Серия Nacos: три режима развертывания Nacos

Микросервисы

Три режима развертывания

Nacos поддерживает три режима развертывания

1. Автономный режим: его можно использовать для тестирования и автономного использования. Не используйте автономный режим в производственной среде (не может обеспечить высокую доступность)

2. Кластерный режим: может использоваться в производственной среде для обеспечения высокой доступности.

3. Многокластерный режим: может использоваться в сценариях с несколькими центрами обработки данных.

Автономный режим

Запустить Nacos-сервер

Линукс:sh startup.sh -m standaloneОкна:cmd startup.cmd -m standaloneили дважды щелкнитеstartup.cmdзапускать

Закрыть сервер Nacos

Линукс:sh shutdown.shОкна:cmd shutdown.cmdили дважды щелкнитеshutdown.cmdзапускать

существует0.7версия раньше,Nacosс помощью встроенной базы данныхDerby (Apache Derby) для хранения данных;0.7версии, добавивmysqlПоддержка источника данных.

Источник данных Дерби

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

startup.cmd -m standalone

Источник данных MySQL

шаг первый: Установить данные MySQL, требования к версии:5.6.5+

Шаг 2: Инициализировать базу данных

создать базу данных

create database if not exists nacos default charset utf8 collate utf8_general_ci;

Инициализировать базу данных В каталоге распаковки сервера nacos conf найдите файл nacos-mysql.sql и запустите его напрямую.После завершения выполнения используйте клиент Navicat для его просмотра.

Шаг 3:Исправлятьconf/application.propertiesДокумент, добавьте следующую информацию

## mysql datasource
spring.datasource.platform=mysql 

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

Уведомление:spring.datasource.platform=mysqlНе пропустите или используйте его в любом случаеDerbyбаза данных.

Шаг 4: Запустить сервер Nacos

После успешного запуска используем предыдущий блог:«Серия NACOS: использование Java SDK NACOS»Случай для проверки, запустите NacosConfig, наблюдайте за изменениями содержимого таблицы данных, после того, как пример известен и выполнен,config_infoстол иhis_config_infoВ таблице будут данные, относящиеся к конфигурации, как показано на следующем рисунке:

Похоже, что источник данных MySQL для Nacos хранит только данные конфигурации, а список служб и информация о зарегистрированном экземпляре службы не отображаются в таблице данных (это явление можно наблюдать, запустив метод main() класса NacosDiscovery в примере )

кластерный режим

Из-за ограниченных ресурсов я напрямую смоделировал развертывание в Windows для создания «псевдокластера», создал новый файловый каталог NacosCluster, извлек три копии Nacos Server в этот каталог и назвал их какnasosSlave0、nasosSlave1、nasosSlave2, назначение порта:8845、8846、8847

Измените nasosSlave0/conf/application.properties, server.port=8845 и добавьте

## mysql datasource
spring.datasource.platform=mysql 

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

Здесь для демонстрации функции используется библиотека MySQL.В реальном производстве должен использоваться как минимум режим «активный-резервный», например:

db.num=2
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.url.1=jdbc:mysql://127.0.0.1:3306/nacos2?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

Скопируйте nasosSlave0/conf/cluster.conf.example какcluster.conf, модификация выглядит следующим образом:

127.0.0.1:8845
127.0.0.1:8846
127.0.0.1:8847

Конфигурации nasosSlave1, nasosSlave2 и nasosSlave0 одинаковы, за исключением разных портов.

Запускайте каждый сервер Nacos отдельно

startup.cmd -m cluster

Примечание. В Windows в настоящее время больше нельзя дважды щелкнуть мышью.startup.cmdЗапущено, если оно запущено так, оно все равно начинается с单机模式беги, потому чтоbin/startup.cmdЕсть следующий код:

if not "%2" == "cluster" (
    set "JAVA_OPT=%JAVA_OPT% -Xms512m -Xmx512m -Xmn256m"
    set "JAVA_OPT=%JAVA_OPT% -Dnacos.standalone=true"
 ) else (
    set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    set "JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof"
    set "JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages"
 )

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

E:\Software\Nacos\nacosCluster\nacosSlave0\bin>startup.cmd -m cluster

         ,--.
       ,--.'|
   ,--,:  : |                                           Nacos 0.8.0
,`--.'`|  ' :                       ,---.               Running in cluster mode
|   :  :  | |                      '   ,'\   .--.--.    Port: 8845
:   |   \ | :  ,--.--.     ,---.  /   /   | /  /    '   Pid: 6568
|   : '  '; | /       \   /     \.   ; ,. :|  :  /`./   Console: http://192.168.1.102:8845/nacos/index.html
'   ' ;.    ;.--.  .-. | /    / ''   | |: :|  :  ;_
|   | | \   | \__\/: . ..    ' / '   | .; : \  \    `.      https://nacos.io
'   : |  ; .' ," .--.; |'   ; :__|   :    |  `----.   \
|   | '`--'  /  /  ,.  |'   | '.'|\   \  /  /  /`--'  /
'   : |     ;  :   .'   \   :    : `----'  '--'.     /
;   |.'     |  ,     .-./\   \  /            `--'---'
'---'        `--`---'     `----'

2019-02-20 23:06:13,059 INFO The server IP list of Nacos is [127.0.0.1:8845, 127.0.0.1:8846, 127.0.0.1:8847]

2019-02-20 23:06:14,185 INFO Nacos is starting...

2019-02-20 23:06:15,409 INFO Nacos is starting...

2019-02-20 23:06:16,512 INFO Nacos is starting...

2019-02-20 23:06:17,605 INFO Nacos is starting...

2019-02-20 23:06:18,736 INFO Nacos is starting...

2019-02-20 23:06:19,860 INFO Nacos is starting...

2019-02-20 23:06:21,021 INFO Nacos is starting...

2019-02-20 23:06:22,230 INFO Nacos is starting...

2019-02-20 23:06:23,390 INFO Nacos is starting...

2019-02-20 23:06:24,605 INFO Nacos is starting...

2019-02-20 23:06:25,991 INFO Nacos is starting...

2019-02-20 23:06:26,993 INFO Nacos is starting...

2019-02-20 23:06:28,197 INFO Nacos is starting...

2019-02-20 23:06:29,264 INFO Nacos is starting...

2019-02-20 23:06:30,515 INFO Nacos is starting...

2019-02-20 23:06:31,810 INFO Nacos is starting...

2019-02-20 23:06:32,934 INFO Nacos is starting...

2019-02-20 23:06:33,976 INFO Nacos is starting...

2019-02-20 23:06:35,044 INFO Nacos is starting...

2019-02-20 23:06:36,153 INFO Nacos is starting...

2019-02-20 23:06:37,290 INFO Nacos is starting...

2019-02-20 23:06:38,616 INFO Nacos is starting...

2019-02-20 23:06:39,736 INFO Nacos is starting...

2019-02-20 23:06:40,824 INFO Nacos is starting...

2019-02-20 23:06:41,757 INFO Nacos Log files: E:\Software\Nacos\nacosCluster\nacosSlave0\/logs/

2019-02-20 23:06:41,768 INFO Nacos Conf files: E:\Software\Nacos\nacosCluster\nacosSlave0\/conf/

2019-02-20 23:06:41,771 INFO Nacos Data files: E:\Software\Nacos\nacosCluster\nacosSlave0\/data/

2019-02-20 23:06:41,774 INFO Nacos started successfully in cluster mode.

Доступ к следующим путям в браузере соответственноhttp://localhost:8845/nacos http://localhost:8846/nacos http://localhost:8847/nacos

Если все попытки доступа выполнены успешно, это доказывает успешность развертывания в режиме кластера.

Многокластерный режим

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

другие инструкции

в соответствии сNacosОфициально, Накосv0.8.0 Pre-GAЭту версию можно использовать в производственной среде. До этой версии не используйте ее в производственной среде.

использованная литература

Рекомендуемое чтение