Kafka客户端核心参数详解

这一部分主要是从客户端使用的角度来理解 Kakfa 的重要机制。重点依然是要建立自己脑海中的 Kafka 消费模型。Kafka 的 HighLevel API 使用是非常简单的,所以梳理模型时也要尽量简单化,主线清晰,细节慢慢扩展。

一、从基础的客户端说起
Kafka 提供了非常简单的客户端 API 。只需要引入一个 Maven 依赖即可:

1 、消息发送者主流程
然后可以使用 Kafka 提供的 Producer 类,快速发送消息。


整体来说,构建 Producer 分为三个步骤:

  1. 设置 Producer 核心属性 : Producer 可选的属性都可以由 ProducerConfig 类管理。比如
    ProducerConfig.BOOTSTRAP_SERVERS_CONFIG 属性,显然就是指发送者要将消息发到哪个 Kafka 集群上。这是每个Producer 必选的属性。在 ProducerConfig 中,对于大部分比较重要的属性,都配置了对应的DOC 属性进行描述。
  2. 构建消息 : Kafka 的消息是一个 Key-Value 结构的消息。其中, key 和 value 都可以是任意对象类型。其中,key 主要是用来进行 Partition 分区的,业务上更关心的是 value 。
  3. 使用 Producer 发送消息。 :通常用到的就是单向发送、同步发送和异步发送者三种发送方式。
    2 、消息消费者主流程
    接下来可以使用 Kafka 提供的 Consumer 类,快速消费消息。


    整体来说, Consumer 同样是分为三个步骤:
  4. 设置 Consumer 核心属性 :可选的属性都可以由 ConsumerConfig 类管理。在这个类中,同样对于大部分比较重要的属性,都配置了对应的DOC 属性进行描述。同样 BOOTSTRAP_SERVERS_CONFIG 是必须设置的属性。
  5. 拉取消息 : Kafka 采用 Consumer 主动拉取消息的 Pull 模式。 consumer 主动从 Broker 上拉取一批感兴趣的消息。
  6. 处理消息,提交位点 :消费者将消息拉取完成后,就可以交由业务自行处理对应的这一批消息了。只是消费者需要向Broker 提交偏移量 offset 。如果不提交 Offset , Broker 会认为消费者端消息处理失败了,还会重复进行推送。
    Kafka 的客户端基本就是固定的按照这三个大的步骤运行。在具体使用过程中,最大的变数基本上就是给生产者和消费者的设定合适的属性。这些属性极大的影响了客户端程序的执行方式。
相关推荐
JH307312 小时前
《Redis 经典应用场景(一):缓存、分布式锁与限流》
redis·分布式·缓存
1.01^100013 小时前
[7-01-02].第10节:开发应用 - 配置Kafka中消费消息策略
kafka
熙客13 小时前
Elasticsearch:分布式搜索引擎数据库
分布式·elasticsearch·搜索引擎
Hello.Reader15 小时前
Spark RDD 编程从驱动程序到共享变量、Shuffle 与持久化
大数据·分布式·spark
陈果然DeepVersion17 小时前
Java大厂面试真题:Spring Boot+微服务+AI智能客服三轮技术拷问实录(四)
spring boot·redis·微服务·kafka·spring security·智能客服·java面试
小鹿学程序18 小时前
搭建hadoop集群
大数据·hadoop·分布式
web3.088899918 小时前
淘宝(全量)商品详情 API 的分布式请求调用实践
分布式
lijun_xiao200918 小时前
SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式-学习笔记-1
分布式·spring cloud·rabbitmq
二宝15219 小时前
黑马商城day8-ES01
分布式·微服务·架构
shepherd12619 小时前
破局延时任务(下):Spring Boot + DelayQueue 优雅实现分布式延时队列(实战篇)
java·spring boot·分布式