建站不啰嗦,上手跟我做(二十八)nacos 注册中心搭建

什么是 Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

在接下里的教程中,将使用 Nacos 作为微服务架构中的注册中心(替代:eurekba、consul 等传统方案)以及配置中心(spring cloud config)来使用。

nacos server 端下载

下载地址:https://github.com/alibaba/nacos/releases
本文版本:1.2.1

下载完成之后,解压。根据不同平台,执行不同命令,启动单机版 Nacos 服务:

  • Linux/Unix/Mac:sh startup.sh -m standalone
  • Windows:cmd startup.cmd -m standalone

nacos server 安装

[root@localhost springcloud]# ls
nacos-server-1.2.1.tar.gz
[root@localhost springcloud]# tar -zxvf nacos-server-1.2.1.tar.gz 
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/schema.sql
nacos/conf/nacos-mysql.sql
nacos/conf/application.properties.example
nacos/conf/nacos-logback.xml
nacos/conf/cluster.conf.example
nacos/conf/application.properties
nacos/bin/startup.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.sh
nacos/bin/shutdown.cmd
[root@localhost springcloud]# ls
nacos  nacos-server-1.2.1.tar.gz
[root@localhost springcloud]# cd nacos
[root@localhost nacos]# ls
bin  conf  LICENSE  NOTICE  target
[root@localhost nacos]# cd bin
[root@localhost bin]# ls
shutdown.cmd  shutdown.sh  startup.cmd  startup.sh

nacos 单节点搭建

Nacos 的单节点,也就是我们使用的 standalone 模式,配置的数据是默认存储到内嵌的数据库 derby 中。

单节点启动

[root@localhost bin]# sh startup.sh -m standalone
/usr/local/java/jdk1.8.0_181/bin/java  -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Djava.ext.dirs=/usr/local/java/jdk1.8.0_181/jre/lib/ext:/usr/local/java/jdk1.8.0_181/lib/ext -Xloggc:/opt/springcloud/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/opt/springcloud/nacos/plugins/health,/opt/springcloud/nacos/plugins/cmdb,/opt/springcloud/nacos/plugins/mysql -Dnacos.home=/opt/springcloud/nacos -jar /opt/springcloud/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/opt/springcloud/nacos/conf/ --logging.config=/opt/springcloud/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with standalone
nacos is starting,you can check the /opt/springcloud/nacos/logs/start.out
[root@localhost nacos]# cd logs
[root@localhost logs]# ls
cmdb-main.log              config-memory.log      config-server.log  nacos-address.log       naming-event.log        naming-rt.log
config-client-request.log  config-notify.log      config-trace.log   nacos_gc.log.0.current  naming-performance.log  naming-server.log
config-dump.log            config-pull-check.log  core-auth.log      nacos.log               naming-push.log         start.out
config-fatal.log           config-pull.log        istio-main.log     naming-distro.log       naming-raft.log
[root@localhost logs]# tail -f -n 200 start.out
/usr/local/java/jdk1.8.0_181/bin/java  -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Djava.ext.dirs=/usr/local/java/jdk1.8.0_181/jre/lib/ext:/usr/local/java/jdk1.8.0_181/lib/ext -Xloggc:/opt/springcloud/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/opt/springcloud/nacos/plugins/health,/opt/springcloud/nacos/plugins/cmdb,/opt/springcloud/nacos/plugins/mysql -Dnacos.home=/opt/springcloud/nacos -jar /opt/springcloud/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/opt/springcloud/nacos/conf/ --logging.config=/opt/springcloud/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288

         ,--.
       ,--.'|
   ,--,:  : |                                           Nacos 1.2.1
,`--.'`|  ' :                       ,---.               Running in stand alone mode, All function modules
|   :  :  | |                      '   ,'\   .--.--.    Port: 8848
:   |   \ | :  ,--.--.     ,---.  /   /   | /  /    '   Pid: 3772
|   : '  '; | /       \   /     \.   ; ,. :|  :  /`./   Console: http://192.168.2.121:8848/nacos/index.html
'   ' ;.    ;.--.  .-. | /    / ''   | |: :|  :  ;_
|   | | \   | \__\/: . ..    ' / '   | .; : \  \    `.      https://nacos.io
'   : |  ; .' ," .--.; |'   ; :__|   :    |  `----.   \
|   | '`--'  /  /  ,.  |'   | '.'|\   \  /  /  /`--'  /
'   : |     ;  :   .'   \   :    : `----'  '--'.     /
;   |.'     |  ,     .-./\   \  /            `--'---'
'---'        `--`---'     `----'

访问后台

用户名和密码默认 nacos
图片.png
登录后
图片.png

停止服务

[root@localhost bin]# sh shutdown.sh
The nacosServer(3772) is running...
Send shutdown request to nacosServer(3772) OK

nacos 集群搭建

如果我们要搭建集群的话,那么肯定是不能用内嵌的数据库,不然数据无法共享。集群搭建的时候我们需要将 Nacos 对接 Mysql 进行数据存储。

集群模式跟我们平时进行扩容是一样的,可以通过 Nginx 转发到多个节点。
将 Nacos 的解压包复制分成 3 份,分别是:

  • nacos
  • nacos1
  • nacos2

修改数据库配置

进入 nacos 的 conf 目录,编辑 application.properties 文件,增加数据库配置

nacos
[root@localhost conf]# vim application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=8848

#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.2.122:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

nacos1
[root@localhost conf]# vim application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=8849

#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.2.122:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

nacos2
[root@localhost conf]# vim application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=8850

#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.2.122:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

修改集群配置

配置文件在 conf 目录下的 cluster.conf.example 文件,我们进行重命名成 cluster.conf
然后编辑 cluster.conf 文件,增加 3 个节点的信息,格式为 IP:PORT,三个目录都一致即可。

注:一定要记得将配置文件重命名为cluster.conf, 最好用实际 ip,而非127.0.0.1,否则会出现问题。

nacos
[root@localhost conf]# mv cluster.conf.example cluster.conf
[root@localhost conf]# ls
application.properties  application.properties.example  cluster.conf  nacos-logback.xml  nacos-mysql.sql  schema.sql
[root@localhost conf]# vim cluster.conf 

#it is ip
#example
#10.10.109.214
#11.16.128.34
#11.16.128.36
192.168.2.121:8848
192.168.2.121:8849
192.168.2.121:8850
nacos1
[root@localhost conf]# mv cluster.conf.example cluster.conf
[root@localhost conf]# ls
application.properties  application.properties.example  cluster.conf  nacos-logback.xml  nacos-mysql.sql  schema.sql
[root@localhost conf]# vim cluster.conf 

#it is ip
#example
#10.10.109.214
#11.16.128.34
#11.16.128.36
192.168.2.121:8848
192.168.2.121:8849
192.168.2.121:8850
nacos2
[root@localhost conf]# mv cluster.conf.example cluster.conf
[root@localhost conf]# ls
application.properties  application.properties.example  cluster.conf  nacos-logback.xml  nacos-mysql.sql  schema.sql
[root@localhost conf]# vim cluster.conf 

#it is ip
#example
#10.10.109.214
#11.16.128.34
#11.16.128.36
192.168.2.121:8848
192.168.2.121:8849
192.168.2.121:8850

数据库初始化

执行 nacos-mysql.sql 文件创建数据库
图片.png

集群启动

启动的话直接到 bin 目录下,执行./startup.sh 就可以了,默认就是集群模式,不需要加任何参数。

[root@localhost bin]# sh startup.sh
/usr/local/java/jdk1.8.0_181/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/springcloud/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Djava.ext.dirs=/usr/local/java/jdk1.8.0_181/jre/lib/ext:/usr/local/java/jdk1.8.0_181/lib/ext -Xloggc:/opt/springcloud/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/opt/springcloud/nacos/plugins/health,/opt/springcloud/nacos/plugins/cmdb,/opt/springcloud/nacos/plugins/mysql -Dnacos.home=/opt/springcloud/nacos -jar /opt/springcloud/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/opt/springcloud/nacos/conf/ --logging.config=/opt/springcloud/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /opt/springcloud/nacos/logs/start.out

查看集群状况

图片.png

注册中心优劣分析

上一篇 建站不啰嗦,上手跟我做(二十七)安装 ftp 服务
目录
下一篇 建站不啰嗦,上手跟我做(二十九)rabbitMQ 安装