spring整合kafka实例
来源:互联网 发布:directx游戏编程入门 编辑:程序博客网 时间:2024/06/09 20:44
1.依赖jar
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zrj.points</groupId><artifactId>kafka-consumer</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>kafka-consumer</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.3.3.RELEASE</spring.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>1.1.0.RELEASE</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-1.2-api</artifactId><version>2.2</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.2</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.2</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-jcl</artifactId><version>2.2</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.2</version></dependency></dependencies><build><finalName>kafka-consmer</finalName><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.eclipse.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>9.2.11.v20150529</version><configuration><jvmArgs>-Xms456m -Xmx456m -XX:MaxNewSize=456m-XX:MaxPermSize=1024m</jvmArgs><scanIntervalSeconds>10</scanIntervalSeconds><webApp><contextPath>/</contextPath></webApp><httpConnector><port>9090</port></httpConnector></configuration></plugin></plugins></build></project>
2.生产者
package com.zrj.points;import java.util.Properties;import org.apache.kafka.clients.producer.KafkaProducer;import org.apache.kafka.clients.producer.Producer;import org.apache.kafka.clients.producer.ProducerRecord;public class PointsKafkaProducerSimulator {public static void main(String[] args) { Properties props = new Properties(); props.put("bootstrap.servers", "172.28.40.26:9092"); props.put("acks", "all"); props.put("retries", 0); props.put("batch.size", 16384); props.put("linger.ms", 1); props.put("buffer.memory", 33554432); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); Producer<String, String> producer = new KafkaProducer<>(props); for(int i = 0; i < 100; i++){ System.out.println("-----" + i); producer.send(new ProducerRecord<String, String>("test", Integer.toString(i), "Msg:"+Integer.toString(i))); } producer.close(); }}
3.消费者
package com.zrj.points;import java.util.Arrays;import java.util.Properties;import org.apache.commons.logging.Log;import org.apache.kafka.clients.consumer.ConsumerRecord;import org.apache.kafka.clients.consumer.ConsumerRecords;import org.apache.kafka.clients.consumer.KafkaConsumer;import org.apache.logging.log4j.LogManager;import org.springframework.kafka.listener.MessageListener;/** * 业务日志消费者监听器 * @author qianll * */public class PointsKafkaConsumerListener implements MessageListener<String, String>{ public void init(){ Log log = LogHelper.getLog(LogTypeEnum.PAY); LogManager.getLogger("points").info("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); System.out.println("SSSSSSSSSSSSSSSSSinit--------------"); } @Overridepublic void onMessage(ConsumerRecord<String, String> record) {System.out.println("XXXXXXXXXXXX"+record.key()+" : "+record.value());} public static void main(String[] args) { Properties props = new Properties(); props.put("bootstrap.servers", "172.28.40.26:9092"); props.put("group.id", "test"); props.put("enable.auto.commit", "true"); props.put("auto.commit.interval.ms", "1000"); props.put("session.timeout.ms", "30000"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Arrays.asList("test")); while (true) { System.out.println("-----"); ConsumerRecords<String, String> records = consumer.poll(9); for (ConsumerRecord<String, String> record : records) System.out.printf("XXXXXXXXXXXX"+"offset = %d, key = %s, value = %s", record.offset(), record.key(), record.value()); } }}
4.spring bean配置
<?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:redis="http://www.springframework.org/schema/redis"xmlns:batch="http://www.springframework.org/schema/batch" xmlns:cache="http://www.springframework.org/schema/cache"xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch.xsd http://www.springframework.org/schema/redis http://www.springframework.org/schema/redis/spring-redis.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 定义consumer的参数 --> <bean id="consumerProperties" class="java.util.HashMap"> <constructor-arg> <map> <entry key="bootstrap.servers" value="${bootstrap.servers}"/> <entry key="group.id" value="0"/> <entry key="enable.auto.commit" value="true"/> <entry key="auto.commit.interval.ms" value="1000"/> <entry key="session.timeout.ms" value="15000"/> <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> <bean id="consumerFactory" class="org.springframework.kafka.core.DefaultKafkaConsumerFactory"> <constructor-arg ref="consumerProperties"/> </bean> <!-- 实际执行消息消费的类 --> <bean id="messageListener" class="com.zrj.points.PointsKafkaConsumerListener" init-method="init"/> <!-- 消费者容器配置信息 --> <bean id="containerProperties" class="org.springframework.kafka.listener.config.ContainerProperties"> <constructor-arg name="topics" value="test"/> <property name="messageListener" ref="messageListener"/> </bean> <bean id="messageListenerContainer" class="org.springframework.kafka.listener.KafkaMessageListenerContainer" init-method="doStart"> <constructor-arg ref="consumerFactory"/> <constructor-arg ref="containerProperties"/> <property name="autoStartup" value="true" /> </bean></beans>
阅读全文
0 0
- spring整合kafka实例
- Flume-Kafka-Storm 整合实例
- storm+kafka+jdbc整合实例
- storm+kafka+jdbc整合实例
- Spark Streaming + Kafka整合实例
- Flume + Kafka整合入门实例
- kafka spring 实例
- Spring Cloud Bus整合Kafka
- Ehcache整合Spring实例
- Spring 整合Mybatis实例
- Axis2+spring整合实例
- Axis2+spring整合实例
- hessian spring实例整合
- Spring ActiveMQ整合实例
- Spring-----Spring整合Struts2实例
- ibatis和Spring整合实例
- struts2整合 spring应用实例
- struts2整合 spring应用实例
- tomcat部署项目,如何去掉项目名
- 怎么快速集成 Android 热修复 Tinker Gradle Plugin
- yii入口文件笔记
- JAVA回调机制(CallBack) 趣解
- 恭喜安普诺获信息安全应急处理服务资质,企业应急响应交给我们更放心
- spring整合kafka实例
- 关于java.lang.SecurityException: class "org.bouncycastle.util.Strings"'s signer.....报错信息的解决方法
- Android Studio 配置Kotlin
- DELL EqualLogic PS存储硬盘故障数据恢复
- 去除导航栏下方的横线
- 碰撞检测
- C++拷贝构造函数详解
- 离散题目11
- Sleep函数的作用