Kafka的生产者与消费者机制+分区策略你这还不懂?

什么是Kafka

Kafka是最初由Linkedin公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目,也是一个开源【分布式流处理平台】,由Scala和Java编写,(也当做MQ系统,但不是纯粹的消息系统)

目前 Kafka 已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。目前越来越多的开源分布式处理系统如 Cloudera、Storm、Spark、Flink 等都支持与 Kafka 集成

生产者与消费者机制

在Kafka中,生产者(producer)将消息发送给Broker,Broker将生产者发送的消息存储到磁盘当中,而消费者(Consumer)负责从Broker订阅并且消费消息,消费者(Consumer)使用pull这种模式从服务端拉取消息。而zookeeper是负责整个集群的元数据管理与控制器的选举。具体如下图所示。

Kafka的producer生产者发送到Broker分区策略

发布订阅的对象是主题(Topic),生产者将消息发送到指定的主题,消费者再对负责订阅的主题来进行消费。在Kafka里的分区机制是怎么样的呢?它是将主题划分成了多个分区(partition),每一个分区又有多个副本,在同一个主题下的不同分区里的消息也是不一样的。在生产者生产出来的每一条消息都只会发送到一个分区里,Kafka里的分区编号都是从0开始的,如果生产者向两个分区的主题发送一条消息,那么这条不是在分区0里,就是在分区1里。

那么如何指定消息到指定的分区里呢?

这时候就可以看看生产者的发送逻辑了,在此之前我们需要知道一个叫ProducerRecord的玩意,这个是什么?

ProducerRecord就是发送给Broker的Key/value键值对,封装基础数据信息࿰

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值