美文网首页网络
分布式系统网络通信

分布式系统网络通信

作者: isgiker | 来源:发表于2016-07-31 21:58 被阅读59次

一、需要解决的问题:

      最近在着手重构我们分布式系统节点之间的通信模块,系统可以抽象成这样一个具体的问题:网络中有许多的物理节点(n,可能为数千),每个节点上有m个consumer进程和producer进程,

       producer线程负责主要的计算任务,每个节点上的consumer需要汇聚所有节点上的producer的计算结果,然后做进一步处理。对于每个consumer来说,需要建立通信关系的数目为m*n个连接;对于每个producer节点,需要建立连接的数目为m*n;这样对于每个节点来说,并行k次计算需要建立的连接个数为2*k*m*(m*n)。如果使用TCP协议进行连接,会耗费很多系统资源,而且随着节点规模的逐渐扩大,可能会超过系统的连接数端口上限(Linux下是65535)。

       在我们实际的系统中,对连接的稳定性要求很高,所有的计算并发执行,如果其中一个连接失败,会导致整个计算失败;还有一个问题是,在并发执行的任务中,有的producer不停的发送数据,但consumer此时因为某原因不会接收数据,此时需要producer不会影响其他的producer,如果使用每个连接使用独立的tcp物理连接,因为tcp实现了拥塞控制,这个问题就不会暴露出来。

二、初步方案:

1、使用基于TCP的socket的方案,每个物理节点和其他节点之间有一个固定大小的socket连接池,每次运算时consumer都从这连接池里面取连接和其他的producer建立,这里需要注意的是任务的排队、拥塞控制、以及死锁的预防;

2、使用基于UDP的socket方案,需要自行处理数据包的顺序、丢失、重复发送等问题;

3、使用某个高级消息队列(AMPQ)进行通信,由消息队列处理物理连接共享的问题,目前候选的产品由zeromq和rabitmq;

来源:http://www.ithao123.cn/content-4476770.html

相关文章

  • Hadoop RPC机制详解

    网络通信模块是分布式系统中最底层的模块,他直接支撑了上层分布式环境下复杂的进程间通信逻辑,是所有分布式系统的基础。...

  • 系统设计(一)

    分布式系统中的概念 三元组 其实,分布式系统说白了,就是很多机器组成的集群,靠彼此之间的网络通信,担当的角色可能不...

  • Hadoop RPC 工作机制

    网络通信模块是分布式系统的底层基础,支撑上层分布式环境下复杂的进程间通信。远程过程调用(RPC,Remote Pr...

  • 分布式系统网络通信

    一、需要解决的问题: 最近在着手重构我们分布式系统节点之间的通信模块,系统可以抽象成这样一个具体的问题:网络...

  • 2019-12-18

    现代互联网架构,分布式系统是一个绕不开的话题。一款优秀的网络通信框架将在分布式系统的构建中起到举足轻重的作用。其中...

  • GGDA致力成为世界领先和透明的数字资产智能交易平台

    区块链的核心价值在于实现不可篡改、安全可靠的分布式记账系统。基于密码学、分布式共识协议、点对点网络通信和智能合约等...

  • 分布式系统如何寻址?

    分布式系统如何寻址? 通过 RPC 框架,能够解决服务之间的跨网络通信问题,是微服务改造的基础。 服务拆分之后,需...

  • RPC核心原理

    只要涉及到网络通信,我们就可能用到 RPC,RPC 是解决分布式系统通信问题的一大利器。 RPC 的作用就是体现在...

  • 网络规划设计师教程知识点精讲之网络通信系统

    加入群聊软考网络规划设计师【236328566】一起备考交流,不错过任何备考资料 网络通信系统 网络通信系统...

  • 什么是分布式系统,如何学习分布式系统

    什么是分布式系统,如何学习分布式系统(转) 目录 什么是分布式系统 分布式系统挑战 分布式系统特性与衡量标准 组...

网友评论

    本文标题:分布式系统网络通信

    本文链接:https://www.haomeiwen.com/subject/cskxsttx.html