nacos集群配置笔记

一、安装

1.1 下载

https://github.com/alibaba/nacos/releases

1.2 解压

tar -zxvf nacos-server-2.0.2.tar.gz

1.3 集群配置

进入安装目录中conf目录,复制cluster.conf.example为cluster.conf

cp cluster.conf.example cluster.conf

编辑cluster.conf,加入所有集群设备

vim cluster.conf

192.168.44.10:8848
192.168.44.11:8848
192.168.44.12:8848

1.4 调整nacos启动时虚拟机内存参数

进入安装目录中bin目录,编辑startup.sh

vim startup.sh

找到集群JAVA参数内存配置
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

根据需要调整堆内存和元数据空间的大小,如果在测试环境中,可以考虑降低内存配置,例如:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m"

1.5 使用内置数据源启动集群

nacos会自动同步集群中的数据,即使这三份数据分别存在不同的数据库中,缺省的数据库是derby.

sh startup.sh -p embedded

关闭服务器

sh shutdown.sh

1.6 使用外置数据源启动集群

使用conf目录下的nacos-mysql.sql脚本初始化nacos数据库。

1. 数据库名称可以随意,最终要配置到url里。
2. 最好为数据库独立创建用户。
3. mysql数据库可以并行多个实例。nacos应该可以同步写入,未测试。
4. 如果是单数据库实例,建议做好主从备份。

数据库配置支持多数据源。通过db.num来指定数据源个数,db.url.index为对应的数据库的链接。db.user以及db.password没有设置index时,所有的链接都以db.userdb.password用作认证。如果不同数据源的用户名称或者用户密码不一样时,可以通过符号,来进行切割,或者指定db.user.index,db.user.password来设置对应数据库链接的用户或者密码。需要注意的是,当db.userdb.password没有指定下标时,因为当前机制会根据,进行切割。所以当用户名或者密码存在,时,会把,切割后前面的值当成最后的值进行认证,会导致认证失败。

修改application.properties

#*************** 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.48.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos

二、使用nginx做负载均衡

参考官方的说明:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

客户端连接nacos的时候只能指向一个IP,所以需要额外套一次代理,可以使用任意SLB或VIP的方式。

这里使用nginx,可以考虑nginx做keepalived。

2.1 nginx的基本配置


#user  nobody;
worker_processes  1;


#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
   
    keepalive_timeout  65;
	  

	upstream balancer {				
		server 192.168.44.10:8848 weight=1 max_fails=2 fail_timeout=10s; 
		server 192.168.44.11:8848 weight=1 max_fails=2 fail_timeout=10s; 
		server 192.168.44.12:8848 weight=1 max_fails=2 fail_timeout=10s; 
	}
	
    server {
       listen       8848;
       server_name  localhost;       
        location / {			
			proxy_pass http://balancer;
			proxy_http_version 1.1;
			proxy_next_upstream http_502 http_504 error timeout invalid_header;							
        }  					
    }

}

2.2 nginx高可用配置

参考
https://www.cnblogs.com/asker009/p/15010773.html

posted @ 2021-07-14 14:48  我是属车的  阅读(645)  评论(0编辑  收藏  举报