Java代码操作RabbitMq

Java代码操作RabbitMq
使用Java代码创建交换机,队列以及绑定关系
/**
创建connection,根据connection创建channel,这样就形成了代码与RabbitMq的会话通道
*/
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setHost(主机Ip);

/**
创建连接后,要将连接关闭,因为Connection,Channel都实现了java.lang.AutoCloseable接口,所以我们可以使用
以下的写法,当我们使用完以后,连接会自动关闭
*/
try (Connection connection = connectionFactory.newConnection();
     Channel channel = connection.createChannel()) {
    
    /**
    创建交换机
    第一个参数  交换机的名称
    第二个参数  交换机的工作模式
    第三个参数  交换机是否被持久化
    第四个参数  交换机在没有绑定队列后是否自动删除
    第五个参数  一些参数
    */
    channel.exchangeDeclare(
            "exchange.order.restaurant",
            BuiltinExchangeType.DIRECT,
            true,
            false,
            null
    );

    /**
    创建队列
    第一个参数  队列的名称
    第二个参数  交换机是否被持久化
    第三个参数  ...
    第四个参数  交换机在没有绑定队列后是否自动删除
    第五个参数  一些参数
    */
    channel.queueDeclare(
            "queue.order",
            true,
            false,
            false,
            null
    );

    /**
    将交换机和队列进行绑定
    第一个参数  队列的名称
    第二个参数  交换机的名称
    第三个参数  绑定key的名称
    */
    channel.queueBind(
            "queue.order",
            "exchange.order.restaurant",
            "key.order"
    );
}
接收和发送消息

发送消息

/**
发送消息
第一个参数  要发送给交换机的名称
第二个参数  交换机和队列的绑定key
第三个参数  某些参数
第四个参数  要发送的消息,需要将消息转换为字节数组进行发送
*/
channel.basicPublish("exchange.order.deliveryman", "key.deliveryman", null, messageToSend.getBytes());

接收消息

/**
接收消息
第一个参数  要接收的队列的名称
第二个参数  是否开启自动确认消息接收
第三个参数  对接收到的参数进行处理
第四个参数  .....
*/
channel.basicConsume("queue.order", true, deliverCallback, consumerTag -> {
});

DeliverCallback deliverCallback = (consumerTag, message) -> {
        //消费数据
        String messageBody = new String(message.getBody());
    	//进行一些业务的处理
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默默行路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值