CentOS7安装rabbitmq

安装及配置

# 下载并执行erlang安装脚本
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
yum install erlang
# 下载并执行rabbitmq-server安装脚本
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
yum install rabbitmq-server

# 开启管理界面
rabbitmq-plugins enable rabbitmq_management
# 添加用户
rabbitmqctl add_user <username> <password>
# 设置标签
rabbitmqctl set_user_tags <username> administrator
# 设置权限
# rabbitmqctl [--node <node>] [--longnames] [--quiet] set_permissions [--vhost <vhost>] <username> <conf_regx> <write_regx> <read_regx>
rabbitmqctl set_permissions --vhost "/" <username> ".*" ".*" ".*"

Java测试

初始化

vim rabbitmq-demo.sh

#!/bin/bash
project=rabbit-demo && mkdir $project && cd $project && gradle --no-daemon init --type=java-application
rm -rf gradle gradlew gradlew.bat

cat << EOF > build.gradle
group = 'com.yan'
version = '0.0.1-SNAPSHOT'

apply plugin: "java"
apply plugin: "idea"

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

repositories {
    maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
}
dependencies {
	compile group: 'com.rabbitmq', name: 'amqp-client', version: '5.7.2'
}
EOF

cat << EOF > idea.sh
gradle cleanidea idea --refresh-dependencies
EOF

bash idea.sh

生产者

Prod.java

public class Prod {
    static final String QUEUE_NAME = "XX";
    static final ConnectionFactory CONNECTION_FACTORY = getConnectionFactory();

    private static ConnectionFactory getConnectionFactory() {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("XX.XX.XX.XX");
        factory.setUsername("username");
        factory.setPassword("password");
        return factory;
    }

    public static void main(String[] args) {
        try (Connection 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 + "'");
        } catch (TimeoutException | IOException e) {
            e.printStackTrace();
        }
    }
}

消费者

Recv.java

public class Recv {
    public static void main(String[] argv) throws Exception {
        Connection connection = CONNECTION_FACTORY.newConnection();
        Channel channel = connection.createChannel();
        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            String message = new String(delivery.getBody(), StandardCharsets.UTF_8);
            System.out.println(" [x] Received '" + message + "'");
        };
        channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
        });
    }
}

参考:

  1. https://www.rabbitmq.com/management.html
  2. https://www.rabbitmq.com/rabbitmqctl.8.html#add_user
  3. https://www.rabbitmq.com/rabbitmqctl.8.html#set_user_tags
  4. https://www.rabbitmq.com/rabbitmqctl.8.html#set_permissions
  5. https://www.rabbitmq.com/api-guide.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值