zoukankan      html  css  js  c++  java
  • spring整合kafka(配置文件方式 生产者)

    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,即可使用templatesend消息方法 -->
    <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就可以调用发消息的方法
     
     
     
  • 相关阅读:
    Windows 常见错误总结
    Windows 常用快捷方式
    【Linux】wget: command not found的两种解决方法
    【Linux】VirtualBox虚拟网络配置
    【Linux】启动Tomcat遇到Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
    【REDIS】 redis-cli 命令
    【Charles】使用Charles时,抓不到包的情况。
    【Gradle】Downloading https://services.gradle.org/distributions/gradle-3.3-bin.zip 失败
    【LINUX】SHELL syntax error:unexpected end of file
    motan源码分析七:序列化
  • 原文地址:https://www.cnblogs.com/tree1123/p/8386246.html
Copyright © 2011-2022 走看看