大数据日知录【第六章:分布式通信】进程和进程之间如何通信

消息交换:

  分布式通信是位于不同机器上进程间通信的粘合剂

  若单纯的以JSON或者XML传递信息的话,太多重复传递Schema的过程,通信效率低。

  序列化的框架传输效率高

消息队列:

  模式:消息队列模式和Pub-Sub模式

Kafka:(至少送达一次,可以读取历史的消息)

  消息生产者-->代理服务器<--消息消费者主动去拉去对应主题的消息

  消息存储:划分成小文件存储,使用内存表建索引

  与Zookeeper的联合使用:状态信息,管理信息都放在zookeeper里面,Zookeeper负责维护消费者和Topic以及数据分片之间的关系

磁盘读写:

  顺序读写和随机读写的速度会相差6000倍,对于随机读写,可以通过预读和迟写的操作(比如有一块内存保留数据)将其变为顺序写,有时,顺序写的速度比内存还要快一些。

多播协议(将数据通知到网络中多个接收方):

  Gossip协议: 常用的模式:全部通知模型(将一个消息传给所有人,有中途丢失的风险),反熵模型(一传十,十传百,最常用),散步谣言模型(增加传播停止的判断,有可能没有全部更新)

原文地址:https://www.cnblogs.com/sunshisonghit/p/5997795.html