撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.taian</groupId><artifactId>taian-File2DB</artifactId><version>1.0-SNAPSHOT</version><relativePath>../taianFile2DB</relativePath></parent><groupId>org.taian</groupId><artifactId>file2DB-service</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.0.0.RELEASE</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.25</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.0.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.3</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build></project>

spring-producer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 定义producer的参数 --><bean id="producerProperties" class="java.util.HashMap"><constructor-arg><map><entry key="bootstrap.servers" value="172.16.247.100:9092" /><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="test1" /></bean>
</beans>

KafkaProducerTest.java

package org.taian;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath*:spring/spring-producer.xml")
public class KafkaProducerTest {@Autowiredprivate KafkaTemplate<Integer, String> kafkaTemplate;@Testpublic void testTemplateSend() {kafkaTemplate.send("test1", "www.aaaaaa.com");}
}

spring-consumer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 定义consumer的参数 --><bean id="consumerProperties" class="java.util.HashMap"><constructor-arg><map><entry key="bootstrap.servers" value="172.16.247.100:9092" /><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.IntegerDeserializer" /><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="messageListernerConsumerService" class="org.taian.KafkaConsumerListener" /><!-- 消费者容器配置信息 --><bean id="containerProperties" class="org.springframework.kafka.listener.config.ContainerProperties"><constructor-arg value="test1" /><property name="messageListener" ref="messageListernerConsumerService" /></bean><!-- 创建kafkatemplate bean,使用的时候,只需要注入这个bean,即可使用template的send消息方法 --><bean id="messageListenerContainer" class="org.springframework.kafka.listener.KafkaMessageListenerContainer" init-method="doStart"><constructor-arg ref="consumerFactory" /><constructor-arg ref="containerProperties" /></bean>
</beans>

kafkaConsumerTest.java

package org.taian;import org.springframework.beans.BeansException;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class KafkaConsumerTest {public static void main(String[] args) {try {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-consumer.xml");context.start();} catch (BeansException e) {e.printStackTrace();}synchronized (KafkaConsumerTest.class) {while (true) {try {KafkaConsumerTest.class.wait();} catch (InterruptedException e) {e.printStackTrace();}}}}
}

KafkaConsumerListener.java

package org.taian;import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.listener.MessageListener;public class KafkaConsumerListener implements MessageListener<Integer, String> {@Overridepublic void onMessage(ConsumerRecord<Integer, String> record) {System.out.println(record);}
}

Spring5.0 Kafka2.11相关推荐

  1. Spring的前世今生: Spring5.0已经出来了,Springboot已经风靡全球, Spring怎么一步一步走过来的, 让我们看看其前世今生~~~

    Spring5.0已经出来了,Springboot已经风靡全球, Spring怎么一步一步走过来的, 让我们看看其前世今生--- 这是关于什么是Spring Framework,但它是如何开发的?嗯, ...

  2. 编译Spring5.0.x源码之一路坎坷,你经历过绝望吗?

    本文来说说在编译spring-springframework-5.0.x的路上,小编我到底经历了什么? 如果正在看文章你,恰好也想要研究spring源码,那么请先做好准备再动手,不然迎来的问题如滔滔江 ...

  3. SpringMVC之Controller查找(Spring4.0.3/Spring5.0.4源码进化对比)

    0 摘要 本文从源码层面简单讲解SpringMVC的处理器映射环节,也就是查找Controller详细过程 1 SpringMVC请求流程 Controller查找在上图中对应的步骤1至2的过程 Sp ...

  4. ReactOS 0.4.11 发布,Windows 系统的开源替代方案

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   ReactOS 团队发布了 ReactOS 0.4.11 版本,他们表示该版本已完成大量内核方面的工作,这有助于提 ...

  5. Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko

    Trident (又称为MSHTML),是微软的窗口操作系统(Windows)搭载的网页浏览器-Internet Explorer的排版引擎的名称. 它的第一个版本随着1997年10月Internet ...

  6. spring5.0.2中文官网文档pdf

    下载地址:网盘下载 Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用. 本参考指南提供了有关spring5.0.2的详 ...

  7. PEACHPIE 0.9.11 版本发布,可以上生产了

    PeachPie在官方博客(https://www.peachpie.io/2018/10/release-0911-visual-studio.html)发布了PeachPie的0.9.11版本 - ...

  8. django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11

    搭建Django2.0+Python3+MySQL5时同步数据库时报错: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 ...

  9. android preferenceactivity 源码,PreferenceActivity PreferenceScreen (3.0/API 11 以前)

    Android提供了一个XML驱动的框架,用于为应用程序创建系统样式的PreferenceScreen. (3.0/API 11 以前)是这样使用的 看代码: mypreference.xml and ...

最新文章

  1. 第四期 SA 分析师认证名单正式公布!
  2. 2014年科目三智能化考试十大必知事项
  3. 迷惑!博士生发Nature造假,怕被调查扔掉实验室万元电脑
  4. (王道408考研操作系统)第三章内存管理-第二节1:虚拟内存管理基本概念
  5. Chrome查看Android的systrace抓取的log
  6. cesium加载 gltf模型
  7. [13年迁移]公司服务器坏了,无聊按面向对象的方法分析下javascript的空值和假值...
  8. Google Play在GDC大会上发布全新工具及游戏
  9. 两个WebUserControl之间传值
  10. 游戏UI-头像框制作
  11. pli测试50题题库_人才测评题库60题测试(附答案).doc
  12. Android性能优化之利用LeakCanary检测内存泄漏及解决办法
  13. myeclipse10破解找不到common文件夹的问题
  14. 蚂蚁金服5面,总结了49个面试题,遇到的面试官都是P7级别以上
  15. linux怎么进入系统安装界面,Linux图形化界面安装全过程
  16. 【大话设计模式】第0章 面向对象基础
  17. 阿里高频面试题:如何快速判断元素是不是在集合里?
  18. AD629测量负载电流的电路原理详解——精妙绝伦的电路设计
  19. AndroidManifest.xml中常用属性及含义
  20. 输出1-100以内的所有质数

热门文章

  1. SEO--我们是不是走错了路?
  2. 经典的JAVA面试题
  3. python实现redis分布式锁
  4. java assert可以检查exception吗_检查胃病一定要做胃镜吗?这五种检查也可以筛查胃病疾病...
  5. 贵州师范学院数学与计算机科学,贵州师范学院数学与计算机科学学院
  6. python实现分布式_Python如何快速实现分布式任务
  7. dockerfile安装yum_Docker镜像-基于DockerFile制作yum版nginx镜像
  8. 计算机科学与技术属于教育技术学么,计算机教育-计算机教育与教育技术学有什么不同吗?我学的专业是计算机教育,我想 爱问知识人...
  9. php namespace原理作用,php 命名空间(namespace)原理与用法实例小结
  10. php satellite_object_to_string,php object如何转string