Nacos集群配置(Linux环境)

Nacos集群配置(Linux环境),第1张

Nacos集群配置(Linux环境) 1.需求环境
  • JDK1.8+
  • Maven3.3+
  • Nginx作为负载均衡
  • MySQL5.7+
2.下载Nacos
  • 手动下载(官网地址下载缓慢,建议手动下载)
    • 这里下载的是1.4.2版本,就是下载nacos-server-1.4.2.tar.gz
    • 下载地址
    • 下载完成后在/usr/local/路径下新建一个nacos文件夹(根据自己需要放在对应的路径都可)
    • 将下载好的压缩包放到/usr/local/nacos/路径下
  • 云下载
    wget https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-server-1.4.2.tar.gz
    
3.Linux下解压
  • 转到放置压缩包的路径
    cd /usr/local/nacos/
    
  • 解压
    tar zxvf nacos-server-1.4.2.tar.gz
    
  • 修改文件名
    • 解压后ls查看,在/usr/local/nacos/目录下多了一个nacos文件夹
    ls
    
    • 将其重命名为带端口号的文件夹如nacos8849
    mv nacos nacos8849
    
  • 多次重复以上解压和修改文件名步骤,得到多份nacos副本,这里分别命名为nacos8849|nacos8850|nacos8851(这里是一台虚拟机三个Nacos,实际可在多台虚拟机上部署)
4.修改配置文件
以8849实例为例,其余的实例修改相同(端口不同)
(1)修改数据源配置,使用外置数据源
  • 修改application.properties配置
    cd /usr/local/nacos/nacos8849/conf/
    vim application.properties
    
    • 将server.port修改为8849
    • 将数据源修改,将spring.datasource.platform=mysql的注释去掉
    • 设置数据连接数量,将db.num=1的注释去掉
    • 设置数据库连接参数及数据库账号密码,设置为自己数据库连接参数及账号密码(修改模板并去掉注释)
  • 修改后的application.properties配置参考
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:
server.port=8849

#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false

### Specify local server's IP:
# nacos.inetutils.ip-address=


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

### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2

#*************** Naming Module Related Configurations ***************#
### Data dispatch task execution period in milliseconds:
# nacos.naming.distro.taskDispatchPeriod=200

nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000


#*************** CMDB Module Related Configurations ***************#
### The interval to dump external CMDB in seconds:
# nacos.cmdb.dumpTaskInterval=3600

### The interval of polling data change event in seconds:
# nacos.cmdb.eventTaskInterval=10

### The interval of loading labels in seconds:
# nacos.cmdb.labelTaskInterval=300

### If turn on data loading task:
# nacos.cmdb.loadDataAtStart=false


#*************** Metrics Related Configurations ***************#
### Metrics for prometheus
#management.endpoints.web.exposure.include=*

### Metrics for elastic search
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

### Metrics for influx
management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true


#*************** Access Log Related Configurations ***************#
### If turn on the access log:
server.tomcat.accesslog.enabled=true

### The access log pattern:
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i

### The directory of access log:
server.tomcat.basedir=


#*************** Access Control Related Configurations ***************#
### If enable spring security, this option is deprecated in 1.2.0:
#spring.security.enabled=false

### The ignore urls of auth, is deprecated in 1.2.0:
nacos.security.ignore.urls=/,/error,*.css,*.js,*.html,*.map,*.svg,*.png,*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

### The auth system to use, currently only 'nacos' is supported:
nacos.core.auth.system.type=nacos

### If turn on auth system:
nacos.core.auth.enabled=false

### The token expiration in seconds:
nacos.core.auth.default.token.expire.seconds=18000

### The default token:
nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=true

### Since 1.4.1, Turn on/off white auth for user-agent: nacos-server, only for upgrade from old version.
nacos.core.auth.enable.userAgentAuthWhite=true

### Since 1.4.1, worked when nacos.core.auth.enabled=true and nacos.core.auth.enable.userAgentAuthWhite=false.
### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=
nacos.core.auth.server.identity.value=

#*************** Istio Related Configurations ***************#
### If turn on the MCP server:
nacos.istio.mcp.server.enabled=false

(2)导入nacos数据库数据
  • 创建nacos(你自己的连接配置中的库名)数据库,确保使用的MySQL版本是5.7+,字符集使用utf8mb4
  • 执行/usr/local/nacos/nacos8849/conf/文件夹下的nacos-mysql.sql导入数据
(3)修改集群服务地址配置
  • 拷贝/usr/local/nacos/nacos8849/conf/文件夹下的cluster.conf.example文件进行修改
    cp cluster.conf.example cluster.conf
    
  • 修改里面的地址,本例中修改结果如下(一般改为公网地址,这里在同一台虚拟机就直接使用127.0.0.1了)
    192.168.100.201:8849
    192.168.100.201:8850
    192.168.100.201:8851
    
(4)修改nacos服务JVM内存分配参数
  • 转到/usr/local/nacos/nacos8849/bin/路径下
  • 记事本编辑startup.sh文件
  • 找到JVM配置如下图位置
  • 本人的虚拟机内存较小,容易引发内存不足,需要修改JVM内存参数,修改结果如下图
  • 尝试启动8849端口的nacos服务
    ./startup.sh
    
  • 查看启动日志,启动成功则会打印Nacos started successfully in cluster mode
    tail -f ../logs/start.out
    
  • 登录nacos主页(【虚拟机ip地址】:8849/nacos),登录成功说明开启成功,否则查看防火墙和安全组是否开发
  • 拷贝配置文件到8850和8851(询问是否覆盖均为y)
    cd /usr/local/nacos/
    cp ./nacos8849/conf/application.properties ./nacos8850/conf/application.properties
    y
    cp ./nacos8849/conf/application.properties ./nacos8851/conf/application.properties
    y
    cp ./nacos8849/conf/cluster.conf ./nacos8850/conf/cluster.conf
    cp ./nacos8849/conf/cluster.conf ./nacos8851/conf/cluster.conf
    cp ./nacos8849/bin/startup.sh ./nacos8850/bin/startup.sh
    y
    cp ./nacos8849/bin/startup.sh ./nacos8851/bin/startup.sh
    y
    
  • 修改8850和8851的application.properties中的端口分别为8850和8851
  • 启动启动8850和8851端口的nacos服务
(5)使用Nginx负载均衡配置
  • 转到Nginx路径下(本人在/use/local/nginx/)
  • 在http内添加负载均衡和反向代理
    http{
    	...
    	upstream nacoscluster {
        	server 127.0.0.1:8851;
        	sercer 127.0.0.1:8850;
        	sercer 127.0.0.1:8849;
    	}
    	...
    	 server {
    		listen       8847;
    		server_name  localhost;
    
    		location /nacos/{
        		proxy_pass http://nacoscluster/nacos/;
    		}
    	}
    
    }
    
  • 启动/重启nginx(./nginx或./nginx -s reload)
5.浏览器登录nacos主页
  • 登录http://192.168.100.201:8847/nacos/,账号/密码:nacos/nacos

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5443751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存