摘要: 参考资料: RabbitMQ 有两种方式限制队列长度,第一种是对队列中消息总数进行限制: gordon.study.rabbitmq.features.TestQueueLengthLimit.java Map args = new HashMap(); args.put("x max length 阅读全文
posted @ 2017-06-10 13:55 首夜盲毒预言家 阅读(4459) 评论(0) 推荐(1) 编辑
摘要: 参考资料: A. 为队列设置消息TTL TTL 是 Time To Live 的缩写,指的是存活时间。RabbitMQ 可以为每一个队列设置其内部消息的 TTL。 gordon.study.rabbitmq.ttl.TestPerQueueMsgTtl 如上,只要给队列设置 x message tt 阅读全文
posted @ 2017-06-06 21:39 首夜盲毒预言家 阅读(786) 评论(0) 推荐(0) 编辑
摘要: A. JMS 模型 JMS 中定义了点对点和发布订阅两种消息模型,原来以为 AMQP 协议中 direct Exchange 对应点对点模型,topic Exchange 对应发布订阅模型,fanout Exchange 对应简化的发布订阅模型。可学习下来,发现根本不是那么一回事。 实际上,用三种 阅读全文
posted @ 2017-06-06 20:07 首夜盲毒预言家 阅读(3816) 评论(0) 推荐(0) 编辑
摘要: A. 用广播的方式实现发布订阅 参考资料: Fanout 类型的 Exchange 以广播的方式向所有绑定到该 Exchange 的队列推送消息。 下面样例代码试图使用 fanout 将状态变更消息推送给所有接入系统: gordon.study.rabbitmq.fanout.Fanout.java 阅读全文
posted @ 2017-06-06 19:45 首夜盲毒预言家 阅读(2478) 评论(0) 推荐(0) 编辑
摘要: A. Delivery Tag 参考资料: 仔细查看一下 Consumer 的回调方法: 当我们需要确认一条消息已经被消费时,我们调用的 basicAck 方法的第一个参数是 Delivery Tag。 Delivery Tag 用来标识信道中投递的消息。RabbitMQ 推送消息给 Consume 阅读全文
posted @ 2017-06-06 18:13 首夜盲毒预言家 阅读(14817) 评论(2) 推荐(4) 编辑
摘要: A. 多线程消费同一队列 参考资料: 消费一条消息往往比产生一条消息慢很多,为了防止消息积压,一般需要开启多个工作线程同时消费消息。在 RabbitMQ 中,我们可以创建多个 Consumer 消费同一队列。示意图如下: gordon.study.rabbitmq.workqueue.Sender. 阅读全文
posted @ 2017-06-04 20:14 首夜盲毒预言家 阅读(29766) 评论(3) 推荐(2) 编辑
摘要: 如果你比较细心,你会发现 HelloWorld 例子中的 Sender 只申明了一个 hello 队列,然后就开始向默认 Exchange 发送路由键为 hello 的消息。按照之前 AMQP 基本概念介绍,消息到了 Exchange 后需要按照 Binding 提供的分发依据将消息分发到队列中。那 阅读全文
posted @ 2017-06-04 16:53 首夜盲毒预言家 阅读(1397) 评论(0) 推荐(0) 编辑
摘要: 我们知道,消费者有两种方式从消息中间件获取消息: 推模式:消息中间件主动将消息推送给消费者 拉模式:消费者主动从消息中间件拉取消息 推模式将消息提前推送给消费者,消费者必须设置一个缓冲区缓存这些消息。好处很明显,消费者总是有一堆在内存中待处理的消息,所以效率高。缺点是缓冲区可能会溢出。 拉模式在消费 阅读全文
posted @ 2017-06-04 01:26 首夜盲毒预言家 阅读(7379) 评论(1) 推荐(2) 编辑
摘要: A. AMQP基础 RabbitMQ 并不是基于 Java 开发人员熟悉的 JMS 规范设计开发的,而是基于一个比 JMS 更新更合理的 AMQP (Advanced Message Queuing Protocol) 协议。所以,在开始 RabbitMQ 之旅前,需要先对 AMQP 有一定的了解。 阅读全文
posted @ 2017-06-04 01:21 首夜盲毒预言家 阅读(1454) 评论(0) 推荐(0) 编辑
摘要: A. 资源与参考文档 官网:https://www.rabbitmq.com/ B. 学习目的 部门目前使用其他部门维护的 WebLogic 的 JMS 消息服务,缺乏足够的技术支持与运维支持。随着基于 Spring Cloud 的微服务化改造的启动与团队技术能力提升,服务内部与服务之间将会更加依赖 阅读全文
posted @ 2017-06-03 17:05 首夜盲毒预言家 阅读(904) 评论(2) 推荐(2) 编辑