关于服务器集群中服务器之间如何通信

本文探讨了服务器集群中服务器之间的通信问题,分析了A方案(组播/广播)和B方案(路由服务器)的优缺点。提到了消息队列如rabbitmq、ActiveMQ、Qpid和zeromq作为解决此类问题的成熟方案,着重讨论了zeromq的特性。文章指出,通过消息队列能有效处理并发量,并提供了关于zeromq性能的数据。最后,作者分享了个人实现分布式调度系统的思路和扩展应用,并建议参考负载均衡设计和云服务器选择。
摘要由CSDN通过智能技术生成

通信时,遇到如下问题

服务器集群中服务器之间如何通信?

网上看到好多人是通过以下方式去做的:

在做服务器集群时,集群中的服务器需要通信,比如Client1(简称C1)连接到Server1(简称S1),Client2连接到Server2,Client1需要向Client2发消息,S1并不知道C2已连接到S2。

A方案:采用组播(或广播),S1在接收到C1消息后,发送广播包查询C2位于哪个Server上,这时S2向S1回复,S1再将消息发送到S2,S2转发给C2,但是udp是不可靠的,虽然Server都位于同一局域网内,如果消息丢了,那C2就接收不到C1的消息了。

B方案:增加一个路由服务器,所有Server都连接到路由服务器(tcp长连接),S1将消息转发给路由服务器,路由服务器再广播给所有Server,由各个Server自行判断,但这样程序复杂度就上升了,每个Server都会处理本来不属于自己处理的消息,而且路由服务器会成为瓶颈,消息数量大规模增加的话。

这不就是个消息队列嘛,简单的可以用zeromq做,稍微复杂一点可以用rabbitmq/activemq/qpid等等各种成熟方案。

rabbitmq

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值