Lambda架构通俗理解——离线 & 实时数据的一致性,kafka不丢数据的实现

采用Lambda架构的目的是保证实时和离线数据的一致性。

通俗简单理解就是:kafka中的实时数据分两个条线

(1)实时条线,通过Storm、SparkStreaming、Flink等大数据实时处理框架,将kafka中的数据进行实时处理,然后将计算逻辑封装成jar包。

(2)离线条线,通过Hive等,当天结束后,对上面封装成的jar包跑一遍,将离线数据分析结果导入数据应用层,覆盖掉当天之前的实时数据。

这样做的好处是:保证了实时和离线数据的一致性,并且防止kafka中丢数据。

上图是标准的Lambda架构的原理图,第一层Batch Layer(批处理层)做离线处理,第三层Speed Layer(实时处理层)做实时处理,中间层Serving Layer(服务层)做数据的获取。

相当于把同一个数据源的数据即做了实时处理,又做了离线数据,在服务层依据需求获取实时/离线数据。

只是现在一般在当天结束后,对全天的实时数据(此时已经变成离线数据了)进行离线处理,然后覆盖掉当天得出的实时处理结果,这也是目前Lambda架构的企业常用的一种情况。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值