rabbir完整使用教程带实例

 2023-03-29 11:23:34  阅读 0

一、安装和配置

1. 安装Erlang/OTP

RabbitMQ是基于Erlang语言开发的,在安装RabbitMQ之前需要先安装Erlang/OTP运行环境。可以从Erlang官网下载安装包并按照提示进行安装。

2. 安装RabbitMQ

下载最新版本的RabbitMQ安装包并按照提示进行安装。安装完成后,RabbitMQ会自动启动,并通过默认端口5672提供服务。

3. 配置管理插件

RabbitMQ提供了一个Web管理界面,可以方便地查看和管理队列、交换机、连接等信息。要使用该功能,需要先安装并启用管理插件。


 

bash复制代码

# 启用管理插件 sudo rabbitmq-plugins enable rabbitmq_management

然后就可以通过http://localhost:15672访问Web管理界面了,默认用户名和密码均为“guest”。

示例代码

Java示例

以下是Java语言实现的简单生产者和消费者代码,用于发送和接收一条消息。

import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;

public class Producer {
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] argv) throws Exception {
        // 创建连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");

        // 创建连接和通道
        try (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("UTF-8"));
            System.out.println(" [x] Sent '" + message + "'");
        }
    }
}
import com.rabbitmq.client.*;

import java.io.IOException;

public class Consumer {
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] argv) throws Exception {
        // 创建连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");

        // 创建连接和通道
        try (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");

            // 定义回调函数来处理接收到的消息
            DeliverCallback deliverCallback = (consumerTag, delivery) -> {
                String message = new String(delivery.getBody(), "UTF-8");
                System.out.println(" [x] Received '" + message + "'");
            };

            // 监听队列并接收消息
            channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {});
        }
    }
}

 

标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码