spring 整合kafka 實現BatchAcknowledgingMessageListener批量接收數據

之前參考別的文章實現了spring整合kafka接收單條數據處理,由於高吞吐量,高併發的需要,需要批量取kafka數據,並批量存儲。在網上搜索的資料,發現資料比較少,本人在原來單條數據處理的基礎上用BatchAcknowledgingMessageListener接口實現了批量接收kafka數據的功能。

1.環境配置:

名稱 版本號
spring-framework
4.2.3.RELEASE
kafka_2.11
1.1.0
kafka-clients
1.1.0
spring-kafka
2.1.6.RELEASE
jdk
1.7

2.修改的配置文件

2.1) consumerProperties不再自動提交接收:

<entry key="enable.auto.commit" value="false"/>

2.2)監聽類改爲實現BatchAcknowledgingMessageListener接口的監聽類

<bean id="messageListernerConsumerService" class="com.consumer.KafkaBatchAcknowledgingMessage"/>

2.3)在實現類中重載方法onMessage()方法。

import org.springframework.kafka.listener.BatchAcknowledgingMessageListener;
import org.springframework.kafka.support.Acknowledgment;
import java.util.List;

public class KafkaBatchAcknowledgingMessage implements BatchAcknowledgingMessageListener {

    @Override
    public void onMessage(List list, Acknowledgment acknowledgment) {
            System.out.println("批量接收的消息:"+list);
            acknowledgment.acknowledge();
    }



    @Override
    public void onMessage(Object o) {
   
    }
}

3.重啓項目測試批量接收數據。

發現測試OK。歡迎大家溝通交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章