当前位置:首页 > 开发 > 编程语言 > 消息中间件 > 正文

RabbitMq项目应用的一些记录

发表于: 2015-06-14   作者:aa4892   来源:转载   浏览:
摘要: 在项目中使用到了RabbitMQ,简单的记录一下使用过程中的一些问题。   1、项目是一些医院之间Server进行文件的转发,医院转发关系在云端Server上维护,需求中有一个问题,医院的关系是可以变化的。所以RabbitMQ与Spring的整合就不能使用配置文件固定下来。这部分单独提取出来,在服务器启动的时候先请求云端Server,获取到转发关系,然后初始化MQ。  

在项目中使用到了RabbitMQ,简单的记录一下使用过程中的一些问题。

 

1、项目是一些医院之间Server进行文件的转发,医院转发关系在云端Server上维护,需求中有一个问题,医院的关系是可以变化的。所以RabbitMQ与Spring的整合就不能使用配置文件固定下来。这部分单独提取出来,在服务器启动的时候先请求云端Server,获取到转发关系,然后初始化MQ。

 

2、RabbitMQ的消息Exchange模式是direct模式,在文档中看到可以使用多重绑定,查了好久,最后在RabbitMQ的DEMO中找到了Direct模式使用多重绑定的例子。

每个医院使用自己的uuid创建订阅队列,然后将发送文件到本医院的其他医院uuid作为routekey,将队列、routekey绑定到Exchange中。医院发送消息时,将自己的uuid作为routekey发送到MQ,这样其他绑定此routekey的医院会收到消息。

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("45.56.82.102");
factory.setUsername("guest");
factory.setPassword("guest");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();

channel.exchangeDeclare(EXCHANGE_NAME, "direct",true);
String queueName = "Hello";
        
String[] argvs = new String[3];
argvs[0] = "info";
argvs[1] = "error";
argvs[2] = "warning";

channel.queueDeclare(queueName, true, false, false, null);
        
for(String severity : argvs){
   channel.queueBind(queueName, EXCHANGE_NAME, severity);
}

System.out.println(" [*] Waiting for messages. To exit press CTRL+C");

QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(queueName, true, consumer);

while (true) {
     QueueingConsumer.Delivery delivery = consumer.nextDelivery();
     String message = new String(delivery.getBody());
     String routingKey = delivery.getEnvelope().getRoutingKey();

     System.out.println(" [x] Received '" + routingKey + "':'" + message + "'");
}

 

RabbitMq项目应用的一些记录

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
(转:原文链接http://www.cnblogs.com/yangecnu/p/Introduce-RabbitMQ.html) 在企业应用系统领域,
MQ特点编辑 MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议
一. RabbitMQ安装 (一)官方网站:[url]http://www.rabbitmq.com, [/url]了解一个技术的最好方式是
[项目过程中所遇到的各种问题记录]ORM篇——使用NHibernate配置对象实体的一些小问题 继续问题记录
安装 在安装的时候,我们可以去官网http://www.rabbitmq.com/download.html下载二进制版本和源码版
Configuration default built-in settings+3种配置方法: 修改配置后续重启生效,配置文件可以creat
Configuration default built-in settings+3种配置方法: 修改配置后续重启生效,配置文件可以creat
背景 前段时间做了个项目,主要优化一个产品页面。整个优化过程中,针对velocity的分析过程占了比较
背景 前段时间做了个项目,主要优化一个产品页面。整个优化过程中,针对velocity的分析过程占了比较
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号