近日在整合Dubbo与Nacos集群出现如下错误
failed to req API:/nacos/v1/ns/instance after all servers([xxx.xx.xxx.xx:8045]) tried: ErrCode:500, ErrMsg:java.net.SocketTimeoutException: connect timed out
failed to req API:/nacos/v1/ns/instance after all servers([xxx.xx.xxx.xx:8045]) tried: ErrCode:500, ErrMsg:java.net.SocketTimeoutException: connect timed out
看过笔者Nacos集群部署文章的读者应该都知道在笔者之前已经成功的部署了三个nacos注册中心并通过Nginx组成集群且能成功的访问到nacos后台,然鹅今天在整合Dubbo时报错了? 从中午十二点一直在查找各种资料和进行各种尝试仍然失败。
(不得不吐槽的是,我就是想要集群部署nacos,结果网上搜索来的资料都让我把Nacos改成单机模式,一言难尽emmm)
由于是报的500错误且是连接超时,我将目光转向Nacos的配置(笔者使用的是frp内网穿透),估计是在内网穿透时出现了错误,重新创建Nacos容器如下:
docker run -d \
-e MODE=cluster \
-e NACOS_APPLICATION_PORT=18846 \
-e NACOS_SERVERS=A:18846,A:18847,A:18848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST= MySQL-IP \
-e MYSQL_SERVICE_PORT=MySQL-端口 \
-e MYSQL_SERVICE_USER=用户名 \
-e MYSQL_SERVICE_PASSWORD=密码 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e NACOS_SERVER_IP=A \
-p 18846:18846 \
--name nacos1 \
nacos/nacos-server
docker run -d \
-e MODE=cluster \
-e NACOS_APPLICATION_PORT=18847 \
-e NACOS_SERVERS=A:18846,A:18847,A:18848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST= MySQL-IP \
-e MYSQL_SERVICE_PORT=MySQL-端口 \
-e MYSQL_SERVICE_USER=用户名 \
-e MYSQL_SERVICE_PASSWORD=密码 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e NACOS_SERVER_IP=A \
-p 18847:18847 \
--name nacos2 \
nacos/nacos-server
docker run -d \
-e MODE=cluster \
-e NACOS_APPLICATION_PORT=18848 \
-e NACOS_SERVERS=A:18846,A:18847,A:18848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST= MySQL-IP \
-e MYSQL_SERVICE_PORT=MySQL-端口 \
-e MYSQL_SERVICE_USER=用户名 \
-e MYSQL_SERVICE_PASSWORD=密码 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e NACOS_SERVER_IP=A \
-p 18848:18848 \
--name nacos3 \
nacos/nacos-server
A为部署Nacos的ip地址(请不要填写localhost或者127.0.0.1),如果你和我一样使用frp,请填写你公网的ip并开放相关端口!!!
nginx配置文件如下
upstream cluster{
server A:18846;
server A:18847;
server A:18848;
}
server {
listen 8045;
server_name localhost;
location / {
proxy_pass http://cluster;
}
内网穿透-frpc.ini
[common]
server_addr = A
server_port = 7000
[web01]
type = tcp
local_ip = 127.0.0.1
local_port = 18846
remote_port = 18846
[web02]
type = tcp
local_ip = 127.0.0.1
local_port = 18847
remote_port = 18847
[web03]
type = tcp
local_ip = 127.0.0.1
local_port = 18848