【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
问题背景:
我们的服务是提供数据存储的,数据是硬件采集上报过来的,有的硬件使用tcp协议发送数据,有的是用mqtt协议,有的是用http协议,我们是用netty实现的,现在数据量太大,每秒钟大概有1万条数据上报并存储到我们的Hbase中,现在运行netty的服务器压力很大,我们想做负载均衡,但是真不知道怎么做?
现在的方案是:通过zookeeper去做,但是我完全不知道zookeeper怎么去做复杂均衡?是像ngnix+tomcat那种只要配置就好了 还是 需要自己二次开发借助zookeeper实现与netty的负载均衡?还有没有其他的处理这种情况的负载均衡的方案了?求大神赐教!
HAproxy 可以做tcp层面的负载均衡。
题外话,做负载均衡很容易。 难得是当时你做netty项目时候,如果没考虑负载均衡的, 现在才做,代码上可能要做一些改动
私有协议,在Netty上基本上你脱离不了TCP(底层还是Socket)吧。
。。要简单可简单,要复杂可复杂。简单的,用nginx,nginx的io应该可以达到100k/tps。你们把io服务开多个服务进程处理,用nginx或其他的做分发。
复杂的,设计成分布式系统就可以了(一般涉及自定义的负载均衡和消息集群,在连接上面就做分发,每台服务器负载的请求在接入的时候就做均衡)。这种方案我做过两个项目了,小项目用这样的方式是很繁琐的。
如果简单只做前端的负载均衡,用标准的4层负载均衡方案就可以了。比如LVS,或者云服务提供的。
像MQTT如果要在服务器之间互访,需要做成分布式的,可以参考我这个开源的例子:
https://github.com/longkerdandy/mithqtt
请问楼主解决这个问题了吗?遇到了和楼主一样的问题