流系统--事件流

在流系统中,常常把数据记录叫做事件(event)。实质上是一条包含信息的数据。
批处理系统(batch process)的行为是:周期性去数据存储中拉取数据,由一个或多个worker来进行数据的处理、聚合结果(参见mapreduce)。而流处理系统则由producer将数据放到broker,由若干consumer负责实时或者准实时处理数据,也就是所谓的发布-订阅模式
这里有两个问题是流系统设计时需要面对的:

  1. 当生产者发送数据的速度超过消费者处理的速度时应该怎么做?a.生产者简单丢弃无法及时处理的数据,即对事件本身加过期时间,在时间段内没有被消费者处理就丢弃;b.将消息放在队列中,这也是很多消息队列的实现方式;c.在生产者端做流量控制,协调生产者产生数据的速度。
    2.节点故障时的行为,是否会导致消息丢失。是否需要做消息的磁盘持久化。
    消息在broker的存储类似于日志的数据特点:只有追加不可变数据和顺序读取的操作:


    类似日志的存储

通过创建不同的partition来实现水平扩展增加数据吞吐能力,通过partition的备份来实现高可用和故障转移。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 姓名:周小蓬 16019110037 转载自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw阅读 34,797评论 13 425
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,120评论 2 89
  • 认真看完这20个心理分析,轻松解决减肥问题 作者瘦龙 研究了减肥心理这么久了,一直想好好写一篇综合性的文章,希望能...
    神乐酱酱酱阅读 5,458评论 0 5
  • 爸爸给娃讲故事 兔子六个月生了20多个宝宝,食物不够吃,就吃农民伯伯的胡萝卜,我说兔子好坏,娃却说:“那他饿可咋办...
    大东一源阅读 1,267评论 0 0
  • 有天看到一篇文章,说可以关闭朋友圈后,我马上尝试,微信——我——设置——通用——功能——朋友圈——停用该功能。看着...
    拂尘记阅读 3,480评论 0 4