一、Netty服务器TCP的负载均衡
Netty服务器对外提供tcp长连接和端口
用Netty可实现高性能高并发的业务服务器,对外接口支持tcp连接和http连接,对tcp连接,为处理高并发情况,实现多台netty服务器的横向扩展,需要采取负载均衡。
阿里云的SLB业务是支持负载均衡的,创建负载均衡时需要指定前端端口和后端端口,前端端口一般和后端端口保持一致即可。
如图:
我设置了一个netty程序的前端端口和后端端口为9090,9090就是该netty程序对外开放的tcp连接端口。
假设该负载均衡的公网ip为11.22.33.44, 则可通过ip:11.22.33.44, port:9090连接上netty程序,并实现了tcp的负载均衡。
- 阿里云SLB的TCP负载均衡是强制健康检测的,默认的监听端口和后端端口一致。所以SLB会按固定时间间隔和netty程序建立连接。如果你的业务逻辑中对创建的连接是有特定处理的,比如用户鉴权等,这时就干扰了真实用户连接的处理。
- 可以另开一个netty对外的端口,专门用于负载均衡的健康检测的端口监听。
如图, 可指定监听端口,检查间隔时间等:
二、Netty服务器Https的负载均衡
Netty服务器对外提供https请求和端口
http/https的健康检查不是强制的,关闭健康检查则不需要提供检查端口。
https监听的前端端口为443,后端端口为netty服务器对外提供的端口。