kafka怎么保证不丢失消息和不重复消费消息

kafka学习目录:kafka目录


文章目录

Kafka中怎么保证消息不会丢失和不重复消费?

从两个方面分析:消费推送和消息消费。也就是生产者和消费者两方面。

首先我们需要知道topic的概念。

  • Topic : 话题,可以理解为一个队列, 生产者和消费者面向的都是一个 topic。
  • 一个topic又有多个partition,而每个分区都有若干个副本:一个 leader 和若干个 follower。

生产者在推送消息时,会确定topic和topic中的那个partition。

一个消费者组内每个消费者负责消费 一个topic中不同分区的数据,同一个分区同时只能由一个组内消费者消费

一、生产者推送消息时怎么保证消息不丢失和不重复

对于生产者,在推送消息的时候,有以下几种方式来确定topic、topic中的partition。

将 producer 发送的数据封装成一个 ProducerRecord 对象。

img

  1. 指明 partition 的情况下,直接将指明的值直接作为 partiton 值;
  2. 没有指明 partition 值但有 key 的情况下,将 key 的 hash 值与 topic 的 partition 数进行取余得到 partition 值;
  3. 既没有 partition 值又没有 key 值的情况下,第一次调用时随机生成一个整数(后面每次调用在这个整数上自增),将这个值与 topic 可用的 parti
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值