• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SpringBoot与rabbitmq的结合的示例

springboot 搞代码 4年前 (2022-01-05) 20次浏览 已收录 0个评论

这篇文章主要介绍了SpringBoot与rabbitmq的结合的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

消息中间件对于我们系统之间的解耦合,消峰等都有极大的帮助。spring boot 也集成了此部分的内容,集成最为容易的是rabbitmq。今天我们就以rabbitmq为例说明。

老规矩,先看下pom

  org.springframework.bootspring-boot-starter org.springframework.bootspring-boot-starter-web org.springframework.bootspring-boot-starter-amqp org.projectlomboklombok

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制,spring-boot-starter-amqp引入的就是rabbitmq。有个前提,你的机子上要首先先安装rabbitmq的server,然后执行 rabbitmq-server server就启动了。启动后,我们就可以配置我们的客户端程序了。首先看下我们的配置文件

 spring.application.name: spirng-boot-rabbitmq spring.rabbitmq.host: 127.0.0.1 spring.rabbitmq.port: 5672 spring.rabbitmq.username: guest spring.rabbitmq.password: guest 

配置了服务器的IP,端口,用户名,密码等基础信息,保证我们能连上服务器。

增加一个Rabbitmq的配置类

 package com.shuqi; import org.springframework.amqp.core.Queue; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public cla<strong style="color:transparent">来源gaodai#ma#com搞@@代~&码*网</strong>ss RabbitConfig { @Bean public Queue Queue() { return new Queue("hello"); } } 

创建了一个名称叫做hello的队列,然后producer可以往hello的队列里放数据,consumer可以从hello的队列里消费数据。看下producer的处理程序

 package com.shuqi.controller; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @Autowired private AmqpTemplate rabbitTemplate; @RequestMapping("/hello") public String hello(@RequestParam String name){ rabbitTemplate.convertAndSend("hello","hello "+name); return "消息发送成功"; } } 

通过controller生产消息,通过AmqpTemplate发送消息。有了生产者我们看下消费者

 package com.shuqi.consumer; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component @RabbitListener(queues = "hello") @Slf4j public class HelloConsumer { @RabbitHandler public void process(String hello) { log.info("接收到的消息:message:{}",hello); } } 

@RabbitListener(queues = “hello”) 表示是一个Rabbitmq的监听器,监听的队列名称是hello,说明数据可定会过来,数据过来了,通过 @RabbitHandler 修饰的方法来处理过来的数据。打印一下。下面我们启动项目看看效果。

在浏览器中输入 http://localhost:8080/hello?name=shuqi 看到下面的结果

看下控制台输出的日志

2018-03-25 16:24:32.752 INFO 4987 — [cTaskExecutor-1] com.shuqi.consumer.HelloConsumer : 接收到的消息:message:hello shuqi

说明消息已经被consumer接收并处理掉了。大家可以把玩下。

以上就是SpringBoot与rabbitmq的结合的示例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringBoot与rabbitmq的结合的示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址