首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring整合kafka(配置文件方式 生产者)

spring整合kafka(配置文件方式 生产者)

作者头像
大数据流动
发布2019-08-08 11:40:52
1.1K0
发布2019-08-08 11:40:52
举报
文章被收录于专栏:实时计算实时计算

Kafka官方文档有 https://docs.spring.io/spring-kafka/reference/htmlsingle/

这里是配置文件实现的方式

先引入依赖

<dependency>
  <groupId>org.springframework.kafka</groupId>
  <artifactId>spring-kafka</artifactId>
  <version>2.1.0.RELEASE</version>
</dependency>


创建 spring-context-kafka-provider.xml     当然要配置spring扫描该配置文件

配置文件如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
             http://www.springframework.org/schema/beans/spring-beans.xsd  
             http://www.springframework.org/schema/context  
             http://www.springframework.org/schema/context/spring-context.xsd">

   <!-- 定义producer的参数 -->
   <bean id="producerProperties" class="java.util.HashMap">
      <constructor-arg>
         <map>
            <entry key="bootstrap.servers" value="kafka集群地址"/>
            <entry key="group.id" value="0}"/>
            <entry key="retries" value="10"/>
            <entry key="batch.size" value="16384"/>
            <entry key="linger.ms" value="1"/>
            <entry key="buffer.memory" value="33554432"/>
            <entry key="key.serializer" value="org.apache.kafka.common.serialization.IntegerSerializer"/>
            <entry key="value.serializer" value="org.apache.kafka.common.serialization.StringSerializer"/>
         </map>
      </constructor-arg>
   </bean>

   <!-- 创建kafkatemplate需要使用的producerfactory bean -->
   <bean id="producerFactory" class="org.springframework.kafka.core.DefaultKafkaProducerFactory">
      <constructor-arg>
         <ref bean="producerProperties"/>
      </constructor-arg>
   </bean>

   <!-- 创建kafkatemplate bean,使用的时候,只需要注入这个bean,即可使用template的send消息方法 -->
   <bean id="KafkaTemplate" class="org.springframework.kafka.core.KafkaTemplate">
      <constructor-arg ref="producerFactory"/>
      <constructor-arg name="autoFlush" value="true"/>
      <property name="defaultTopic" value="test"/>
   </bean>

</beans>



在需要发消息的类里自动注入
@Autowired
private KafkaTemplate<Integer, String> kafkaTemplate;
用kafkaTemplate就可以调用发消息的方法
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档