RabbitMQ

RabbitMQ

Direct交换机:会将接收到的消息根据路由规则路由到指定的Queue,因此称为定向路由

  • 每一个Queue都与Exchange设置一个BindingKey
  • 发布者发送消息时,指定消息的RoutingKey
  • Exchange将消息路由到BindingKey与消息RoutingKey一致的队列

在这里插入图片描述

rabbit管理平台设置

在这里插入图片描述

通过绑定routingKey来实现消息的指定发送

Direct案例

 @Test
    public void testFanoutExchange() throws InterruptedException {
        //交换机名称
        String exchangeName = "XXX.direct";

        //消息
        String message = "hello ,today is exchange direct.queue*";
        //发送消息
        rabbitTemplate.convertAndSend(exchangeName, "red",message);
        System.out.println(message);
        //Thread.sleep(20);
    }

可以用direct实现广播的功能。

Topic交换机

TopicExchange和DirectExchange类似,区别在于routingKey可以是多个单词的列表,并且以.分割
Queue与Exchange指定BindingKey时可以使用通配符:
#: 代指0个或者多个单词
: 代指一个单词
例如:
china.#
关心以china打头的所有的情况。
china.
*
关心以china打头的后面跟一个单词的情况

Topic案例

 @Test
    public void testTopicExchange() throws InterruptedException {
        //队列名称
        String exchangeName = "liuwei.topic";

        //消息
        String message = "hello ,today is exchange topic.queue1";
        //发送消息
        rabbitTemplate.convertAndSend(exchangeName, "china.kill.japan.news",message);
        System.out.println(message);
        //Thread.sleep(20);
    }

rabbitMQ管理平台设置:

在这里插入图片描述

小结

交换机有三种模式:

  • fanout
  • direct
  • topic
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值