一、预备环境说明:
- 64位JDK ,这里使用 JDK 1.8.0_261
- 下载编译好的压缩包,nacos-server-1.4.0.tar.gz
- 准备三台主机A(192.168.1.1)、B(192.168.1.2)、C(192.168.1.3)
- 准备高可用Nginx集群、MySQL集群
二、集群架构:
graph LR A[微服务] --> B(Nginx集群) B --> D[Nacos1] B --> E[Nacos2] B --> F[Nacos3] D --> G(MySQL集群) E --> G F --> G
高可用Nginx集群
高可用Nacos集群(至少三个实例)
高可用MySQL集群
三、部署步骤:
1、解压:
tar -zxvf nacos-server-1.4.0.tar.gz -C /data
2、导入数据文件:
创建数据库nacos_test,将/data/nacos/conf/nacos-mysql.sql
导入数据库,并创建应用程序访问账号。
3、修改数据源:
这里我们使用外置MySQL集群作为数据存储。
修改conf/application.properties
中关于MySQL数据源的配置。
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.1.1:3306/nacos_test?characterEncoding=utf8&connectTim
eout=1000&socketTimeout=3000&auto
Reconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos_test_rw
db.password=POUZV#Of
4、修改集群配置:
修改conf/cluster.conf
文件的末尾关于IP和端口配置(若没有cluster.conf就用cluster.conf.example复制)
192.168.1.1:8848
192.168.1.2:8848
192.168.1.3:8848
这里写上集群内三台主机的IP和nacos监听端口
5、修改内存占用:
如果机器内存本身不大,那么不建议使用默认配置,根据具体情况修改nacos/bin/startup.sh
中关于java内存占用的配置,
比如将集群的内存占用从2G修改为512M(standalone配置可以保持不变),集群模式是else中内容:
#===========================================================================================
# JVM Configuration
#===========================================================================================
if [[ "${MODE}" == "standalone" ]]; then
JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then
JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true"
fi
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_D
IR}/logs/java_heapdump.hprof"
6、启动:
依次启动,先启动的是主节点。
执行bin/startup.sh
即可,默认是集群模式。
启动后可以查看日志文件和端口监听来确定集群是否启动成功 tail -f nacos/logs/start.out
。
注意:./startup.sh -m standalone
是启动单实例模式。
7、配置Nginx代理Upstream
修改Nginx配置文件default.conf,加入负载均衡和反向代理的配置。
# 在server外部
upstream nacos-cluster {
server 192.168.1.1:8848;
server 192.168.1.2:8848;
server 192.168.1.3:8848;
}
# 在server内部.location / 之前
server {
# 省略。。。。。
location /nacos {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://nacos-cluster;
}
}
注意:nginx upstream 的name中不要带下划线,不然springboot会报400错误。
8、验证:
通过Nginx代理来访问整个集群(建议Nginx集群使用一个域名来访问)。
可通过http://192.168.1.1/nacos访问nacos集群,默认帐号nacos、密码nacos。
或者使用域名访问http://nacos.xxx.com/nacos。
四、其他
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lxwno.1@163.com