使用说明
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 几个概念说明: * Broker:简单来说就是消息队列服务器实体。 * Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 * Queue:消息队列载体,每个消息都会被投入到一个或多个队列。 * Binding...
总结来说,RabbitMQ在Windows 2008上的安装和使用涉及下载安装、配置环境变量、启动服务、配置管理、创建用户和虚拟主机、设置安全策略、使用消息队列和交换器等步骤。理解并熟练掌握这些知识,将有助于你在实际项目...
这个文件可能包含RabbitMQ的配置说明、安全设置、环境变量、日志记录或其他安装过程中的注意事项。根据文件内容,可能涉及如何配置RabbitMQ的用户、虚拟主机、权限,或者如何调整服务器参数以适应不同的生产环境需求...
RabbitMQ是一个开源的AMQP(Advanced Message Queuing Protocol)消息代理软件,用来实现消息队列的发送和接收。其本质是一个分布式系统的...对于开发者来说,理解这些知识点有助于在实际工作中更加高效地使用RabbitMQ。
【RabbitMQ API及规范说明书】 RabbitMQ是一款基于AMQP(Advanced Message Queuing Protocol)的应用,它是一个开放源代码的消息代理和队列服务器,用于在分布式系统中进行消息传递。RabbitMQ由Erlang编程语言开发...
4. **安装RabbitMQ**: 使用操作系统的包管理器安装RabbitMQ,例如,对于Ubuntu,使用`apt-get install rabbitmq-server`命令。 5. **启动RabbitMQ**: 安装完成后,启动RabbitMQ服务器,通常使用`systemctl start ...
多机集群配置部分详细说明了如何设置和管理RabbitMQ的集群模式,这包括配置集群的主机名(hostname)、防火墙端口配置、复制.erlang.cookie文件、启动和停止RabbitMQ节点、加入集群、更改集群类型、脱离集群、设置...
### RabbitMQ C API 接口函数说明 #### 1. amqp_new_connection(声明一个新的connection) **声明**:`amqp_connection_state_t amqp_new_connection(void);` 此函数用于创建一个新的RabbitMQ连接状态对象。它初始...
RabbitMQ是一款广泛使用的开源消息队列系统,基于AMQP(Advanced Message Queuing Protocol)协议,适用于多种编程语言。本文将详细介绍如何在Linux环境下安装RabbitMQ。 首先,安装RabbitMQ之前需要确保系统具备...
- 打开命令行窗口,输入`rabbitmqctl status`,如果显示RabbitMQ服务器的状态信息,说明安装成功。 - 通过浏览器访问`http://localhost:15672/`,默认用户名和密码均为`guest`,登录后可以看到RabbitMQ管理界面。 ...
**RabbitMQ基础** ...通过以上介绍,我们可以看到这个项目不仅涵盖了RabbitMQ的基础知识,还展示了如何在SpringBoot应用中集成和测试RabbitMQ,对于学习和实践RabbitMQ与SpringBoot的结合使用非常有帮助。
RabbitMQ是一款开源的...总结,安装RabbitMQ 3.7.8 on Windows涉及Erlang环境的准备、RabbitMQ服务的安装与配置,以及基本的管理和使用知识。正确配置和使用RabbitMQ,能有效提升分布式系统中的消息通信效率和可靠性。
以上就是RabbitMQ在Linux上的安装过程,结合提供的Markdown格式文档`RabbitMQ安装说明文档.md`和图片,可以更直观地了解每个步骤。如有任何问题,可查阅RabbitMQ的官方文档或社区资源以获取更多帮助。
这只是 RabbitMQ 的基本概念和安装过程,实际使用时还需要考虑更多的高级特性,如交换机类型、队列绑定策略、消息确认机制、集群和高可用性等。对于更深入的学习,可以参考鸿洋大神的 RabbitMQ 博客系列或其他相关的...
7. **安装文档**:"RabbitMQ安装说明.pdf"提供了详细的安装步骤和故障排查指南,包括如何解决常见的问题,如依赖冲突、网络问题、认证错误等。仔细阅读和遵循文档是确保成功安装的关键。 8. **日志与监控**:了解...
这个版本的文档包含了Javadoc,可以帮助开发者了解如何使用Java API来创建生产者、消费者、连接、通道等,并进行消息的发送和接收。 ### 7. 高可用性与集群 为了提高RabbitMQ的可用性和容错性,可以将其部署为集群...
在提供的`spring.amqp.stocks.rar`文件中,可能包含了一个示例应用,展示了如何在SpringMVC项目中配置和使用RabbitMQ进行股票数据的发布和订阅。用户可以通过解压文件,查看源代码和文档(如`安装说明.docx`),了解...
在IT行业中,RabbitMQ是一个广泛使用的开源消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,用于在分布式系统中高效处理和路由消息。要使用RabbitMQ,首先需要确保你的环境已经正确...