`
iccat
  • 浏览: 6746 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

rabbitmq使用说明

阅读更多
                             使用说明
1. 概述
rabbitMQ 是 AMQP 用 Erlang 实现的 MQ AMQP 主要是由金融领域的软件专家们贡献的创意,而联合了通讯和软件方面的力量,一起打造出来的规范。只要遵循 AMQP 的协议,任何一种语言都可以开发消息组件乃至中间件本身。我们之前使用的activeMQ是实现了jms接口,只能在java环境使用。我们目前的需求是java和c#互通。符合rabbitmq的使用场景。
2. 基本概念


如上图所示rabbitmq主要包括四部分组成
P代表生产者,C 代表消费者,X exchange 交换器,Q红色的表示队列
P和C都是在客户端,X和Q在服务器端。
发送接收的大概流程是,P发送消息至交换器。
C先声明一个队列,然后将队列和交换器绑定,接着接受消息。
换句话说,P和C互相不知道对方存在。

3. 使用说明
3.1 参数定义
  private static final String EXCHANGE_NAME = "test_topic";
  private static final String HOST = "localhost";
  private static final String USER_NAME = "user";
  private static final String USER_PWD = "pwd";
   3.2 定义connection和channel
            ConnectionFactory factory = new ConnectionFactory();
      factory.setHost(HOST);
      factory.setUsername(USER_NAME);
      factory.setPassword(USER_PWD);
//       factory.setVirtualHost(virtualHost);
//       factory.setPort(portNumber);
      connection = factory.newConnection();
      channel = connection.createChannel();
3.3 声明交换器,队列,并绑定
      //告诉RabbitMQ同一时间给一个消息给消费者
      channel.basicQos(1);
      //三个参数1.交换器名2.交换器类型 3.是否持久
      channel.exchangeDeclare(EXCHANGE_NAME, "topic",true);
      String queueName = "banggoutest";
      //queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments)
      //产生一个持久化,非独占,非自动删除的队列
      channel.queueDeclare(queueName, true, false, false, null);
      //绑定队列,交换器,和topickey
      //channel.queueBind(queueName, EXCHANGE_NAME, "*.error");
      //channel.queueBind(queueName, EXCHANGE_NAME, "test.warn");
      channel.queueBind(queueName, EXCHANGE_NAME, "mberp");
3.4 定义消费者
      //定义消费者
      QueueingConsumer consumer = new QueueingConsumer(channel);
      //绑定消费者和队列,并设置非自动确认,这样当消息收下后,处理出项问题的时候,msg还在对列里,不会消失。
      channel.basicConsume(queueName, false, consumer);
3.5 异步接受消息
      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 + "'");  
            //此处可以添加处理消息代码
        System.out.println("  处理完成");  
           //提交消息处理完成标记给服务器,从队列中删除服务器,并准备接受下一条
        channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false);
      }

3.6 退出程序时
      不要忘记关掉connetion以及channel,释放资源
finally {
    if(channel != null) {
            try {
            channel.close();
              }
              catch (Exception ignore) {}  
    }
      if (connection != null) {
        try {
          connection.close();
        }
        catch (Exception ignore) {}
      }
    }
  • 大小: 48.9 KB
分享到:
评论

相关推荐

    RabbitMQ开发中文文档

    RabbitMQ是一个消息服务器。从本质上讲,它接收生产者生产的消息,并发送给消费者。期间,它可以根据用户给定的规则来路由、缓存、持久化这些消息。此文为RabbitMQ的中文翻译文档

    RabbitMq使用手册

    RabbitMq 几个概念说明: * Broker:简单来说就是消息队列服务器实体。 * Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 * Queue:消息队列载体,每个消息都会被投入到一个或多个队列。 * Binding...

    rabbitmq window2008安装和使用说明配置说明

    总结来说,RabbitMQ在Windows 2008上的安装和使用涉及下载安装、配置环境变量、启动服务、配置管理、创建用户和虚拟主机、设置安全策略、使用消息队列和交换器等步骤。理解并熟练掌握这些知识,将有助于你在实际项目...

    RabbitMQ Erlang 安装包与使用说明

    这个文件可能包含RabbitMQ的配置说明、安全设置、环境变量、日志记录或其他安装过程中的注意事项。根据文件内容,可能涉及如何配置RabbitMQ的用户、虚拟主机、权限,或者如何调整服务器参数以适应不同的生产环境需求...

    rabbitMQ的api及规范说明书.doc

    【RabbitMQ API及规范说明书】 RabbitMQ是一款基于AMQP(Advanced Message Queuing Protocol)的应用,它是一个开放源代码的消息代理和队列服务器,用于在分布式系统中进行消息传递。RabbitMQ由Erlang编程语言开发...

    RabbitMQ安装说明.pdf

    RabbitMQ是一个开源的AMQP(Advanced Message Queuing Protocol)消息代理软件,用来实现消息队列的发送和接收。其本质是一个分布式系统的...对于开发者来说,理解这些知识点有助于在实际工作中更加高效地使用RabbitMQ。

    RabbitMQ安装说明文档.zip

    4. **安装RabbitMQ**: 使用操作系统的包管理器安装RabbitMQ,例如,对于Ubuntu,使用`apt-get install rabbitmq-server`命令。 5. **启动RabbitMQ**: 安装完成后,启动RabbitMQ服务器,通常使用`systemctl start ...

    RabbitMQ使用手册V1.0.0.pdf

    多机集群配置部分详细说明了如何设置和管理RabbitMQ的集群模式,这包括配置集群的主机名(hostname)、防火墙端口配置、复制.erlang.cookie文件、启动和停止RabbitMQ节点、加入集群、更改集群类型、脱离集群、设置...

    rabbitmq的接口函数说明,api参数使用说明

    ### RabbitMQ C API 接口函数说明 #### 1. amqp_new_connection(声明一个新的connection) **声明**:`amqp_connection_state_t amqp_new_connection(void);` 此函数用于创建一个新的RabbitMQ连接状态对象。它初始...

    RabbitMQ安装说明文档.pdf

    RabbitMQ是一款广泛使用的开源消息队列系统,基于AMQP(Advanced Message Queuing Protocol)协议,适用于多种编程语言。本文将详细介绍如何在Linux环境下安装RabbitMQ。 首先,安装RabbitMQ之前需要确保系统具备...

    rabbitMq安装教程以及软件

    - 打开命令行窗口,输入`rabbitmqctl status`,如果显示RabbitMQ服务器的状态信息,说明安装成功。 - 通过浏览器访问`http://localhost:15672/`,默认用户名和密码均为`guest`,登录后可以看到RabbitMQ管理界面。 ...

    rabbitmq基础+springboot集成rabbitmq

    **RabbitMQ基础** ...通过以上介绍,我们可以看到这个项目不仅涵盖了RabbitMQ的基础知识,还展示了如何在SpringBoot应用中集成和测试RabbitMQ,对于学习和实践RabbitMQ与SpringBoot的结合使用非常有帮助。

    rabbitMQ3.7.8windows安装软件包

    RabbitMQ是一款开源的...总结,安装RabbitMQ 3.7.8 on Windows涉及Erlang环境的准备、RabbitMQ服务的安装与配置,以及基本的管理和使用知识。正确配置和使用RabbitMQ,能有效提升分布式系统中的消息通信效率和可靠性。

    RabbitMQ安装说明以及安装包-Linux.rar

    以上就是RabbitMQ在Linux上的安装过程,结合提供的Markdown格式文档`RabbitMQ安装说明文档.md`和图片,可以更直观地了解每个步骤。如有任何问题,可查阅RabbitMQ的官方文档或社区资源以获取更多帮助。

    安装rabbitmq说明1

    这只是 RabbitMQ 的基本概念和安装过程,实际使用时还需要考虑更多的高级特性,如交换机类型、队列绑定策略、消息确认机制、集群和高可用性等。对于更深入的学习,可以参考鸿洋大神的 RabbitMQ 博客系列或其他相关的...

    RabbitMQ3.9.15安装包及安装文档

    7. **安装文档**:"RabbitMQ安装说明.pdf"提供了详细的安装步骤和故障排查指南,包括如何解决常见的问题,如依赖冲突、网络问题、认证错误等。仔细阅读和遵循文档是确保成功安装的关键。 8. **日志与监控**:了解...

    RabbitMQ说明文档

    这个版本的文档包含了Javadoc,可以帮助开发者了解如何使用Java API来创建生产者、消费者、连接、通道等,并进行消息的发送和接收。 ### 7. 高可用性与集群 为了提高RabbitMQ的可用性和容错性,可以将其部署为集群...

    RabbitMQ与SpringMVC集成

    在提供的`spring.amqp.stocks.rar`文件中,可能包含了一个示例应用,展示了如何在SpringMVC项目中配置和使用RabbitMQ进行股票数据的发布和订阅。用户可以通过解压文件,查看源代码和文档(如`安装说明.docx`),了解...

    rabbitmq使用环境【安装包、Erlang环境】

    在IT行业中,RabbitMQ是一个广泛使用的开源消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,用于在分布式系统中高效处理和路由消息。要使用RabbitMQ,首先需要确保你的环境已经正确...

Global site tag (gtag.js) - Google Analytics