上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 123 下一页
摘要: 拜读了网上很多前辈的文章,对RabbitMQ的集群有了一点点认识. 好多文章都说到,RabbitMQ的集群分为普通集群和镜像集群,有的还加了两种:单机集群和主从集群. 我看来看去,看了半天,怎么感觉,其实RabbitMQ的集群实际就一种:普通集群. 至于单机集群,无非是在一台机器上模拟普通集群, 镜 阅读全文
posted @ 2020-12-15 20:59 星火撩原 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 消费者确认解决的问题是确认消息是否被消费者"成功消费". 它有个前提条件,那就是生产者发布的消息已经"成功"发送出去了. 因此还需要一个机制来告诉生产者,你发送的消息真的"成功"发送了. 在标准的AMQP 0-9-1,保证消息不会丢失的唯一方法是使用事务:在通道上开启事务,发布消息,提交事务.但是事 阅读全文
posted @ 2020-12-15 20:57 星火撩原 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 由于生产者和消费者不直接通信,生产者只负责把消息发送到队列,消费者只负责从队列获取消息(不管是push还是pull). 消息被"消费"后,是需要从队列中删除的.那怎么确认消息被"成功消费"了呢? 是消费者从队列获取到消息后,broker 就从队列中删除该消息? 那如果消费者收到消息后,还没来得及"消 阅读全文
posted @ 2020-12-15 20:56 星火撩原 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 在远程计算机上运行一个函数并等待结果,我们通常叫这种模式为远程过程调用或者RPC. 通过 RabbitMQ 进行 RPC 很容易,客户端发送请求消息,服务器回复响应消息.为了接收响应,我们需要发送带有“回调”队列地址的请求. 同时,这里面涉及到几个比较重要的消息属性: 消息属性 Durable :  阅读全文
posted @ 2020-12-15 20:54 星火撩原 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 上篇文章讲了声明一个队列时的参数设置,这篇文章主要说一说发布消息时的参数设置. 发布消息时的完整入参是这样的: channel.BasicPublish ( exchange: "test_exchange", routingKey: "", mandatory: false, basicPrope 阅读全文
posted @ 2020-12-15 20:53 星火撩原 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 代码中,我们通常这样声明一个队列: //声明队列 channel.QueueDeclare ( queue: QueueName, //队列名称 durable: false, //队列是否持久化.false:队列在内存中,服务器挂掉后,队列就没了;true:服务器重启后,队列将会重新生成.注意:只 阅读全文
posted @ 2020-12-15 20:52 星火撩原 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 主题模式和路由模式很像 路由模式是精确匹配 主题模式是模糊匹配 依然先通过管理后台添加一个交换机. 生产者 public class Producer { private const string ExchangeName = "test_exchange_topic"; public static 阅读全文
posted @ 2020-12-15 20:50 星火撩原 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 路由模式下,生产者发送消息时需要指定一个路由键(routingKey),交换机只会把消息转发给包含该路由键的队列 这里,我们改变一下声明交换机的方式. 我们通过管理后台添加一个交换机. 添加后,生产者和消费者的代码中就不需要再声明交换机了.同样,也可以通过管理后台添加队列,那么代码中也不需要声明队列 阅读全文
posted @ 2020-12-15 20:48 星火撩原 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 前面讲到了简单队列和工作队列. 这两种队列有个非常明显的缺点 : 生产者发送的消息,只能进入到一个队列. 消息只能进入到一个队列就意味着消息只能被一个消费者消费. 尽管工作队列模式中,一个队列中的消息可以被多个消费者消费,但是,具体到每一条消息,却只能被一个消费者消费. 如果想要一个消息被多个消费者 阅读全文
posted @ 2020-12-15 20:46 星火撩原 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 上篇文章讲的轮询分发 : 1个队列,无论多少个消费者,无论消费者处理消息的耗时长短,大家消费的数量都一样. 而公平分发,又叫 : 能者多劳,顾名思义,处理得越快,消费得越多. 生产者 public class Producer { private const string QueueName = " 阅读全文
posted @ 2020-12-15 20:44 星火撩原 阅读(149) 评论(0) 推荐(0) 编辑
上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 123 下一页