RabbitMQ随手笔记(五)交换器和队列(.netCore2.0)

1.声明一个交换器和队列

第一种方式,已知队列名称(由客户端分配而非RabbitMQ自动生成)

                //创建了一个持久化的,非自动删除的、绑定类型为direct的转换器
                channel.ExchangeDeclare(EXCHANGE_NAME, "direct", true, false, null);
                //创建了一个持久化的,非排他性的、非自动删除的队列
                channel.QueueDeclare(QUEUE_NAME, true, false, false, null);
                channel.QueueBind(QUEUE_NAME, EXCHANGE_NAME, ROUTING_KEY, null);

第二种方式,不需要知道QueueName的场景。该场景声明的队列,只对当前应用中同一个Connection层面可用,同一个Connection的不同的Channel可用,并且也会在应用连接断开时自动删除

                //创建了一个持久化的,非自动删除的、绑定类型为direct的转换器
                channel.ExchangeDeclare(EXCHANGE_NAME, "direct", true, false, null);
                //创建了一个非持久化的,排他性的、自动删除的队列//队列的名称由RabbitMQ自动生成
                var queue = channel.QueueDeclare();
                //获取队列名称         
                string queueName = queue.QueueName;
                //队列与交换器绑定
                channel.QueueBind(queueName, EXCHANGE_NAME, ROUTING_KEY, null);

2.ExchangeDelare()说明

void ExchangeDeclare(string exchange, string type, bool durable, bool autoDelete, IDictionary<string, object> arguments);

主要参数介绍:

exchange:交换器名称

type:交换器类型,主要有fanout、direct,topic等;

durable:是否持久化,true为持久化,持久化可以将交换器存盘;

autoDelete:是否自动删除

arguments:其他参数

3.QueueDeclare()说明

public static QueueDeclareOk QueueDeclare(this IModel model, string queue = "", bool durable = false, bool exclusive = true, bool autoDelete = true, IDictionary<string, object> arguments = null);

主要参数介绍:

queue :队列名称;

durable :是否持久化;

exclusive :是否排他;如果设置为true(即排他):①排他队列是基于连接的(Connetcion),同一个连接的不同的信道(Channel)可以同时访问同一个连接创建的排他队列;②如果一个连接已经声明了一个排他队列,其他连接不允许创建同名的排他队列;③即使该队列是持久化的,一旦连接或者客户端退出,该排他队列都会自动删除;排他队列适用于一个客户端同时发送和读取消息的场景

autoDelete :是否自动删除;

arguments :其他参数。

4.QueueBind()说明

void QueueBind(string queue, string exchange, string routingKey, IDictionary<string, object> arguments);

queue :队列名称;

exchange:交换器名称

routingKey:用来绑定队列和交换器的路由键

arguments :其他参数。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值