`
yugouai
  • 浏览: 494963 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

rabbitmq入门-Hello World

 
阅读更多

rabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。rabbitMQ使用二郎语言(ERLANG)编写,使用需安装erlang。

 

rabbitmq的三个名词解释

生产者:发送消息的程序就是一个生产者(producer)

队列:队列是发送消息的缓冲,基本上是一个无限的缓冲。多个生产者(producers)能够把消息发送给同一个队列,同样,多个消费者(consumers)也能攻从一个队列(queue)中获取数据。

消费:获取队列中的消息。

 

Hello World步骤

客户端

第一步,建立一个到RabbitMQ服务器的连接

 

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();

 

 第二步:定义queue名称

 

 

Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);

 定义QUEUE_NAME,消息将通过定义的queue发送消息

 

第三部:发送消息

String message = "Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());

 发送完消息,切记关闭连接

channel.close();
connection.close();

 

服务端

 

第一、二步:跟客户端一致,定义域rabbitmq服务器的连接并指定读取的queue名称

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
		
channel.queueDeclare(QUEUE_NAME, false, false, false, null);

 第三步:定义消费者进行消费

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 + "'");
}

 消费者根据queue名称读取消息

 

整合代码

客户端:

public class MQClient 
{
	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!'

  

服务端

public class MQServer {
	private final static String QUEUE_NAME = "hello";
	public static void main(String[] args) throws IOException, ShutdownSignalException, ConsumerCancelledException, InterruptedException {
		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!'

 

 

分享到:
评论

相关推荐

    RabbitMQ-HelloWorld:RabbitMQ的Hello World示例

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

    spring-boot-helloworld.zip

    在 "spring-boot-helloworld.zip" 这个压缩包中,我们很可能是找到了一篇关于 Spring Boot 入门的博客文章示例代码,用于展示如何构建一个简单的 "Hello World" 应用。 在 Spring Boot 中创建一个 "Hello World" ...

    RabbitMQ之HelloWorld

    总结来说,"RabbitMQ之HelloWorld"是一个简单的入门教程,它帮助开发者理解RabbitMQ的基本工作原理和API使用。通过实践这个例子,你可以快速掌握如何在实际项目中利用RabbitMQ进行消息传递,为后续更复杂的分布式...

    RabbitMQ系列(一)入门Helloworld

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

    rabbitmq-demo入门代码

    String message = "Hello World!"; channel.basicPublish("", "hello", null, message.getBytes(StandardCharsets.UTF_8)); System.out.println(" [x] Sent '" + message + "'"); } } } ``` 此代码声明了一个...

    RabbitMQ.pdf-详情

    在`Producer_HelloWorld`类中,我们创建一个连接工厂,并设置RabbitMQ服务器的相关参数,如主机名、端口、虚拟主机、用户名和密码。然后,通过连接工厂创建连接和通道,通道是执行所有AMQP操作的地方。接着,我们...

    RabbitMQ 入门教程(JAVA)

    ### RabbitMQ 入门教程(JAVA) #### 一、RabbitMQ 概述 RabbitMQ 是一个消息中间件,其主要功能是接收来自生产者的消息,并根据规则将其路由、缓冲以及持久化后传递给消费者。RabbitMQ 和消息传递系统通常会使用...

    RabbitMQ入门教程.docx

    ### RabbitMQ入门知识点详解 #### 一、RabbitMQ简介 RabbitMQ是一款开源的消息中间件,基于Erlang语言开发而成。它支持多种消息发布/订阅模式,并且能够跨多平台运行。作为消息中间件,RabbitMQ的核心功能是接受、...

    20.消息中间件之RabbitMQ入门讲解(更新)

    这段代码连接到本地的RabbitMQ服务器,声明一个名为`hello`的队列,并发送一条消息“Hello World!”。 现在,我们需要创建一个消息消费者来接收这些消息。同样,我们可以使用`pika`库编写一个简单的消费者: ```...

    Rabbitmq笔记+入门教程+示例

    String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); System.out.println(" [x] Sent '" + message + "'"); connection.close(); } } public class Consumer1...

    rabbitMQ java客户端入门

    ### RabbitMQ Java客户端入门知识点详解 #### 一、RabbitMQ概述 - **定义与功能**:RabbitMQ是一款开源消息代理软件,基于Erlang语言开发,支持多种消息协议,如AMQP(Advanced Message Queuing Protocol)。其...

    springboot HelloWorld

    总结来说,SpringBoot HelloWorld是一个简单的入门示例,展示了如何利用Spring Boot快速构建一个运行的Web应用。通过这个示例,开发者能够理解Spring Boot的核心概念,包括自动配置、依赖注入和RESTful API的创建。...

    Spring AMQP hello world

    在这个“Spring AMQP Hello World”示例中,我们将深入探讨如何使用Spring AMQP来创建一个简单的消息传递系统。这个入门教程将帮助你理解Spring AMQP的基本概念、配置以及核心组件。 首先,让我们了解AMQP。AMQP是...

    Spring Boot Hello World 入门源代码,直接返回一个http的JSON的输出

    综上所述,"Spring Boot Hello World 入门源代码"演示了如何利用 Spring Boot 快速构建一个返回 JSON 的 Web 服务。这个过程中涉及到的核心概念包括 Spring Boot 框架、RESTful API 设计、HTTP 协议、以及 JSON 数据...

    rabbitMQ 消息队列 Demo

    这是RabbitMQ入门的经典示例,它展示了最基础的消息发布与消费过程。生产者发送一个简单的"Hello, World!"消息到RabbitMQ服务器,然后消费者从队列中取出并打印这个消息。这个例子帮助我们理解RabbitMQ的基本工作...

    rabbitMq三种模式入门测试

    首先,我们从"Hello, World!"开始。在RabbitMQ中,发送和接收消息的基本流程包括创建连接、通道、交换机和队列,以及绑定和发布消息。`rabbitmqtest`项目中的代码可能就是这样一个简单的示例,展示了如何通过Java ...

    RabbitMQ课程1

    【RabbitMQ 课程1】主要讲解了...总的来说,RabbitMQ课程1旨在为初学者提供全面的RabbitMQ入门知识,涵盖了从基本概念到实际操作的所有关键点,帮助开发者理解如何有效地使用RabbitMQ进行分布式系统中的消息通信。

    MQ学习文档 方便回顾!

    package cn.itcast.mq.helloworld; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import org.junit.Test; import java.io....

    springboot的简单入门

    4. **Hello World示例**: 压缩包中的`springboot-hello`可能是一个简单的"Hello, World!"应用程序。通常,它会包含一个`Application`类,标记为`@SpringBootApplication`,该注解集成了`@Configuration`,`@...

    RabbitMQ学习总结

    // 简单入门demo,向队列"hello"发送信息"hello world" public class HelloWorldProducer { private static final String QueueName = "hello"; private static final String RabbitMQServerIp = "192.168.188.128...

Global site tag (gtag.js) - Google Analytics