服务器集群:服务器集群中服务器之间如何通信?
【小编提示】本文部分内容摘自网络,仅供参考!如需了解服务器租用\托管相关问题,请咨询YINGSOO专业客服,享受1V1贴心服务!免费热线400-630-3752
【本周热销】香港高防服务器丨香港云服务器租用丨美国云主机丨美国主机租用
【选购帮助】租用国外服务器能干嘛?要注意什么?
在做服务器集群时,集群中的服务器需要通信,比如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)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的mQ产品有ibm webspHeRe mQ等等。
ActivemQ
1、ActivemQ是消息队列技术,为解决高并发问题而生!
2、ActivemQ生产者消费者模型(生产者和消费者可以跨平台、跨系统)
有中间平台3、ActivemQ支持两种消息传输方式
1)Queue,队列模式,生产者生产了一个消息,只能由一个消费者进行消费
2)topic,发布/订阅模式,生产者生产了一个消息,可以由多个消费者进行消费
Qpid
AmQp是一种用于业务消息的[美国高防御主机]开放网络协议。他定义了一种允许双方进行可靠业务消息传递的二进制线级协议。该协议的目标是成为所有消息中间件之间进行互操作的标准协议。
消息队列是一种进程间通信线程或同一进程的不同线程间的通信方式。
Qpid则是由Apache开发的一种消息队列,实现了AmQp协议,并且支持多种语言与多种平台。
zeromq
这是个类似于socket的一系列接口,他跟socket的区别是:普通的socket是端到端的(1:1的关系),而ZmQ却是可以n:m 的关系,人们对bsd套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(tcp/Udp)和处理错误等,而ZmQ屏蔽了这些细节,让你的网络编程更为简单。ZmQ用于node与node间的通信,node可以是主机或者是进程。
引用官方的说法: “ZmQ(以下ZeromQ简称ZmQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZmQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”bsd套接字之上的一 层封装。ZmQ让编写高性能网络应用程序极为简单和有趣。”
这不就是个消息队列嘛,简单的可以用zeromq做,稍微复杂一点可以用rabbitmq/activemq/qpid等等各种成熟方案
我看了下zeromq资料,它是用的tcp,通过一个路由服务器来转发(发布-订阅,请求-应答等等)。我的问题这种转发服务器会是一个瓶颈额,比如设计目标并发量10万,即每秒10万条消息,要求所有消息1秒内处理完,他能即时处理?
消息队列很成熟了,你要想性能好,就加机器来解决。
看消息大小,0mq官网有测试数据,8字节的消息每秒可以吞吐280万条(10g网络)或者400万条(infiniband),100字节的消息每秒都在100万条以上,每秒10万并不是一个特别巨大的量。想要性能可以堆机器,分布式消息队列很成熟了。
吞吐能力是接收和发送的总和?还是单单是接收?其实我想知道它的分发能力,比如说有10个服务器向它订阅了消息,那1秒它能同时分发给这10台服务器的消息量有多大?
官网有很具体的报告可以参考,建议自己搭环境实际测试,在普通pc和千兆网卡的环境里,是不可能有官方测出来的那个成绩的
我的程序中用的就是“广播”,主动或被动发送状态。
请问你是如何解决udp广播中丢消息的问题呢?建立应答与重发机制
在分布式调度系统中,如果要实现调度服务器与多台计算节点服务器之间通信,采用socket来实现是一种实现方式,当然我们也可以通过数据存储任务,子节点来完成任务,但是往往使用数据作为任务存储都需要定制开发,要维护数据库中任务记录状态等等。开发的东西还是有点多,而且还不够灵活。因此,我个人是比较偏向于使用socket来实现任务的调度工作。原因:使用socket实现调度比较灵活,而且扩展性都比较好。
实现思路:调度服务器要实现调度工作,它必须与所有计算节点之间建立连接。而且他需要知道每台计算节点的任务状况,因此服务器节点必须存储与所有计算节点的socket连接对象。
在客户端唯一需要知道的就是它归属的调度服务器的通信ip和端口,因此client是发送连接的主动方,由调度服务器监听是否有client请求建立连接,当建立连接成功后,把该连接信息存储到一个节点中以便监控client的存活状态及通信使用。
扩展:
由于server端是存储了所有server与client的连接对象,因此我们是可以基于此demo的基础上实现聊天系统:
* 每当一个与用户发言时,是由server接收到的某个用户的发言信息的,此时服务器端可以通过循环发送该用户发送的信息给每个已经连接连接的用户(排除发送者)。
本公司受中国电信大力扶持发展idc业务,已与全球120个国家的顶级机房达成战略合作关系,为互联网[台湾百兆服务器]金额行业、区块链、数字货币、iot行业、直销行业、游戏行业、电商行业企业客户等提供一站式安全解决方案,详询本公司客服电话400-630-3752。
选用香港服务器做外贸好吗
选择香港服务器做外贸网站好吗?目前做外贸行业的也是比较多的,中国制造几乎在各个国家都可以看到了。做为一个外贸网站对稳定性需求也是比较大的,那么选用香港服务器做外贸网站好吗?
1、即开即用,无需备案
使用过服务器的朋友都是了解的,在大陆使用服务器是必须要经过备案手续才能正常使用的。很多做外贸行业的朋友可能就是某些国货在某一个特定时间段在国外比较好销售。所以站长在时间这块也是比较急的。由于地方政策的不同,香港片区的服务器是无需备案即可使用的。一旦上线,即可快速布局全世界。
2、访问速度更快
如果一[香港服务器测评]个外贸网站打开的速度超过8秒,就会造成部分用户的流失。作为做外贸网站使用的服务器[虚拟主机是什么]在访问速度上的要求是比较高的。国内大部分的服务器是没有国际带宽的,在国际带宽上的资源是比较缺乏的。在香港片区的服务器不仅距离大陆的距离比较近,在国际带宽出口的资源是特别多的。所以使用香港服务器去布局国外市场是非常方便的。
在香港大部分的服务器都是采用的国际BGP,是可以根据用户的地点只能的切换到最佳的路由上的。使不同地区的用户访问网站的速度都是保持在一个最高水平。此外,香港服务器还有直通大陆的CDN线路,相对于普通的香港线路来说,CN2专线的访问速度会更快一些。几乎可以做到大陆访问的速度与大陆访问大陆的速度是一样的。
YINGSOO热线:400-630-3752
热门文章:【国外建站用什么最多】【如何选择一款合适的香港云主机】【云服务器ecs怎么用】【广州电信机房】【香港新世界服务器有什么样的优势呢】【美国站群服务器选择注意事项】【游戏网站需要高速高配服务器】【美国vps日本vps】【IDC数据库】【房卡游戏服务器】【特价云服务器】【服务器托管美国服务商需满足哪些条件】【香港云服务器好不好】【云服务器可以玩游戏吗】【天龙八部服务器租用】【高防护服务器】【美国多ip外贸服务器怎么样】【日本vps国外服务器】【美国和欧洲】【德阳高防服务器】
9年韩国主机出租业务运营经验,1200家企业客户共同选择.韩国Korea Telecom机房核心合作伙伴,机房带宽资源充足,到国内速度平均在80ms左右.
https://www.yingsoo.com/products/cloud-kr.html
9年香港的主机租用业务运营经验,连续3年香港的主机租用业务名列前茅.香港宽频,HKT机房核心合作伙伴,1200家企业客户共同选择,24小时在线服务
https://www.yingsoo.com/products/cloud-hk.html
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。