Spring-Kafka系列(3)—— SpringKafka消费者监听MessageListener

本文主要介绍了Spring Kafka消费者监听器MessageListener的使用,包括单条和批量数据监听、消息监听容器与容器工厂的配置。通过KafkaListener注解,我们可以方便地配置消费的topic、消息监听器等,实现对Kafka消息的高效处理。
摘要由CSDN通过智能技术生成

2.3 SpringKafka消费者

2.3 SpringKafka消费者

2.3.1 Kafka消息监听器MessageListener

之前已经介绍了通过kafka-topic-consumer.shkafka-tool工具来消费数据。下面介绍SpringKafka消费数据的方式——kafka消息监听器。

Kafka的消息监听一般可以分为:1.单条数据监听;2.批量数据监听。GenericMessageListenerSpringKafka的消息监听器接口,也是一个函数式接口,利用接口的onMessage方法可以实现消费数据。

public interface GenericMessageListener<T> {
	void onMessage(T data);
    
	default void onMessage(T data, @Nullable Acknowledgment acknowledgment) {
		throw new UnsupportedOperationException("Container should never call this");
	}

	default void onMessage(T data, Consumer<?, ?> consumer) {
		throw new UnsupportedOperationException("Container should never call this");
	}

	default void onMessage(T data, @Nullable Acknowledgment acknowledgment, Consumer<?, ?> consumer) {
		throw new UnsupportedOperationException("Container should never call this");
	}

}

基于此接口可以实现单条数据消息监听器接口MessageListenen、多条数据消息监听器接口BatchMessageListener、带ACK机制的消息监听器AcknowledgingMessageListenerBatchAcknowledgingMessageListener

#mermaid-svg-11qFALBGTxUu6O9B {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-11qFALBGTxUu6O9B .error-icon{fill:#552222;}#mermaid-svg-11qFALBGTxUu6O9B .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-11qFALBGTxUu6O9B .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-11qFALBGTxUu6O9B .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-11qFALBGTxUu6O9B .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-11qFALBGTxUu6O9B .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-11qFALBGTxUu6O9B .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-11qFALBGTxUu6O9B .marker{fill:#333333;stroke:#333333;}#mermaid-svg-11qFALBGTxUu6O9B .marker.cross{stroke:#333333;}#mermaid-svg-11qFALBGTxUu6O9B svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-11qFALBGTxUu6O9B .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-11qFALBGTxUu6O9B .cluster-label text{fill:#333;}#mermaid-svg-11qFALBGTxUu6O9B .cluster-label span{color:#333;}#mermaid-svg-11qFALBGTxUu6O9B .label text,#mermaid-svg-11qFALBGTxUu6O9B span{fill:#333;color:#333;}#mermaid-svg-11qFALBGTxUu6O9B .node rect,#mermaid-svg-11qFALBGTxUu6O9B .node circle,#mermaid-svg-11qFALBGTxUu6O9B .node ellipse,#mermaid-svg-11qFALBGTxUu6O9B .node polygon,#mermaid-svg-11qFALBGTxUu6O9B .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-11qFALBGTxUu6O9B .node .label{text-align:center;}#mermaid-svg-11qFALBGTxUu6O9B .node.clickable{cursor:pointer;}#mermaid-svg-11qFALBGTxUu6O9B .arrowheadPath{fill:#333333;}#mermaid-svg-11qFALBGTxUu6O9B .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-11qFALBGTxUu6O9B .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-11qFALBGTxUu6O9B .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-11qFALBGTxUu6O9B .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-11qFALBGTxUu6O9B .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-11qFALBGTxUu6O9B .cluster text{fill:#333;}#mermaid-svg-11qFALBGTxUu6O9B .cluster span{color:#333;}#mermaid-svg-11qFALBGTxUu6O9B div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-11qFALBGTxUu6O9B :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}

MessageListener

Gener

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值