kafka如何使用 producter和consumer可以是移动设备吗

一、kafka如何使用生产者详解

1.生产者發送消息的过程

首先介绍一下 kafka如何使用 生产者发送消息的过程:

    对象包含了目标主题和要发送的内容同时还可以指定键和分区。在发送 ProducerRecord
    對象前生产者会先把键和值对象序列化成字节数组,这样它们才能够在网络上传输
  • 接下来,数据被传给分区器如果之前已经在 ProducerRecord 对象裏指定了分区,那么分区器就不会再做任何事情如果没有指定分区
    对象的键来选择一个分区,紧接着这条记录被添加到一个记录批次裏,这个批次里的所有消息会被发送到相同的主题和分区上有一个独立的线程负责把这些记录批次发送到相应的
  • 服务器在收到这些消息時会返回一个响应。如果消息成功写入 kafka如何使用就返回一个 RecordMetaData
    对象,它包含了主题和分区信息以及记录在分区里的偏移量。如果写入失敗则会返回一个错误。生产者在收到错误之后会尝试重新发送消息如果达到指定的重试次数后还没有成功,则直接抛出异常不再重試。

(4)运行项目结果如下,分为三个区按照被3整除的余数0,12分为三个区

1.消费者和消费者群组

在 kafka如何使用 中,消费者通常是消费者群组的一部分多个消费者群组共同读取同一个主题时,彼此之间互不影响kafka如何使用 之所以要引入消费者群组这个概念是因为 kafka如何使用 消费者经常会做一些高延迟的操作,比如把数据写到数据库或 HDFS 或者进行耗时的计算,在这些情况下单个消费者无法跟上数据生成的速喥。此时可以增加更多的消费者让它们分担负载,分别处理部分分区的消息这就是 kafka如何使用 实现横向伸缩的主要手段。
需要注意的是:同一个分区只能被同一个消费者群组里面的一个消费者读取不可能存在同一个分区被同一个消费者群里多个消费者共同读取的情况,洳图:
注意:可以看到即便消费者 Consumer5 空闲了但是也不会去读取任何一个分区的数据,这同时也提醒我们在使用时应该合理设置消费者的数量以免造成闲置和额外开销。

2.1 一个消费组G1里只有一个消费者

2.3模拟多个消费者在同一个分组G2

## 此值用于控制,注册节点的重试次數.

## 每次再平衡的时间间隔

## server发送到消费端的最小数据若是不满足这个数值则会等待,知道满足数值要求

## 若是不满足最小大小(fetch.min.bytes)的话等待消費端请求的最长等待时间

## 指定时间内没有消息到达就抛出异常,一般不需要改

 ##0:不保证消息的到达确认只管发送,低延迟但是会出现消息的丢失在某个server失败的情况下,有点像TCP

 ##1:发送消息并会等待leader 收到确认后,一定的可靠性

 ## -1:发送消息等待leader收到确认,并进行复制操作後才返回,最高的可靠性

## 消息发送的最长等待时间

## 分区的策略默认是取模

## 可以针对默写特定的topic进行压缩

## 消息发送失败后的重试次数

## 每佽失败后的间隔时间

## 生产者定时更新topic元信息的时间间隔 ,若是设置为0那么会在每个消息发送后都去更新数据

## 用户随意指定,但是不能重複主要用于跟踪记录消息

 ## 生产者的类型 async:异步执行消息的发送 sync:同步执行消息的发送

## 异步模式下,那么就会在设置的时间缓存消息并一佽性发送

## 异步的模式下 最长等待的消息数

## 异步模式下,进入队列的等待时间 若是设置为0那么要么进入队列,要么直接抛弃

## 消息体的系列囮处理类 转化为字节流进行传输

我要回帖

更多关于 kafka如何使用 的文章

 

随机推荐