Apache Kafka编程入门指南(二)—Spring整合Kafka

Kafka 天涯孤鸟 19946℃ 0评论

kafka logo
Spring整合kafka有两种方式:

  • 1、Spring-Kafka
  • 2、Spring Integration Kafka

这一篇先介绍Spring-Kafka
Spring-Kafka提供了两个接口,分别用于发送和接收消息:

  • KafkaTemplate
  • MessageListenerContainer

1、发送消息
KafkaTemplate封装了一个生成器,并提供了方便的方法来发送数据到kafka主题。 提供了异步和同步方法,异步方法返回一个Future。
其构造方法有:

前3个方法需要向Temple提供默认主题。

2、接收消息
可以通过配置MessageListenerContainer并提供MessageListener或通过使用@KafkaListener注释来接收消息。
MessageListenerContainer有两个实现:

  • KafkaMessageListenerContainer:从单个线程上的所有主题/分区接收所有消息。
  • ConcurrentMessageListenerContainer:委托给1个或多个KafkaMessageListenerContainer以提供多线程消费。通过container.setConcurrency(3),来设置多个线程

####一、添加依赖


###二、添加kafka consumer,producer配置文件
kafka-producer.xml


kafka-consumer.xml


###三、创建生产者类


前台可以通过http://localhost:8080/kafka/sendMessage.action调用发送消息
###四、创建消费者实现类

最终可以在控制台看到输出结果:
kafka producer

更多详细应用请看:http://docs.spring.io/spring-kafka/docs/1.0.4.RELEASE/reference/html/_reference.html#_kafkatemplate


转载请注明:猫头鹰工作室 » Apache Kafka编程入门指南(二)—Spring整合Kafka

喜欢 (10)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(4)个小伙伴在吐槽
  1. MessageListener没有收到消息啊??
    zyj07212017-07-02 18:54 回复
    • 天涯孤鸟
      你的xml配置对了没?可以参考我文章中的,kafka-producer.xml和kafka-consumer.xml进行配置
      天涯孤鸟2017-07-02 19:47 回复
  2. 如何配置消费多个topic啊
    qrqhuang2017-09-03 19:25 回复
    • 天涯孤鸟
      如果要配置多个topic,需要创建新的消费者容器,然后统一指向listener的消息处理类,也就是需要将下面这两个bean重新复制一份,改一下id,和topic即可
      <!-- 创建kafkatemplate bean,使用的时候,只需要注入这个bean,即可使用template的send消息方法 -->
      <bean id="messageListenerContainer" class="org.springframework.kafka.listener.KafkaMessageListenerContainer" init-method="doStart">
          <constructor-arg ref="consumerFactory"/>
          <constructor-arg ref="containerProperties"/>
      </bean>
      
      天涯孤鸟2017-09-10 22:18 回复