Nginx + Nacos2.x(集群)部署防踩坑指南

最近学习Nacos,目前很多教程都是基于Nacos1.x版本的,但其实Nacos2.x对比1.x变化较大,导致很多操作如果还是照着教程就会出错。这里总结一下。

Nacos2.x的变化

Nacos2.x最主要的变化就是新增了几个端口

一个是Nacos主端口+1000(比如9848),该端口用于客户端gRPC请求服务端,另外两个分别是主端口+1001和-1000,都是用于服务端之间的请求

详细参考官方文档:Nacos 2.0.0 兼容性文档

需要注意的点

根据上面的点,总共有这么几个需要注意的点。

  • Nacos服务端部署时,端口至少大于1000
  • Nacos集群部署时,假设是在同一网段内,端口不能连续。

    比如在本机连续部署三个Nacos服务端, 端口不能为8848、8849、8850,因为服务端需要额外开启两个端口。比如第一个Nacos服务器端口为8848,它将还会占用7848和8849,这将导致第二个Nacos服务端无法启动因为8849被占用。

  • 如果是要做VIP/Nginx的话,Nginx还要额外监听源端口+1000,因为客户端还需要源端口+1000用于与服务端进行gRPC请求。下面会给出详细的Nginx配置。

关于Nginx配置

假设我们现在有三个Nacos服务器,端口分别为8810、8820、8830,准备建立集群。然后希望使用Nginx做统一的转发,Nginx负责监听80端口,那么我们不仅要监听80端口,还要监听1080端口。另外根据上面给出的官方文档提到的,用于进行gRPC请求的端口应该进行TCP转发,不能使用HTTP2转发

这一点其实也决定了无法使用Spring Cloud Gateway去做端口转发了,因为其只能做HTTP转发。

需要注意的是,Nginx做TCP转发的话,需要将版本升级到1.9.0以上。

下载链接:http://nginx.org/download/

http{
    upstream nacos-cluster {
        server localhost:8810;
        server localhost:8820;
        server localhost:8830;
    }
    server{
        listen 80;
        location / {
            proxy_pass http://nacos-cluster;
        }
    }
}
# stream块用于做TCP转发
stream{
    upstream nacos-cluster {
        server localhost:9810;
        server localhost:9820;
        server localhost:9830;
    }
    server{
        listen 1080;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass nacos-cluster;
    }
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个基于 Nginx+Nacos+MySQL+Redis+RabbitMQ 的 Java 应用服务集群架构: 1. 前置负载均衡器:使用 Nginx 负责前端流量的负载均衡,将外部的请求分发到后端应用服务器。 2. 服务注册与发现:使用 Nacos 作为服务注册中心,负责服务的注册、发现和配置管理。 3. 数据库服务:使用 MySQL 作为数据库服务,提供数据存储和读写操作。 4. 缓存服务:使用 Redis 作为缓存服务,提供数据缓存和读取加速。 5. 消息队列服务:使用 RabbitMQ 作为消息队列服务,负责异步消息传递和削峰填谷。 6. 应用服务器集群:应用服务器集群包含多个相同的应用服务器实例,负责处理具体的业务逻辑。每个应用服务器实例都需要从 Nacos 中获取服务配置,从 MySQL 中读取和写入数据,从 Redis 中读取缓存数据,以及通过 RabbitMQ 进行异步消息传递。 7. 数据库集群:数据库集群包含多个 MySQL 实例,通过主从复制和读写分离实现高可用和负载均衡。 8. 缓存集群:缓存集群包含多个 Redis 实例,通过数据分片和主从复制实现高可用和负载均衡。 9. 消息队列集群:消息队列集群包含多个 RabbitMQ 实例,通过消息分发和集群模式实现高可用和负载均衡。 该架构可以通过水平扩展和容器化来实现更高的容错性和性能。例如,可以通过 Kubernetes 等容器编排工具来自动化部署和管理该架构的各个组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值