带你入门Kafka,kafka入门( 三 )


使得spark也能进行实时的数据计算,但是底层还是批处理,通过固定的offset偏移量进行实时流式批处理 。flink是大数据处理的一颗新星 。核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能 。基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任务 。
实现FaaS(函数即服务)是真正意义上的实时计算引擎 。目前也是最先进的 。但是才火起来 。除了一线大厂,小厂是目前是很难玩转的 。而且目前资料比较少,还可能有一些坑要踩 。但是这些遮挡不了flink的光芒 。目前社区十分活跃,而且阿里有魔改版本Blink 。常远来看更有前途 。总结通过上面的介绍结合自己的业务场景以及团队技术层次应该心中有答案了 。
kafka中消息数据如何保证按顺序消费?

带你入门Kafka,kafka入门


关于Kafka保证单partition有序的讨论如下:一、为什么只保证单partition有序如果Kafka要保证多个partition有序,不仅broker保存的数据要保持顺序,消费时也要按序消费 。假设partition1堵了,为了有序,那partition2以及后续的分区也不能被消费,这种情况下,Kafka 就退化成了单一队列,毫无并发性可言,极大降低系统性能 。
因此Kafka使用多partition的概念,并且只保证单partition有序 。这样不同partiiton之间不会干扰对方 。二、Kafka如何保证单partition有序?producer发消息到队列时,通过加锁保证有序 。现在假设两个问题broker leader在给producer发送ack时,因网络原因超时,那么Producer 将重试,造成消息重复 。
先后两条消息发送 。t1时刻msg1发送失败,msg2发送成功,t2时刻msg1重试后发送成功 。造成乱序 。2.解决重试机制引起的消息乱序为实现Producer的幂等性,Kafka引入了Producer ID(即PID)和Sequence Number 。对于每个PID,该Producer发送消息的每个

推荐阅读