大数据日知录【第六章:分布式通信】进程和进程之间如何通信
消息交换:
分布式通信是位于不同机器上进程间通信的粘合剂
若单纯的以JSON或者XML传递信息的话,太多重复传递Schema的过程,通信效率低。
序列化的框架传输效率高
消息队列:
模式:消息队列模式和Pub-Sub模式
Kafka:(至少送达一次,可以读取历史的消息)
消息生产者-->代理服务器<--消息消费者主动去拉去对应主题的消息
消息存储:划分成小文件存储,使用内存表建索引
与Zookeeper的联合使用:状态信息,管理信息都放在zookeeper里面,Zookeeper负责维护消费者和Topic以及数据分片之间的关系
磁盘读写:
顺序读写和随机读写的速度会相差6000倍,对于随机读写,可以通过预读和迟写的操作(比如有一块内存保留数据)将其变为顺序写,有时,顺序写的速度比内存还要快一些。
多播协议(将数据通知到网络中多个接收方):
Gossip协议: 常用的模式:全部通知模型(将一个消息传给所有人,有中途丢失的风险),反熵模型(一传十,十传百,最常用),散步谣言模型(增加传播停止的判断,有可能没有全部更新)
posted on 2016-10-25 18:40 zhouzhou0615 阅读(490) 评论(0) 编辑 收藏 举报