流计算模式
传统的数据处理流程为:先收集数据,然后将数据放到数据库中,通过查询数据库中的数据,得到信息或进行下一步处理。
流计算方式:很好地对大规模流动数据在不断变化的运动过程中进行实时分析,捕捉到可能有用的信息,并把结果发送到下一计算节点。
代表流计算的有向无环图DAG:

流计算的优势
“流”能够非常自然描述业务执行的流程
“流”能够做任意细力度的划分,不管是大到整个产品线的各个服务模块,还是小到每个服务模块中的具体实现步骤。这是一种非常普遍的描述事情发生过程的模式。
流计算与异步
“流”的各个节点通过队列传递消息,不同节点的执行正好就是完全异步的。
由于有队列隔离,不同节点的执行完全不用考虑并发安全的问题。
“流”在内部执行时是异步和并行的,能最大限度提高资源使用效率,提高程序执行性能。

“流计算”与OOM问题
OOM, 全称Out Of Memory,指计算机运行过程中内存不够用的问题。
如果“流”的执行节点间使用的是阻塞队列,那么整个流的各个执行环节就天然地带有了反向压力能力,这样就避免了很多异步系统在高负载而又临时处理能力不足时造成OOM问题。
“流计算”与模块化
通过类似于Kafka这样消息中间件的隔离,可以非常清晰地定义模块和模块之间的边界。
这样的设计方式,符合高内聚、低耦合的设计模式。
网友评论