Kafka Template–2.2.0 api
来源:互联网 发布:红帽系统yum源 编辑:程序博客网 时间:2024/06/11 00:27
Kafka Template–2.2.0 api
KafkaTemplate
KafkaTemplate
这个类包装了个生产者,来提供方便的发送数据到kafka的topic里面。
同步和异步的方法都有,异步方法返回一个Future
。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
sendDefault
这个方法,需要提供一个默认的topic。- API使用一个
timestamp
作为一个参数,这个时间戳奖杯存储在record里面。 - 用户的时间戳是否被存储,取决于在kafka的topic里面配置的时间戳类型。如果topic被配置成了
CREATE_TIME
,则将使用用户指定的时间戳,如果没指定,将自动生成。如果设置为了LOG_APPEND_TIME
那么用户指定的时间戳将会被忽略,使用broker的local time. metrics
方法和partitionsFor
方法,委托给一些潜在的生产者;而execute
方法则是提供了直接访问潜在生产者的途径。
为了使用这个template,配置个工厂类,并将这个工厂类提供给templage类的构造方法。
举个栗子:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 这个template可以使用spring方式进行配置。
当使用一个
Message<?>
参数的时候,需要为这个消息的头部,提供topic,partition,key信息。- KafkaHeaders.TOPIC
- KafkaHeaders.PARTITION_ID
- KafkaHeaders.MESSAGE_KEY
- KafkaHeaders.TIMESTAMP
这些信息将被装在到数据里面。
你可以配置给
KafkaTemplate
配置个ProducerListener
来监听异步的回调结果,用这种方式替代使用Future
。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- template默认配置
LoggingProducerListener
这个类作为监听类用来记录错误,但是当发送成功时候,却不做任何操作。 - 为了方便使用,提供了抽象类
ProducerListenerAdapter
,你可以只实现它一两个方法,它为isInterestedInSuccess
方法返回false - 观察template类的发送方法,发现它返回一个
ListenableFuture<SendResult>
。你可以使用一个监听类来注册一个回调,用来接收异步发送返回的结果。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
SendResult
这个类有两个属性,ProducerRecord
和RecordMetadata
;具体参考kafka的API- 如果你想要阻塞发送线程(批量发送),为了等待结果,你可以调用future的
get()
方法;另外,在等待的过程中,你可能想要调用flush()
方法,为了简便,template
类提供了一个autoFlush
,这个属性将会在每次send的时候,立即去flush掉sending thread.不过autoFlush将会明显降低性能(就是说最好不要一条条的发送,要批量发送)。
阅读全文
0 0
- Kafka Template–2.2.0 api
- Spring-Kafka 2.0.0发送API翻译
- kafka代码api
- kafka Producer API使用
- Kafka API说明
- Kafka Java API示例
- Kafka consumer API简介
- Kafka Consumer API样例
- kafka消费API理解
- Kafka Scala Producer API
- Kafka API for Python
- kafka java Api 地址
- Kafka New Consumer API
- Java Api操作Kafka
- Kafka API操作
- kafka JAVA API解析
- Kafka Consumer API样例
- kafka kafka-clients 0.10.0.0 API
- ###(很难找的页面错误)查询操作不需要 返回 操作成功后失败。【方法不能同时执行两个response返回两次数据。导致页面显示数据失败】
- Android开发中的事件分发和消费机制的一些理解
- DownloadManager
- mac上搭建Jenkins+Android+IOS自动开发部署环境
- 求树的深度
- Kafka Template–2.2.0 api
- 树的子结构
- Expected mime type application/octet-stream but got text/html.
- QT下设置Linux系统时间
- 点云数据处理学习笔记
- Python- 时间格式的相互转换
- java.io.IOException: Error running exec(). Command: [/system/xbin/su] Working Directory: null Enviro
- String,StringBuffer,StringBuilder
- 阿里云服务器被入侵挂上了wnTKYg挖矿程序解决办法