Nacos集群搭建

一、预备环境说明:

  1. 64位JDK ,这里使用 JDK 1.8.0_261
  2. 下载编译好的压缩包,nacos-server-1.4.0.tar.gz
  3. 准备三台主机A(192.168.1.1)、B(192.168.1.2)、C(192.168.1.3)
  4. 准备高可用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。

四、其他

  1. Nacos官方文档 https://nacos.io/zh-cn/docs/what-is-nacos.html

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lxwno.1@163.com

×

喜欢就点赞,疼爱就打赏