设计数据密集型应用 - 在线流式处理 (stream processing)

标签: 消息系统 架构设计 系统日志备份
4人阅读 评论(1) 收藏 举报
分类:

前面咱们介绍了线上服务和离线批量处理中涉及的一些问题和方案,这章我们将分享的是在线流式处理中的问题和方案;

流失数据处理系统与其他类型系统对比,数据流可能无穷尽,数据上游可能多方,下游也可能多方,基于这种数据流特点,我们需要一个消息系统(message system);

为了适应业务节点的多变特性,如新增消息产生方,减少消息处理方等,维持整个系统的稳定等,普遍通过消息代理(message broker)来处理和分发消息, 其中涉及消息队列和容错等功能, 可通过设置消息开端(offset)来区分每个消息消费者(consumer)当前所处理的信息;

关于消息代理容错,消息代理在接受到消息时会将消息接入日志,并放到内存,如果crash, 可快速从日志中回复消息; 而且还可通过两个小技巧-最小批量(micro-batching, 基本想法是对消息进行分批)和检测点(check-point,基本想法是对消息进行设点备份,如果crash, 按最近一个点来重新开始),来减少出错是带来的损失;

流式处理中可应用的场景:

  • 在线数据分析,事件发生的频次和统计分析
  • 在线特征挖掘和监控,欺诈检测,价格波动, 机器状态监控
  • 系统状态监控

在流式数据处理过程中,涉及三个较为重要的时间,消息生成时间(message produce time), 消息队列时间(time send to server), 消息处理时间(message process time); 在分析数据时需要区分这个时间的不同;

查看评论

使用DLL文件中封装的窗口

使用DLL文件中封装的窗口徐长友文章摘要:     编写软件时常常使用到DLL文件,本文就使用DLL文件中封装的窗口来说说Delphi中在DLL如何封装窗口,如何调用DLL中封装的窗口,及MDI-Ch...
  • yousoft
  • yousoft
  • 2001-10-12 08:29:00
  • 1550

《设计数据密集型应用/DDIA》精要翻译(三) :数据的存储和获取之底层数据结构

看了这三章,我最大的收货并不是说学到了什么新的知识,而是对以前通过各种渠道所掌握的知识重新进行了梳理和归纳,使它们有种脉络相通的感觉。 一、驱动你的数据库的数据结构 这也许是世界上最简...
  • u012422829
  • u012422829
  • 2018-01-15 01:03:27
  • 511

《设计数据密集型应用/DDIA》精要翻译(一) :reliability, scalability, maintainability

之前一段时间在看Kafka的源码分析,想学着做个分布式消息系统。后来听说 《设计数据密集型应用》这本书是2017年的神书,对这样的数据系统的内在精髓有很好的讲解。 看完这本书之后再看kafka之...
  • u012422829
  • u012422829
  • 2018-01-11 13:51:17
  • 661

《设计数据密集型应用/DDIA》精要翻译(二) :数据模型和查询语言

当我们在设计kafka、mysql这样的数据密集型应用时,数据模型也许是最为重要的一个考虑点。因为它不仅影响了代码的写法,还影响着我们解决问题的思维方式。这是第一章第二节的读书笔记,介绍了几种不...
  • u012422829
  • u012422829
  • 2018-01-13 16:39:52
  • 268

流处理时代(stream processing age)-part 1

流处理时代(stream processing age) 有的人称之为流处理。其他人称之为事件源或者CQRS(命令查询职责分离)。也有的人称之为复杂事件处理。总之,他们都包含了一个核心,帮助我们更好...
  • bobo81414
  • bobo81414
  • 2015-07-21 20:06:19
  • 942

Book list

•Code Complete (2nd edition) by Steve McConnell •The Pragmatic Programmer •Structure and Interpret...
  • maliang1225
  • maliang1225
  • 2012-03-26 13:08:37
  • 500

翻译-In-Stream Big Data Processing 流式大数据处理

原文:http://highlyscalable.wordpress.com/2013/08/20/in-stream-big-data-processing/ 作者:IlyaKatsov 相当长一段...
  • cargogo
  • cargogo
  • 2014-05-16 04:22:07
  • 4087

Designing Data-Intensive Applications(设计数据密集应用)- O'Reilly 2017 读书笔记

Designing Data-Intensive Applications The Big Ideas Behind Reliable, Scalable, and Maintainable Syst...
  • cteng
  • cteng
  • 2017-04-05 19:01:48
  • 4386

node.js中的DIRT程序

DIRTdata-intensive real-time:数据密集型实时程序。 package.json总是被放在程序的根目录下。package.json用于描述你的应用程序创建模块模块既可以是一个...
  • LC900730
  • LC900730
  • 2017-08-27 20:17:07
  • 201

kafka stream in action

  • 2017年11月23日 15:41
  • 9.9MB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 3763
    积分: 232
    排名: 32万+
    文章存档