rabbitmq如何在java中运行

一、首先选择在docker中安装拉取rabbitmq

1.docker pull rabbitmq:3.8.8-management

2.运行 docker run --name rabbitmq -d -p 15672:15672 -p 5672:5672

3.另外也可以在docker中设置用户,默认是账号和密码是guest

进入容器内docker exec -it 4b9465079d96 /bin/bash

设置用户名admin 密码 123456 rabbitmqctl add_user admin 123456

将其设置成管理员rabbitmqctl set_user_tags admin administrator

给其分配权限rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

设置成功后查看用户信息rabbitmqctl list_users

二、引入依赖以及相关配置

<!--指定 jdk 编译版本-->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <!--rabbitmq 依赖客户端-->
    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
        <version>5.8.0</version>
    </dependency>
    <!--操作文件流的一个依赖-->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
    </dependency>
</dependencies>

第三、创建生产者

//1.创建一个连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("域名");
        factory.setUsername("admin");
        factory.setPassword("123456");

 //channel 实现了自动 close 接口 自动关闭 不需要显示关闭
        //2.创建连接
        Connection connection = factory.newConnection();
        //3.获取信道
        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("消息发送完毕");

第四、创建消费者

同理

//1.创建一个连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("101.43.87.51");
        factory.setUsername("admin");
        factory.setPassword("123456");
        
        //2.创建连接
        Connection connection = factory.newConnection();
        //3.获取信道
        Channel channel = connection.createChannel();

        System.out.println("等待接收消息.........");

紧接着

 //4.消费者接收消息
        //推送的消息如何进行消费的接口回调
        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            String message = new String(delivery.getBody());
            System.out.println(message);
        };
        
        //取消消费的一个回调接口 如在消费的时候队列被删除掉了
        CancelCallback cancelCallback = (consumerTag) -> {
            System.out.println("消息消费被中断");
        };

 channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值