spring-boot(十三)messaging[基于kafka实现消息队列]

分类:spring-boot
阅读:618
作者:majingjing
发布:2017-05-27 10:09

spring-boot对各种插件的支持是非常方便的,对我们的程序开发带来了非常大的便利. 之前整合各种框架,配置文件都得弄老半天,现在只需要引入插件的支持,就可以实现即插即用的效果.

鉴于网上对message的文章已经很多了,这里我就选取kafka来讲述下.

首先我的一贯主张是想要了解一个框架或插件,最直接的方式就是去看官方文档.这样会避免我们走很多弯路. 微信截图_20170527100900.png

  1. 在spring-boot的官方文档中看到kafka的插件依赖,引入到pom文件中 微信截图_20170527100539.png

  2. 在配置文件中增加参数配置 微信截图_20170527101815.png

  3. 编写消息发送代码 微信截图_20170527101947.png

  4. 编写消息接收代码 微信截图_20170527101955.png

  5. 更多关于kafka的配置请参考 微信截图_20170527102407.png


下面我就参照官方的例子来搭建环境 由于之前的spring-boot文章是采用1.4.3稳定版本进行编写的,现在官方的稳定版本为1.5.3,故本示例切换到当前的稳定版本进行编写. 微信截图_20170527102151.png

本示例代码在my-springboot-1的基础上进行编写

  1. 引入pom的依赖 微信截图_20170527103219.png

  2. 增加kafka的简单配置 微信截图_20170527103315.png

  3. 编写发送消息代码 微信截图_20170527103801.png

  4. 编写接收消息代码

微信截图_20170527103818.png

  1. 在controller调用 微信截图_20170527112514.png

  2. 启动项目,在浏览器输入 http://127.0.0.1:666/kafka/send?topic=test&msg=%E4%B8%96%E7%95%8C%E4%BD%A0%E5%A5%BD 微信截图_20170527112655.png

  3. 进行消息的多终端接收 将项目 my-springboot-13 拷贝一份 为 my-springboot-13-2 修改配置

(注意修改 spring.kafka.consumer.group-id=myGroup2 这个以后再讲解)

微信截图_20170527112840.png 再启动项目 my-springboot-13-2

重复第6步,查看控制台两个项目都收到了消息 微信截图_20170527113042.png 微信截图_20170527113059.png


项目源代码见 my-springboot-13 和 my-springboot-13-2