`

rabbitmq学习1:hello world

阅读更多

rabbitMQ是一个在AMQP基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License 开源协议。

  关于amqp可参考http://www.oschina.net/p/rabbitmq/

 rabbitmq是一个消费的代理;通过生产者客户端生产一个信息,转送给消费者客户端;在这个传输过程中,根据你的需要可以经过路由、缓冲、持久化来得到这个消息。

  先通过一个例子开始:通过rabbitmq输出"Hello World!"

 

 

其中P代表生产者、C表示消费者、中间红色部分代表消息队列

 

生产者客户端的发送消息程序如下:

 

Java代码 复制代码 收藏代码
  1. package com.abin.test;   
  2.   
  3. import java.io.IOException;   
  4.   
  5. import com.rabbitmq.client.Channel;   
  6. import com.rabbitmq.client.Connection;   
  7. import com.rabbitmq.client.ConnectionFactory;   
  8.   
  9. public class Send {   
  10.     private final static String QUEUE_NAME = "hello";   
  11.   
  12.     public static void main(String[] args) throws IOException {   
  13.         ConnectionFactory factory = new ConnectionFactory();   
  14.         factory.setHost("localhost");   
  15.         Connection connection = factory.newConnection();   
  16.         Channel channel = connection.createChannel();   
  17.   
  18.         channel.queueDeclare(QUEUE_NAME, falsefalsefalsenull);   
  19.         String message = "Hello World!";   
  20.         channel.basicPublish("", QUEUE_NAME, null, message.getBytes());   
  21.         System.out.println(" [x] Sent '" + message + "'");   
  22.   
  23.         channel.close();   
  24.         connection.close();   
  25.     }   
  26. }  
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();
	}
}

运行结果如下:

Java代码 复制代码 收藏代码
  1. [x] Sent 'Hello World!'  
 [x] Sent 'Hello World!'

 

消费者客户端接收消息程序如下:

 

Java代码 复制代码 收藏代码
  1. package com.abin.test;   
  2.   
  3. import com.rabbitmq.client.Channel;   
  4. import com.rabbitmq.client.Connection;   
  5. import com.rabbitmq.client.ConnectionFactory;   
  6. import com.rabbitmq.client.QueueingConsumer;   
  7.   
  8. public class Reqv {   
  9.     private final static String QUEUE_NAME = "hello";   
  10.   
  11.     public static void main(String[] argv) throws Exception {   
  12.   
  13.         ConnectionFactory factory = new ConnectionFactory();   
  14.         factory.setHost("localhost");   
  15.         Connection connection = factory.newConnection();   
  16.         Channel channel = connection.createChannel();   
  17.   
  18.         channel.queueDeclare(QUEUE_NAME, falsefalsefalsenull);   
  19.         System.out.println(" [*] Waiting for messages. To exit press CTRL+C");   
  20.   
  21.         QueueingConsumer consumer = new QueueingConsumer(channel);   
  22.         channel.basicConsume(QUEUE_NAME, true, consumer);   
  23.   
  24.         while (true) {   
  25.             QueueingConsumer.Delivery delivery = consumer.nextDelivery();   
  26.             String message = new String(delivery.getBody());   
  27.             System.out.println(" [x] Received '" + message + "'");   
  28.         }   
  29.     }   
  30. }  
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 + "'");
		}
	}
}

 运行程序得到的结果如下:

Java代码 复制代码 收藏代码
  1. [*] Waiting for messages. To exit press CTRL+C   
  2. [x] Received 'Hello World!'  
[*] Waiting for messages. To exit press CTRL+C
[x] Received 'Hello World!'

 如果消费者出现“[x] Received 'Hello World!'”说明已接收到此消息信息。

分享到:
评论

相关推荐

    rabbitmq HelloWorld java 代码

    **RabbitMQ HelloWorld Java 代码详解** 在Java开发中,RabbitMQ是一个广泛使用的消息队列系统,它基于AMQP(Advanced Message Queuing Protocol)协议,提供了高效、可靠的异步通信解决方案。本教程将深入讲解如何...

    RabbitMQ Stream 教程 - Hello World!.pdf

    RabbitMQ Stream 教程 - "Hello World!

    RabbitMQ-HelloWorld:RabbitMQ的Hello World示例

    在RabbitMQ的"Hello World"示例中,首先要做的是建立一个到RabbitMQ服务器的连接,并创建一个信道。信道是RabbitMQ中的工作线程,通过它我们实际执行发布和消费消息的操作。 ```csharp using RabbitMQ.Client; ...

    RabbitMQ之HelloWorld

    在这个"RabbitMQ之HelloWorld"的例子中,我们将探讨如何使用RabbitMQ进行基础的通信。 首先,我们要了解RabbitMQ的基本概念。RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)协议的,这个协议定义了消息...

    spring-rabbitmq-helloworld

    spring和rabbitmq整合的helloworld

    java队列源码-rabbitmq-repository:RabbitMQ消息队列学习的源码记录

    rabbitmq-java-helloworld 只是第一个rabbitmq的例子 => hello world 消费者不能关闭连接,需要一直轮询查看是否存在消息 rabbitmq-java-queque rabbitmq任务队列示例 rabbitmq-java-publish-receive rabbitmq发布...

    RabbitMQ hello world源码

    "RabbitMQ hello world源码"通常是指一个简单的示例,用于展示如何在RabbitMQ中发送和接收消息。这个例子可以帮助初学者快速理解RabbitMQ的基本工作原理和API使用。 **发送端(Producer)** 在RabbitMQ的"hello ...

    RabbitMQ练习(Hello World)抓包文件

    RabbitMQ练习(Hello World)抓包文件

    rabbitmq之helloworld和worker的例子

    在本文中,我们将深入探讨RabbitMQ的基本概念,并通过一个名为“Hello World”和“Worker”的例子,了解如何使用Java来实现RabbitMQ的生产者和消费者。RabbitMQ是一个开源的消息代理和队列服务器,它允许应用程序...

    RabbitMQ系列(一)入门Helloworld

    **RabbitMQ系列(一)入门Helloworld** RabbitMQ是一种开源的消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议,广泛应用于分布式系统中的异步处理和解耦。在这个系列的第一部分,我们...

    RebbitMQ Hello World(maven项目+RebbitMQ jar包+RabbitMQ安装文件)

    RebbitMQ Hello World项目结合了Maven和RabbitMQ 3.6.6版本的jar包,为初学者提供了一个快速上手的起点。通过这个项目,你可以学习到如何配置Maven依赖,理解RabbitMQ的基本组件和工作原理,以及编写发送和接收消息...

    RabbitMQ:安装、配置与使用初探

    System.out.println("Hello World!"); ConnectionFactory factory = new ConnectionFactory(); factory.setUsername("test"); factory.setPassword("test123"); factory.setHost("192.168.0.197"); factory....

    rabbitmq-pub:Rabbitmq pub-sub

    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-tutorial.zip

    【标签】:“RabbitMQ Spring HelloWorld”揭示了主要涉及的技术点:RabbitMQ是一个流行的开源消息代理和队列服务器,用于在分布式系统中处理异步任务和消息传递;Spring是一个广泛使用的Java开发框架,提供了一整套...

    rabbitmq-examples:使用 Rabbit MQ Java API 在 Java 中开发的不同用例

    mongodb-hello-world:介绍 MongoDB Java API 基本用法的项目。 mongodb-发布-订阅: mongodb-路由: mongodb-rpc: mongodb 主题: mongodb-工作队列: 基准测试 mongodb 基准测试: 执照 RabbitMQ 示例在 GNU...

    rabbitMQ开发教程-中文翻译

    RabbitMQ提供了一个简单的“HelloWorld”示例,演示了如何使用Java客户端发送和接收消息。在这个例子中,包含两个Java程序,一个是发送者(生产者),另一个是接收者(消费者)。发送者将消息发送到队列,消费者从...

    32-CentOS7安装Docker并配置国内镜像并构建RabbitMQ镜像1

    在执行 `docker run hello-world` 命令时,我们可能会遇到 “WARNING: IPv4 forwarding is disabled. Networking will not work.” 的错误。这是因为 IPv4 转发被禁用所致。我们可以使用以下命令来解决这个问题: `...

    spring-boot-helloworld.zip

    总之,"spring-boot-helloworld.zip" 压缩包提供了一个 Spring Boot 入门的例子,通过这个例子,你可以学习到如何创建、配置和运行一个基本的 Spring Boot 应用,并理解其核心概念。这将是你进一步探索 Spring Boot ...

    rabbitmq安装包

    1. 操作系统:RabbitMQ支持多种操作系统,包括Linux、Windows等。这里以Linux为例。 2. Erlang环境:RabbitMQ依赖Erlang OTP运行时环境,需要先安装Erlang。 三、安装Erlang 你可以从Erlang Solutions官网下载适合...

    php-rabbitmq-example:在 PHP 中使用 RabbitMQ

    implode(' ', array_slice($argv, 2)) : 'Hello World!'; $channel->basic_publish(new AMQPMessage($message), 'direct_logs', $severity); echo " [x] Sent '$severity: $message'\n"; $channel->close(); $...

Global site tag (gtag.js) - Google Analytics