搭建Nacos集群

目录

一、集群结构图

二、创建nacos数据库及表

三、集群nacos-server配置

四、nginx配置

五、访问nacos-server集群注册中心

六、nacos-client配置注册中心地址

七、 注意事项


一、集群结构图

二、创建nacos数据库及表

1、建库

 create database nacos;
 use nacos;

2、执行nacos-server包下conf/mysql-schema.sql文件创建相关表

三、集群nacos-server配置

1、下载地址

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

2、重命名cluster.conf.example为cluster.conf

3、nacos端口说明,Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。

8848:主端口,web页面端口,对应application.properties中的server.port。
7848:主端口-1000,集群数据同步接口。
9848:主端口+1000,客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求。
9849:主端口+1001,服务端gRPC请求服务端端口,用于服务间同步等。

4、在cluster.conf文件里配置集群服务(二选一)

# 注意:主端口对应的偏移量端口不能占用,所以端口不要连号
192.168.10.104:10002
192.168.10.104:10004
192.168.10.104:10006

# 使用该配置最好把application.properties的nacos.inetutils.ip-address=127.0.0.1开启
# 否则nacos启动会向cluster.conf里追加192.168.10.104:10002配置
127.0.0.1:10002
127.0.0.1:10004
127.0.0.1:10006

5、在application.properties文件,放开数据库配置注释并修改

spring.datasource.platform=mysql

db.num=1

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

6、修改application.properties文件中nacos服务端口

server.port=10002

7、将已经改好配置的nacos-server复制两份,服务端口分别改为10004,10006

8、启动三个nacos-server

四、nginx配置

1、下载nginx.zip并解压,nacos2.x需要下载含有stream模块的nginx,1.8.1版本不含

https://nginx.org/en/download.html

2、修改nginx.conf配置,在http里增加以下配置,nacos2.x需要配置stream模块

http {

	# 负载到集群
	upstream nacoscluster {
		server 127.0.0.1:10002;
		server 127.0.0.1:10004;
		server 127.0.0.1:10006;
	}

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

		# 反向代理到nacos
		location /nacos {
            proxy_pass http://nacoscluster;
        }
    }
}

# nacos2.x必须配置这个TCP代理
stream {
	# 主端口+1000
	upstream nacoscluster {
		server 127.0.0.1:11002;
		server 127.0.0.1:11004;
		server 127.0.0.1:11006;
	}
	server {
		# http端口+1000
		listen 1080;
		proxy_pass nacoscluster;  
	}
}

3、启动/停止nginx

start nginx.exe
taskkill /f /im nginx.exe

五、访问nacos-server集群注册中心
http://localhost/nacos

六、nacos-client配置注册中心地址
spring:  
	application:  
		name: order-service  
	profiles:  
		# 运行环境,对应Data ID的一部分  
		active: dev  
	cloud:  
		nacos:  
			# nacos 服务端地址  
			server-addr: localhost:80
七、 注意事项
1、nacos2.x需要在nginx.conf配置stream模块
2、nginx需要确认是否支持stream模块,1.8.1不支持,1.24.0支持
3、开启com.alibaba.nacos日志Debug模式启动会报错,可忽略,grpc通过尝试获取目标类来判断是否启用某些特定版本的功能
4、debug报错如下:
java.lang.ClassNotFoundException: com.alibaba.nacos.shaded.io.perfmark.impl.SecretPerfMarkImpl$PerfM...

搭建 Nacos 集群在 Docker 环境中是一个常见的需求,特别是在微服务架构中,用于实现配置管理与服务注册发现。以下是详细的配置指南: ### 创建集群配置文件 首先,需要创建一个 `cluster.conf` 文件,用于定义集群中的各个节点。每个节点的格式为 `hostname:port`,其中 `hostname` 是节点的名称,`port` 是 Nacos 服务监听的端口。通常情况下,Nacos 使用 8848 作为默认端口。 ```bash mkdir -p ~/nacos-cluster && cd ~/nacos-cluster echo -e "nacos1:8848\nnacos2:8848\nnacos3:8848" > cluster.conf ``` ### 编写 docker-compose.yml 文件 接下来,需要编写一个 `docker-compose.yml` 文件来定义和运行 Nacos 集群。此文件将包括每个 Nacos 实例的配置,以及它们如何相互作用。确保每个实例都有一个唯一的主机名,并且能够通过这些主机名进行网络通信。 ```yaml version: '3' services: nacos1: image: nacos/nacos-server:v2.0.3 container_name: nacos1 hostname: nacos1 networks: - nacos-net ports: - "8848:8848" environment: - MODE=cluster - CLUSTER_SERVERS=nacos1:8848,nacos2:8848,nacos3:8848 - NACOS_SERVER_IP=nacos1 nacos2: image: nacos/nacos-server:v2.0.3 container_name: nacos2 hostname: nacos2 networks: - nacos-net ports: - "8858:8848" environment: - MODE=cluster - CLUSTER_SERVERS=nacos1:8848,nacos2:8848,nacos3:8848 - NACOS_SERVER_IP=nacos2 nacos3: image: nacos/nacos-server:v2.0.3 container_name: nacos3 hostname: nacos3 networks: - nacos-net ports: - "8868:8848" environment: - MODE=cluster - CLUSTER_SERVERS=nacos1:8848,nacos2:8848,nacos3:8848 - NACOS_SERVER_IP=nacos3 networks: nacos-net: ``` ### 配置外部数据库 如果希望使用外部 MySQL 数据库而不是内置数据库,需要在启动 Nacos 容器时提供相应的环境变量来配置数据库连接信息。这包括数据库的地址、用户名、密码等。 ```yaml environment: - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_MASTER_SERVICE_HOST=your.mysql.host - MYSQL_MASTER_SERVICE_PORT=3306 - MYSQL_MASTER_SERVICE_USER_NAME=your_username - MYSQL_MASTER_SERVICE_PASSWORD=your_password ``` ### 启动集群 一旦 `docker-compose.yml` 文件准备就绪,可以通过运行以下命令来启动 Nacos 集群: ```bash docker-compose up -d ``` ### 验证集群状态 启动完成后,可以通过访问每个 Nacos 实例的 Web 界面来验证集群状态。默认情况下,Nacos 的 Web 界面位于 `http://<host>:8848/nacos`,其中 `<host>` 是运行 Nacos 容器的主机 IP 地址。 ### 注意事项 - 确保所有节点之间的网络是互通的,并且可以解析彼此的主机名。 - 如果使用自定义网络(如上例中的 `nacos-net`),请确保所有服务都连接到同一网络。 - 考虑到生产环境的安全性和稳定性,建议使用稳定版本的 Nacos 镜像[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值