rabbitMQ是一个在AMQP基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License 开源协议。
关于amqp可参考http://www.oschina.net/p/rabbitmq/
rabbitmq是一个消费的代理;通过生产者客户端生产一个信息,转送给消费者客户端;在这个传输过程中,根据你的需要可以经过路由、缓冲、持久化来得到这个消息。
先通过一个例子开始:通过rabbitmq输出"Hello World!"
其中P代表生产者、C表示消费者、中间红色部分代表消息队列
生产者客户端的发送消息程序如下:
- package com.abin.test;
-
-
import java.io.IOException;
-
-
import com.rabbitmq.client.Channel;
-
import com.rabbitmq.client.Connection;
-
import com.rabbitmq.client.ConnectionFactory;
-
-
public class Send {
-
private final static String QUEUE_NAME = "hello";
-
-
public static void main(String[] args) throws IOException {
-
ConnectionFactory factory = new ConnectionFactory();
-
factory.setHost("localhost");
- Connection connection = factory.newConnection();
- Channel channel = connection.createChannel();
-
-
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
-
String message = "Hello World!";
-
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
-
System.out.println(" [x] Sent '" + message + "'");
-
- channel.close();
- connection.close();
- }
- }
package com.abin.test;
import java.io.IOException;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Send {
private final static String QUEUE_NAME = "hello";
public static void main(String[] args) throws IOException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
channel.close();
connection.close();
}
}
运行结果如下:
[x] Sent 'Hello World!'
消费者客户端接收消息程序如下:
- package com.abin.test;
-
-
import com.rabbitmq.client.Channel;
-
import com.rabbitmq.client.Connection;
-
import com.rabbitmq.client.ConnectionFactory;
-
import com.rabbitmq.client.QueueingConsumer;
-
-
public class Reqv {
-
private final static String QUEUE_NAME = "hello";
-
-
public static void main(String[] argv) throws Exception {
-
-
ConnectionFactory factory = new ConnectionFactory();
-
factory.setHost("localhost");
- Connection connection = factory.newConnection();
- Channel channel = connection.createChannel();
-
-
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
-
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
-
-
QueueingConsumer consumer = new QueueingConsumer(channel);
-
channel.basicConsume(QUEUE_NAME, true, consumer);
-
-
while (true) {
- QueueingConsumer.Delivery delivery = consumer.nextDelivery();
-
String message = new String(delivery.getBody());
-
System.out.println(" [x] Received '" + message + "'");
- }
- }
- }
package com.abin.test;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;
public class Reqv {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(QUEUE_NAME, true, consumer);
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}
}
}
运行程序得到的结果如下:
- [*] Waiting for messages. To exit press CTRL+C
-
[x] Received 'Hello World!'
[*] Waiting for messages. To exit press CTRL+C
[x] Received 'Hello World!'
如果消费者出现“[x] Received 'Hello World!'”说明已接收到此消息信息。
分享到:
相关推荐
**RabbitMQ HelloWorld Java 代码详解** 在Java开发中,RabbitMQ是一个广泛使用的消息队列系统,它基于AMQP(Advanced Message Queuing Protocol)协议,提供了高效、可靠的异步通信解决方案。本教程将深入讲解如何...
RabbitMQ Stream 教程 - "Hello World!
在RabbitMQ的"Hello World"示例中,首先要做的是建立一个到RabbitMQ服务器的连接,并创建一个信道。信道是RabbitMQ中的工作线程,通过它我们实际执行发布和消费消息的操作。 ```csharp using RabbitMQ.Client; ...
在这个"RabbitMQ之HelloWorld"的例子中,我们将探讨如何使用RabbitMQ进行基础的通信。 首先,我们要了解RabbitMQ的基本概念。RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)协议的,这个协议定义了消息...
spring和rabbitmq整合的helloworld
rabbitmq-java-helloworld 只是第一个rabbitmq的例子 => hello world 消费者不能关闭连接,需要一直轮询查看是否存在消息 rabbitmq-java-queque rabbitmq任务队列示例 rabbitmq-java-publish-receive rabbitmq发布...
"RabbitMQ hello world源码"通常是指一个简单的示例,用于展示如何在RabbitMQ中发送和接收消息。这个例子可以帮助初学者快速理解RabbitMQ的基本工作原理和API使用。 **发送端(Producer)** 在RabbitMQ的"hello ...
RabbitMQ练习(Hello World)抓包文件
在本文中,我们将深入探讨RabbitMQ的基本概念,并通过一个名为“Hello World”和“Worker”的例子,了解如何使用Java来实现RabbitMQ的生产者和消费者。RabbitMQ是一个开源的消息代理和队列服务器,它允许应用程序...
**RabbitMQ系列(一)入门Helloworld** RabbitMQ是一种开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,广泛应用于分布式系统中的异步处理和解耦。在这个系列的第一部分,我们...
RebbitMQ Hello World项目结合了Maven和RabbitMQ 3.6.6版本的jar包,为初学者提供了一个快速上手的起点。通过这个项目,你可以学习到如何配置Maven依赖,理解RabbitMQ的基本组件和工作原理,以及编写发送和接收消息...
System.out.println("Hello World!"); ConnectionFactory factory = new ConnectionFactory(); factory.setUsername("test"); factory.setPassword("test123"); factory.setHost("192.168.0.197"); factory....
const message = JSON.stringify({ hello: 'world' }); channel.publish('topic_logs', 'key', Buffer.from(message)); console.log(" [x] Sent '%s'", message); channel.close(); connection.close(); } ...
【标签】:“RabbitMQ Spring HelloWorld”揭示了主要涉及的技术点:RabbitMQ是一个流行的开源消息代理和队列服务器,用于在分布式系统中处理异步任务和消息传递;Spring是一个广泛使用的Java开发框架,提供了一整套...
mongodb-hello-world:介绍 MongoDB Java API 基本用法的项目。 mongodb-发布-订阅: mongodb-路由: mongodb-rpc: mongodb 主题: mongodb-工作队列: 基准测试 mongodb 基准测试: 执照 RabbitMQ 示例在 GNU...
RabbitMQ提供了一个简单的“HelloWorld”示例,演示了如何使用Java客户端发送和接收消息。在这个例子中,包含两个Java程序,一个是发送者(生产者),另一个是接收者(消费者)。发送者将消息发送到队列,消费者从...
在执行 `docker run hello-world` 命令时,我们可能会遇到 “WARNING: IPv4 forwarding is disabled. Networking will not work.” 的错误。这是因为 IPv4 转发被禁用所致。我们可以使用以下命令来解决这个问题: `...
总之,"spring-boot-helloworld.zip" 压缩包提供了一个 Spring Boot 入门的例子,通过这个例子,你可以学习到如何创建、配置和运行一个基本的 Spring Boot 应用,并理解其核心概念。这将是你进一步探索 Spring Boot ...
1. 操作系统:RabbitMQ支持多种操作系统,包括Linux、Windows等。这里以Linux为例。 2. Erlang环境:RabbitMQ依赖Erlang OTP运行时环境,需要先安装Erlang。 三、安装Erlang 你可以从Erlang Solutions官网下载适合...
implode(' ', array_slice($argv, 2)) : 'Hello World!'; $channel->basic_publish(new AMQPMessage($message), 'direct_logs', $severity); echo " [x] Sent '$severity: $message'\n"; $channel->close(); $...