架构图
下载nacos安装包
从github上下载相应的安装包,现在是2022-11-04,最新稳定版本是2.1.2
修改配置
解压后,进入conf文件夹
- 因为本次使用mysql,所以使用
mysql-schema.sql
进行创建表
修改application.properties
注意:mysql 8.0.13开始, 使用sslMode属性代替了原来的useSSL属性, 所以把useSSL改成sslMode=DISABLED 或者添加allowPublicKeyRetrieval=true
server.port=8848
spring.datasource.platform=mysql #使用mysql
db.num=1 # 使用几个数据库
db.url.0=jdbc:mysql://xxxx.mysql.rds.aliyuncs.com:43790/nacos_cluster?serverTimezone=Asia/Shanghai&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&allowPublicKeyRetrieval=true
db.user.0=xxxxxx
db.password.0=nxxx
server.tomcat.accesslog.enabled=false # 可以关闭访问日志
nacos.core.auth.enabled=true # 开启密码认证,java代码连接时,需要提供密码
修改cluster.conf
172.31.237.101:8848
172.31.237.102:8848
172.31.237.103:8848
172.31.237.104:8848
配置java环境
写一个便携的启动脚本
vim start_nacos.sh
/root/nacos/bin/shutdown.sh
/root/nacos/bin/startup.sh
添加可执行权限
chmod +x start_nacos.sh
启动测试
./start_nacos.sh
会提示启动结果在cat /root/nacos/logs/start.out
启动成功后访问http://ip:8848/nacos/,默认用户名和密码都是nacos
java代码配置
spring:
cloud:
nacos:
username: nacos
password: nacos_密码
复制nacos文件夹到其他服务器,并启动
scp -r nacos root@ip.ip.ip.ip:~
配置nginx
注意:nacos2.x需要配置tcp和http
安装带stream的nginx
- 截止今天,最新版是nginx-1.23.2,下载源码包,解压
- 编译nginx,并配置stream模块
./configure --with-stream
,或者多安装几个模块(./configure --with-http_v2_module --with-stream --with-http_ssl_module --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-poll_module --with-http_realip_module --with-stream --with-stream_ssl_module
) - 安装nginx
make && make install
配置nginx
如果几台机器的集群不在同一内网,需要开通9848端口,9849端口
对外需要开通80和1080端口
java客户端连接时使用80端口,不需做其他配置
user root;
worker_processes 4;
error_log /dev/null;
events {
use epoll;
multi_accept on;
accept_mutex on;
worker_connections 65535;
}
#grpc port: ${server.port} + 1000
#grpc port for server: ${server.port} + 1001,所以每个集群的机器要预留出部分每个集群的机器端口
stream {
upstream nacosGrpc {
server 172.31.237.100:9848;
server 172.31.237.101:9848;
server 172.31.237.102:9848;
server 172.31.237.103:9848;
}
server {
listen 1080;
proxy_pass nacosGrpc;
}
}
http {
access_log off;
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
keepalive_timeout 120;
gzip on;
server_tokens off;
upstream nacos-cluster{
server 172.31.237.100:8848;
server 172.31.237.101:8848;
server 172.31.237.102:8848;
server 172.31.237.103:8848;
keepalive 120;
}
server{
# 监听80端口,负载均衡到集群
listen 80;
server_name yalong.site;
location / {
proxy_pass http://nacos-cluster;
}
}
}
命令
/usr/local/nginx/sbin/nginx
----启动nginx
/usr/local/nginx/sbin/nginx -s reload
—重新加载配置文件
java客户端
注意版本对应关系,选取nacos2.x的客户端版本