中间件
文章平均质量分 94
阿kent_1990
这个作者很懒,什么都没留下…
展开
-
Kafka生产者详解
Kafka 有着默认的分区机制:如果键值为 null, 则使用轮询 (Round Robin) 算法将消息均衡地分布到各个分区上;如果键值不为 null,那么 Kafka 会使用内置的散列算法对键进行散列,然后分布到各个分区上。某些情况下,你可能有着自己的分区需求,这时候可以采用自定义分区器实现。/*** 自定义分区器*/@Override/*从生产者配置中获取分数线*/@Override。原创 2023-08-03 14:17:56 · 156 阅读 · 0 评论 -
深入理解Kafka副本机制
这是针对当首领副本挂掉且 ISR 中没有其他可用副本时,是否允许某个不完全同步的副本成为首领副本,这可能会导致数据丢失或者数据不一致,在某些对数据一致性要求较高的场景 (如金融领域),这可能无法容忍的,所以其默认值为 false,如果你能够允许部分数据不一致的话,可以配置为 true。在所有副本中,只有领导副本才能进行消息的读写处理。需要注意的是,并不是所有保存在分区首领上的数据都可以被客户端读取到,为了保证数据一致性,只有被所有同步副本 (ISR 中所有副本) 都保存了的数据才能被客户端读取到。原创 2023-08-03 14:03:03 · 183 阅读 · 0 评论 -
Kafka简介
ApacheKafka 是一个分布式的流处理平台。它具有以下特点:支持消息的发布和订阅,类似于 RabbtMQ、ActiveMQ 等消息队列;支持数据实时处理;能保证消息的可靠性投递;支持消息的持久化存储,并通过多副本分布式的存储方案来保证消息的容错;高吞吐率,单 Broker 可以轻松处理数千个分区以及每秒百万级的消息量。原创 2023-08-03 13:34:43 · 50 阅读 · 0 评论 -
Kafka消费者详解
注:虽然程序不能在失败时候进行自动重试,但是我们是可以手动进行重试的,你可以通过一个 Map offsets 来维护你提交的每个分区的偏移量,然后当失败时候,你可以判断失败的偏移量是否小于你维护的同主题同分区的最后提交的偏移量,如果小于则代表你已经提交了更大的偏移量请求,此时不需要重试,否则就可以进行手动重试。同时在主题发生变化时 , 比如添加了新的分区,也会发生分区与消费者的重新分配,分区的所有权从一个消费者转移到另一个消费者,这样的行为被称为再均衡。原创 2023-08-04 10:15:00 · 122 阅读 · 1 评论