Nacos2.0.3集群搭建踩坑
Nacos2.0版本相比1.X新增了gRPC的通信方式,如果已经有Nacos集群,那么需要更改集群的配置方式,这里以Nginx为例,来介绍下如何搭建集群。
配置流程
新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。
端口 | 与主端口的偏移量 | 描述 |
---|---|---|
9848 | 1000 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
9849 | 1001 | 服务端gRPC请求服务端端口,用于服务间同步等 |
假设我们Nacos的服务端口为8848,那么客户端gRPC与服务端进行交互时,会使用9848端口,所以我们必须转发这个9848端口。在转发该端口时,注意使用stream
方式,这就要求nginx在编译时,必须有--with-stream
,使用nginx -V
来查看编译配置:
[root@173-16-200-97 sbin]# ./nginx -V nginx version: nginx/1.15.6 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) configure arguments: --prefix=/usr/local/nginx --with-pcre=/usr/local/nginx/pcre-8.42 --with-zlib=/usr/local/nginx/zlib-1.2.11 --with-openssl=/usr/local/nginx/openssl-1.1.1a --with-stream --add-module=/usr/local/nginx/ngx_healthcheck_module-master
检查完Nginx信息后,我们先来配置转发9848端口:
stream { upstream NACOS_ADDR_9848 { server 173.16.200.98:9848 max_fails=3 fail_timeout=30s; server 173.16.200.99:9848 max_fails=3 fail_timeout=30s; server 173.16.200.115:9848 max_fails=3 fail_timeout=30s; } server { listen 9848 so_keepalive=on; proxy_connect_timeout 3s; proxy_pass NACOS_ADDR_9848; tcp_nodelay on; proxy_buffer_size 32k; } }
接着配置转发8848端口,使用http配置就可以:
http { upstream NACOS { server 173.16.200.98:8848 max_fails=3 fail_timeout=5s; server 173.16.200.99:8848 max_fails=3 fail_timeout=5s; server 173.16.200.115:8848 max_fails=3 fail_timeout=5s; } server { listen 8848; server_name 173.16.200.97; location / { proxy_pass http://NACOS; proxy_connect_timeout 75; proxy_read_timeout 400; proxy_send_timeout 400; client_max_body_size 100m; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; } } }
遇到的问题
- 应用启动报:UNAVAILABLE: Network closed for unknown reason
报这个错是由于没有转发9848端口,转发9848端口即可
- Nacos服务是2.0.3,客户端是1.x版本,是否可以使用?
Nacos服务端可以兼容1.x版本的客户端,只不过不会走gRPC模式,建议生产环境服务端与客户端一致
本文来自博客园,作者:mingshan,转载请注明原文链接:https://www.cnblogs.com/mingshan/p/17792806.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)