kafka 生产者消费者配置
来源:互联网 发布:哪里有抓小三软件下载 编辑:程序博客网 时间:2024/04/26 22:14
生产者:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int-kafka="http://www.springframework.org/schema/integration/kafka" xmlns:int="http://www.springframework.org/schema/integration" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-4.1.xsd http://www.springframework.org/schema/integration/kafka http://www.springframework.org/schema/integration/kafka/spring-integration-kafka.xsd "> <!--kafka config--> <int:channel id="inputToKafka"/> <int-kafka:outbound-channel-adapter kafka-producer-context-ref="kafkaProducerContext" auto-startup="true" channel="inputToKafka" order="1"> </int-kafka:outbound-channel-adapter> <bean id="producerProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="properties"> <props> <prop key="topic.metadata.refresh.interval.ms">3600000</prop> <prop key="message.send.max.retries">5</prop> <prop key="send.buffer.bytes">5242880</prop> </props> </property> </bean> <bean id="stringSerializer" class="org.apache.kafka.common.serialization.StringSerializer"/> <int-kafka:producer-context id="kafkaProducerContext" producer-properties="producerProperties"> <int-kafka:producer-configurations> <int-kafka:producer-configuration broker-list="${kafka.brokerList}" key-class-type="java.lang.String" key-serializer="stringSerializer" value-class-type="java.lang.String" value-serializer="stringSerializer" topic="${kafka.topic.asyncNotifyProvoss}"/> <int-kafka:producer-configuration broker-list="${kafka.brokerList}" key-class-type="java.lang.String" key-serializer="stringSerializer" value-class-type="java.lang.String" value-serializer="stringSerializer" topic="${kafka.topic.asyncCutPayment}"/> </int-kafka:producer-configurations> </int-kafka:producer-context></beans>
<?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:int="http://www.springframework.org/schema/integration" xmlns:int-kafka="http://www.springframework.org/schema/integration/kafka" xsi:schemaLocation=" http://www.springframework.org/schema/integration/kafka http://www.springframework.org/schema/integration/kafka/spring-integration-kafka.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <int:channel id="inputFromKafka"/> <int-kafka:zookeeper-connect id="zookeeperConnect" zk-connect="${kafka.zookeeper.url}" zk-connection-timeout="6000" zk-session-timeout="6000" zk-sync-time="2000"/> <int-kafka:inbound-channel-adapter id="kafkaInboundChannelAdapter" kafka-consumer-context-ref="consumerContext" auto-startup="true" channel="inputFromKafka"> <int:poller fixed-delay="1" time-unit="MILLISECONDS"/> </int-kafka:inbound-channel-adapter> <bean id="kafkaDecoder" class="org.springframework.integration.kafka.serializer.common.StringDecoder"> </bean> <bean id="consumerProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="properties"> <props> <prop key="auto.offset.reset">smallest</prop> <prop key="socket.receive.buffer.bytes">10485760</prop> <!-- 10M --> <prop key="fetch.message.max.bytes">5242880</prop> <prop key="auto.commit.interval.ms">1000</prop> </props> </property> </bean> <bean id="kafKaManager" class="com.bestpay.posprouter.manager.util.KafKaManager"></bean> <int:outbound-channel-adapter channel="inputFromKafka" ref="kafKaManager" method="processMessage"/> <int-kafka:consumer-context id="consumerContext" consumer-timeout="1000" zookeeper-connect="zookeeperConnect" consumer-properties="consumerProperties"> <int-kafka:consumer-configurations> <int-kafka:consumer-configuration group-id="default-consumer" value-decoder="kafkaDecoder" key-decoder="kafkaDecoder" max-messages="5000"> <int-kafka:topic id="${kafka.topic.asyncNotifyProvoss}" streams="4"/> </int-kafka:consumer-configuration> <int-kafka:consumer-configuration group-id="default-consumer" executor="" value-decoder="kafkaDecoder" key-decoder="kafkaDecoder" max-messages="5000"> <int-kafka:topic id="${kafka.topic.asyncCutPayment}" streams="4"/> </int-kafka:consumer-configuration> </int-kafka:consumer-configurations> </int-kafka:consumer-context></beans>
/** * * Copyright (c) 2011-2016 All Rights Reserved. */package com.bestpay.posprouter.manager.util;/** * Created by lxn on 2016/7/30. */import com.bestpay.posprouter.manager.rebateManager.ProvossSyncManager;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;import org.springframework.integration.kafka.support.KafkaHeaders;import org.springframework.integration.support.MessageBuilder;import org.springframework.messaging.Message;import org.springframework.messaging.MessageChannel;import org.springframework.stereotype.Component;import java.util.Map;/** * @author lxn * @version Id: KafKaManager.java, v 0.1 2016/7/30 12:18 lxn Exp $$ */@Slf4j@Componentpublic class KafKaManager { @Autowired @Qualifier("inputToKafka") MessageChannel channel; @Value("${kafka.topic.asyncCutPayment}") private String asyncCutPaymentTopic; @Value("${kafka.topic.asyncNotifyProvoss}") private String asyncNotifyProvossTopic; @Autowired private ProvossSyncManager provossSyncManager; public boolean send(String topic,String obj) { log.info("发送消息,topic:{},value:{}",topic,obj); Message msg = MessageBuilder.withPayload(obj)// .setHeader(KafkaHeaders.MESSAGE_KEY, key) .setHeader(KafkaHeaders.TOPIC, topic).build(); return channel.send(msg); } public void processMessage(Map<String, Map<Integer, String>> msgs) { log.info("收到消息,{}",msgs); for (Map.Entry < String,Map<Integer, String>>entry: msgs.entrySet()){ log.debug("Suchit Topic:" + entry.getKey()); if(asyncCutPaymentTopic.equals(entry.getKey())){ for (String msg : entry.getValue().values()) { log.info("Suchit Consumed Message: " + msg); //TODO 异步扣款 } }else if(asyncNotifyProvossTopic.equals(entry.getKey())){ for (String msg : entry.getValue().values()) { log.info("Suchit Consumed Message: " + msg); provossSyncManager.onMessage(msg); } } } }}
0 0
- kafka 生产者消费者配置
- kafka消费者和生产者配置
- Spring集成Kafka,配置生产者消费者
- kafka生产者消费者
- kafka C++ 生产者 消费者
- Kafka消费者生产者实例
- kafka生产者消费者
- kafka 生产者消费者 api接口
- kafka生产者、消费者java示例
- kafka 生产者和消费者实例
- Kafka的生产者与消费者
- KAFKA生产者消费者API学习
- kafka java 生产者消费者demo
- kafka生产者消费者简单实例
- Kafka消费者JavaAPI Kafka生产者JavaAPI
- Kafka集群安装部署、Kafka生产者、Kafka消费者
- kafka的生产者和消费者的理解
- 使用Java写kafka生产者消费者
- Ajax与Json
- Linux系统安装jdk——rpm版
- 删除头尾空格字符串API !
- 结构体,共用体,枚举体,typedef
- 验证.php
- kafka 生产者消费者配置
- android回调机制
- Java技术----多态的实现原理
- list.php
- 有点难度的搜索
- cocos creator的自定义事件
- android 开发中不可不知的技巧
- codeforces#290 B&&510 B Fox And Two Dots(简单dfs)
- UOJ#228 基础数据结构练习题