架构图

下载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的客户端版本