消费者kafka配置

配置文件

    <!-- 定义consumer的参数 -->
    <bean id="consumerProperties" class="java.util.HashMap">
        <constructor-arg>
            <map>
                <entry key="bootstrap.servers" value="127.0.0。1" />
                <!--关闭自动提交,使用spring实现的提交方案-->
                <entry key="enable.auto.commit" value="false" />
                <!-- 每次最大拉取消息数,若消息处理逻辑比较耗时的,请调低改值;有调外部接口或者处理非常耗时的,请单独起异步线程处理,不要阻塞消费线程。
                     建议不超过10 -->
                <entry key="max.poll.records" value="10" />
                <entry key="key.deserializer" value="org.apache.kafka.common.serialization.StringDeserializer" />
                <entry key="value.deserializer" value="org.apache.kafka.common.serialization.StringDeserializer" />
            </map>
        </constructor-arg>
    </bean>

    <!-- 创建consumerFactory bean -->
    <bean id="consumerFactory"
          class="org.springframework.kafka.core.DefaultKafkaConsumerFactory">
        <constructor-arg>
            <ref bean="consumerProperties" />
        </constructor-arg>
    </bean>
	
	<!-- 消息监听器,实际执行消息消费的类 -->
    <bean id="myMsgListener" class="com.xiao.zhen.MyMsgListener" />

    
    <!-- 消费者容器配置参数 -->
    <bean id="containerProperties" class="org.springframework.kafka.listener.config.ContainerProperties">
        <constructor-arg value="${kafka.topic.name}" />
        <property name="groupId" value="${kafka.consumer.group}" />
        <!-- 每接收到一条消息ack一次,可靠性最高 -->
        <property name="ackMode" value="RECORD" />
        <!--  消息监听器  -->
        <property name="messageListener" ref="myMsgListener" />
    </bean>
	
    <!-- 消费者容器 -->
    <bean id="kafkaMessageListenerContainer" class="org.springframework.kafka.listener.ConcurrentMessageListenerContainer"
          init-method="doStart">
        <constructor-arg ref="consumerFactory" />
        <constructor-arg ref="containerProperties" />
        <!-- 多线程消费,每个消费者应用节点对该队列的消费线程数,该值*应用节点数一般无需超过队列分区数 -->
        <property name="concurrency" value="6" />
    </bean>

执行消费的类

@Service
public class myMsgListener implements MessageListerner<String,String> {

    @Override
    public void omMessage(ConsumerRecord<String, String> consumerRecord) {
         try {
             自定义类  = JSON.parseObject(consumerRecord.value(), 自定义类.class);
             // 业务逻辑处理 
             ......
         } catch(Exception e) {

         }
        
    }

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值