随笔分类 -  rabbitmq

摘要:保证消息可靠性 生产者发送消息到broker的可靠性 服务端确认机制 channel设置为事务模式(transaction模式):缺点:阻塞、性能下降;消耗额外的性能,不建议生产环境使用。 confirm模式:waitForConfirm(),发送成功后会confirm;可以批量确认,提升性能;还可 阅读全文
posted @ 2020-07-31 00:20 挣扎一下 阅读(323) 评论(0) 推荐(0)
摘要:网络分区的意义 阅读全文
posted @ 2020-06-09 19:36 挣扎一下 阅读(189) 评论(0) 推荐(0)
摘要:存储机制 持久化的消息和非持久化的消息都可以被写入到磁盘。 持久化的消息一开始就会写入磁盘,如果可以,也会在内存中保存一部分以提高性能,当内存吃紧时会从内存中清楚。 非持久化的消息一般存储在内存中,内存吃紧时会换入到磁盘中,以节省内存空间。 这两种类型的消息的落盘处理都在RabbitMQ的”持久层“ 阅读全文
posted @ 2020-06-09 18:15 挣扎一下 阅读(573) 评论(0) 推荐(0)
摘要:跨越集群主要两种插件:Federation和Shovel。 原来的rabbitmq集群将多个broker将多个节点连接起来组成逻辑上独立的单个broker,但是集群也有其局限性:集群内部借助 Erlang 进行消息传输,所以 集群中的每个节点的 Erlang cookie 务必要保持一致。同时,集群 阅读全文
posted @ 2020-06-08 23:16 挣扎一下 阅读(353) 评论(0) 推荐(0)
摘要:保证消息的安全 持久化 交换器持久化:声明交换器时指定持久化 队列持久化:声明队列时指定持久化 消息持久化:发送消息时指定持久化 一般队列和消息持久化要同时声明,此外消息假如进了交换器却找不到队列,也会丢失,必要时添加mandatory参数或者备份交换器。 持久化会降低吞吐量。 消费者确认 订阅队列 阅读全文
posted @ 2020-06-02 10:11 挣扎一下 阅读(206) 评论(0) 推荐(0)
摘要:建立Connection,创建Channel,注意Channel不能在线程间共享(非线程安全) 创建交换器和队列 消费者消费消息支持推和拉两种模式 推:通过consume方法订阅队列 拉:通过channel.basicGet方法获取消息 一旦consume以后,channel会被置为接收模式,直到取 阅读全文
posted @ 2020-05-27 23:38 挣扎一下 阅读(146) 评论(0) 推荐(0)
摘要:消息中间件 使用消息中间件的作用 解耦 削峰 异步 顺序保证 冗余(存储) 使用MQ带来的问题 系统的可用性降低 系统的复杂性提高 RabbitMQ的特点 可靠性 灵活的路由 扩展性 高可用 多语言客户端 插件机制 多协议(主要还是AMQP) 相关概念 Producer:生产者,投递消息的一方 Co 阅读全文
posted @ 2020-05-24 09:30 挣扎一下 阅读(153) 评论(0) 推荐(0)