电子商务社交平台源码请加企鹅求求:三五三六二四七二五九。

这篇文章带你了解怎么整合RabbitMQ服务器,并且通过它怎么去发送和接收消息。我将构建一个springboot工程,通过RabbitTemplate去通过MessageListenerAdapter去订阅一个POJO类型的消息。

准备工作
15min
IDEA
maven 3.0
在开始构建项目之前,机器需要安装rabbitmq,你可以去官网下载,http://www.rabbitmq.com/download.html ,如果你是用的Mac(程序员都应该用mac吧),你可以这样下载:

brew install rabbitmq复制代码

安装完成后开启服务器:

rabbitmq-server复制代码

开启服务器成功,你可以看到以下信息:

      RabbitMQ 3.1.3. Copyright (C) 2007-2013 VMware, Inc.
##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
##  ##
##########  Logs: /usr/local/var/log/rabbitmq/rabbit@localhost.log
######  ##        /usr/local/var/log/rabbitmq/rabbit@localhost-sasl.log
##########Starting broker... completed with 6 plugins.复制代码

构建工程
构架一个SpringBoot工程,其pom文件依赖加上spring-boot-starter-amqp的起步依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>复制代码

创建消息接收者
在任何的消息队列程序中,你需要创建一个消息接收者,用于响应发送的消息。

@Component
public class Receiver {private CountDownLatch latch = new CountDownLatch(1);public void receiveMessage(String message) {System.out.println("Received <" + message + ">");latch.countDown();}public CountDownLatch getLatch() {return latch;}}复制代码

消息接收者是一个简单的POJO类,它定义了一个方法去接收消息,当你注册它去接收消息,你可以给它取任何的名字。其中,它有CountDownLatch这样的一个类,它是用于告诉发送者消息已经收到了,你不需要在应用程序中具体实现它,只需要latch.countDown()就行了。

创建消息监听,并发送一条消息
在spring程序中,RabbitTemplate提供了发送消息和接收消息的所有方法。你只需简单的配置下就行了:

需要一个消息监听容器
声明一个quene,一个exchange,并且绑定它们
一个组件去发送消息
代码清单如下:

package com.forezp;import com.forezp.message.Receiver;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;@SpringBootApplication
public class SpringbootRabbitmqApplication {final static String queueName = "spring-boot";@BeanQueue queue() {return new Queue(queueName, false);}@BeanTopicExchange exchange() {return new TopicExchange("spring-boot-exchange");}@BeanBinding binding(Queue queue, TopicExchange exchange) {return BindingBuilder.bind(queue).to(exchange).with(queueName);}@BeanSimpleMessageListenerContainer container(ConnectionFactory connectionFactory,MessageListenerAdapter listenerAdapter) {SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();container.setConnectionFactory(connectionFactory);container.setQueueNames(queueName);container.setMessageListener(listenerAdapter);return container;}@BeanMessageListenerAdapter listenerAdapter(Receiver receiver) {return new MessageListenerAdapter(receiver, "receiveMessage");}public static void main(String[] args) {SpringApplication.run(SpringbootRabbitmqApplication.class, args);}
}复制代码

创建一个测试方法:

@Component
public class Runner implements CommandLineRunner {private final RabbitTemplate rabbitTemplate;private final Receiver receiver;private final ConfigurableApplicationContext context;public Runner(Receiver receiver, RabbitTemplate rabbitTemplate,ConfigurableApplicationContext context) {this.receiver = receiver;this.rabbitTemplate = rabbitTemplate;this.context = context;}@Overridepublic void run(String... args) throws Exception {System.out.println("Sending message...");rabbitTemplate.convertAndSend(Application.queueName, "Hello from RabbitMQ!");receiver.getLatch().await(10000, TimeUnit.MILLISECONDS);context.close();}}复制代码

启动程序,你会发现控制台打印:
电子商务社交平台源码请加企鹅求求:三五三六二四七二五九

转载于:https://juejin.im/post/5cff25c4e51d4577790c1c63

java springcloud版b2b2c社交电商spring cloud分布式微服务(十五)Springboot整合RabbitMQ...相关推荐

  1. (十六)java springcloud版b2b2c社交电商spring cloud分布式微服务-使用spring cloud Bus刷新配置...

    b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.我们使用spring cloud分布式微服务云架构做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c的业务服 ...

  2. java springcloud版b2b2c社交电商spring cloud分布式微服务 (七)高可用的分布式配置中心(Spring Cloud Config)...

    Springcloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取 ...

  3. java springcloud版b2b2c社交电商spring cloud分布式微服务-docker-feign(四)

    简介 Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六.上一节,我们讨论了怎么通过,restTemlate调用cloud的生产者,实现起 ...

  4. java springcloud版b2b2c社交电商spring cloud分布式微服务(十三)断路器聚合监控(Hystrix Turbine)...

    Spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command.当我们有很多个 ...

  5. java springcloud版b2b2c社交电商spring cloud分布式微服务 (四) 断路器(Hystrix)

    一.断路器简介 电子商务社交平台源码请加企鹅求求:一零三八七七四六二六 Netflix开源了Hystrix组件,实现了断路器模式,SpringCloud对这一组件进行了整合. 在微服务架构中,一个请求 ...

  6. java版b2b2c社交电商spring cloud分布式微服务(五)springboot整合 beatlsql

    电子商务社交平台源码请加企鹅求求:三五三六二四七二五九.BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需 ...

  7. java spring cloud版b2b2c社交电商spring cloud分布式微服务:分布式配置中心

    JAVASpring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六.Spring Cloud Config是Spring Cloud团队创建的一个 ...

  8. java版b2b2c社交电商spring cloud分布式微服务-服务提供与调用

    java版b2b2c社交电商spring cloud分布式微服务源码请加企鹅求求:一零三八七七四六二六.上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册 ...

  9. java spring cloud版b2b2c社交电商spring cloud分布式微服务-docker-feign-hystrix(六)

    简介 springcloud电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.上一节我们讨论feign的配置,这节我们讨论一下,feign+hystrix调用生产者时,进行容错处理. 一.创建模 ...

最新文章

  1. python读取文件名存到list_python读取文件名称生成list的方法
  2. [LeetCode 001] Two Sum
  3. WebSphere MQ----通道
  4. hibernate的HQL查询语言总结
  5. (仿头条APP项目)7.首页标签页完善和微头条页面设计实现
  6. Acdream1157---Segments (CDQ分治)
  7. PrincetonAlgorithm I - Assignment2 Deques and Randomized Queues
  8. RTX5 | 消息队列01 - 创建消息队列
  9. git 修改已提交的 commit
  10. [sublime] sublime 实现Markdown编辑器
  11. 爬虫文件存储-2:MongoDB
  12. 浅析计算机应用管理及前景,论计算机应用技术的现状及前景
  13. java 实体类重写排序,对自定义对象进行排序(C++/Java) | 学步园
  14. 在鱼池终于挖到0.01的Zcash(ZEC)了,目前正在打款
  15. “win+PrtSc”图片没有保存到图片文件夹中的问题
  16. 屏蔽csdn右下角广告插件
  17. 计算机的工作原理(冯诺依曼体系)
  18. 自定义流程比较全的表结构
  19. 免费获得minecraft账号,快来试试!!!
  20. 3DMAX 9 角色建模3 uv展开

热门文章

  1. IOC 容器中那些鲜为人知的细节(关于 FactoryBean 和 BeanFactory)
  2. java GoF 的 23 种设计模式的分类和功能
  3. 1080. MOOC期终成绩 (25)-PAT乙级真题
  4. Xcode误删Images.xcassets文件夹的恢复办法(Assets.xcassets)
  5. xcode 中不小心删除 stroryboard 的恢复办法
  6. 车rc陀螺仪测试软件,利用加速度计和陀螺仪测量车辆运动
  7. zabbix监控哪些东西_监控系统选型,一篇全搞定
  8. Unsupported protocol: t3 异常的处理
  9. SaaS:新智能背景下重构各个领域的生态系统
  10. 基于Raspbian(树莓派)搭建web安全练习环境(一)