A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

SpringBoot整合RabbitMQ(一)快速入门

RabbitMQ介绍  RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。1. Direct Exchange
  direct 类型的行为是"先匹配, 再投送". 即在绑定时设定一个 routingkey, 消息的routingkey 匹配时, 才会被交换器投送到绑定的队列中去.是RabbitMQ默认的交换机模式,也是最简单的模式,根据key全文匹配去寻找队列。
[Java] 纯文本查看 复制代码
public static final String QUEUE="queue";  
@Bean 
   public Queue queue()
{             
return new Queue(QUEUE,true); 
  }

[Java] 纯文本查看 复制代码
	@Service
	@Slf4j
	public class MQReceiver {
	
	    //监听的queue
	    @RabbitListener(queues = MQConfig.QUEUE)
7.	    public void receive(String msg){
	        log.info("receive msg "+msg);
	    }
	}


[Java] 纯文本查看 复制代码
@Service
@Slf4j
public class MQSender {

    @Autowired
    AmqpTemplate amqpTemplate;

    public void send(Object message){
        String msg = (String) message;
        log.info("send msg"+message);
        amqpTemplate.convertAndSend(MQConfig.QUEUE,msg);
    }
}



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马