189 8069 5689

spring中RabbitMQ如何使用-创新互联

spring中RabbitMQ如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都创新互联公司于2013年成立,先为昌吉等服务建站,昌吉等地企业,进行企业商务咨询服务。为昌吉企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

常见的消息中间件产品:

(1)ActiveMQ

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。

(2)RabbitMQ

AMQP协议的领导实现,支持多种场景。淘宝的MySQL集群内部有使用它进行通讯,OpenStack开源云平台的通信组件,最先在金融行业得到运用。我们在本次课程中介绍 RabbitMQ的使用。

(3)ZeroMQ

史上最快的消息队列系统

(4)Kafka

Apache下的一个子项目 。特点:高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统。适合处理海量数据。

(5)RocketMQ 阿里巴巴

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)。

消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。

Spring-amqp是对AMQP协议的抽象实现,而spring-rabbit 是对协议的具体实现,也是目前的实现。底层使用的就是RabbitMQ。

已经配置好了ssm的开发环境

1.导入依赖

     com.rabbitmq    amqp-client    5.5.3        org.springframework.amqp    spring-rabbit    2.1.3.RELEASE        com.fasterxml.jackson.core    jackson-databind    2.9.5  

2.编写生产者

2.1配置文件

         

2.2 发送方代码

这里是往RabbitMQ队列中放入任务,让消费者去取

package cn.test.rabbitmq.spring;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class MqSender {  @Autowired  private AmqpTemplate amqpTemplate;  public void sendMessage(){    //根据key发送到对应的队列    amqpTemplate.convertAndSend("user.insert","spring整合RabbitMQ消息");    System.out.println("发送成功........");  }}

2.3 测试代码

package cn.test.rabbitmq.spring;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.junit4.SpringRunner;import java.util.HashMap;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext-mq-send.xml")public class MqSendDemo {  @Autowired  private MqSender mqSender;  @Test  public void test(){    //根据key发送到对应的队列    mqSender.sendMessage();  }}

3.编写消费者

3.1 配置文件

                         

3.2 监听代码

package cn.test.rabbitmq.spring;import org.springframework.amqp.core.Message;import org.springframework.amqp.core.MessageListener;import org.springframework.stereotype.Component;import java.io.UnsupportedEncodingException;public class MqListener implements MessageListener {  public void onMessage(Message message) {    try {      System.out.println(message.getBody());      String ms = new String(message.getBody(), "UTF-8");      System.out.println(ms);    } catch (Exception e) {      e.printStackTrace();    }  }}

3.3 测试代码

package cn.itcast.rabbitmq.spring;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext-mq-receive.xml")public class MqReceiveDemo {  @Test  public void test(){   //等待队列中放入任务,如果有任务,立即消费任务    while (true){    }  }}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。


网站题目:spring中RabbitMQ如何使用-创新互联
分享网址:http://jkwzsj.com/article/hjicj.html

其他资讯