RabbitMq学习笔记(三)—— 交换器(Pub/Topic)

//声明交换器(fanout:分发)rabbitmqctl list_exchanges 查看交换器规则

channel.exchangeDeclare("logs", "fanout");

//创建临时队列

String queueName = channel.queueDeclare().getQueue();

String message = "this is message in the fanout'exchange ";

//发送消息到交换器中

channel.basicPublish( "logs", "", null, message.getBytes());

//交换器绑定队列

channel.queueBind(queueName, "logs", "");

RabbitMQ中消息传递模型的核心思想是:生产者不直接发送消息到队列。实际的运行环境中,生产者是不知道消息会发送到那个队列上,她只会将消息发送到一个交换器,交换器也像一个生产线,她一边接收生产者发来的消息,另外一边则根据交换规则,将消息放到队列中。

交换器的规则有:

  1. direct (直连)

  2. topic (主题)

  3. headers (标题)

  4. fanout (分发)

匿名交换器

在之前的教程中,我们知道,发送消息到队列时根本没有使用交换器,但是消息也能发送到队列。这是因为RabbitMQ选择了一个空“”字符串的默认交换器。

第一个参数就是交换器的名称。如果输入“”空字符串,表示使用默认的匿名交换器。
第二个参数是【routingKey】路由线索
匿名交换器规则:
发送到routingKey名称对应的队列。

临时队列

如果要在生产者和消费者之间创建一个新的队列,又不想使用原来的队列,临时队列就是为这个场景而生的:

首先,每当我们连接到RabbitMQ,我们需要一个新的空队列,我们可以用一个随机名称来创建,或者说让服务器选择一个随机队列名称给我们。

一旦我们断开消费者,队列应该立即被删除。

以上转载

http://blog.csdn.net/chwshuang/article/details/50512057

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值