随笔分类 -  MQ

摘要:MQ使用过程中,有些业务场景需要我们保证顺序消费,而如果一个Producer,一个Queue,多个Consumer的情况下是无法保证顺序的 举例: 1、业务上产生三条消息,分别是对数据的增加、修改、删除,而如果没有保证顺序消费,结果可能是删除、修改、增加,本来数据最终要删除 、结果变成增加 2、或者 阅读全文
posted @ 2019-05-27 11:36 Diamond-Shine 阅读(24028) 评论(7) 推荐(3) 编辑
摘要:批量消息发送模式 批量消息是指把消息放到一个集合统一进行提交,这种方案设计思路是希望消息在一个会话里,比如放到ThreadLocal里的集合,拥有相同 的会话ID,带有这次提交信息的size等属性,最重要的是吧这一批消息进行合并。对于channel就是发送一次消息。这种方式也是希望消费端在消 费的时 阅读全文
posted @ 2019-05-27 11:10 Diamond-Shine 阅读(6505) 评论(0) 推荐(1) 编辑
摘要:如果简历中有写到使用过RabbitMQ或者其他的消息中间件,可能在MQ方面的第一个问题就是问:为什么要使用MQ 面试官期望的回答 1、项目中有什么业务场景需要用到MQ 2、但是用了MQ,会带来很多问题,有什么缺点 所以,我们首先要回答的就是MQ的使用场景,在第一篇MQ文章中有简单提过这个 应用场景 阅读全文
posted @ 2019-05-25 19:16 Diamond-Shine 阅读(2334) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章讲解MQ消息可靠性投递和幂等性中有提到confirm机制的重要性,现在更详细的说明一下 一、Confirm机制 Confirm就是消息确认,当Producer发送消息,如果Broker收到消息,会回复一个应答,我们可以以此来确认消息是否成功送达,是保证 消息可靠性投递的核心保障 Prod 阅读全文
posted @ 2019-05-24 17:56 Diamond-Shine 阅读(1083) 评论(0) 推荐(0) 编辑
摘要:一、消息如何保证可靠性传输 1.1、可能出现消息丢失的情况 1、Producer在把Message发送Broker的过程中,因为网络问题等发生丢失,或者Message到了Broker,但是出了问题,没有保存下来 针对这个问题,Producer可以开启MQ的事务,如果这个过程出现异常,进行回滚,但是有 阅读全文
posted @ 2019-05-24 14:33 Diamond-Shine 阅读(12908) 评论(0) 推荐(7) 编辑
摘要:基于java使用RabbitMQ 框架:SpringBoot1.5.14.RELEASE maven依赖: 本文只是操作原生RabbitMQ,并没有和SpringBoot进行整合,后面介绍整合,基于注解使用 一、quick start 1.1、Consumer public static void 阅读全文
posted @ 2019-05-24 10:31 Diamond-Shine 阅读(1067) 评论(0) 推荐(0) 编辑
摘要:声明:对于RabbitMQ的学习基于某课网相关视频和《RabbitMQ实战指南》一书,后续关于RabbitMQ的博客都是基于二者 一、什么是RabbitMQ RabbitMQ是开源代理和队列服务器,通过普通协议在不同的应用之间共享数据,使用Erlang编写(Erlang进行数据交换的性能很好, 和原 阅读全文
posted @ 2019-05-22 16:27 Diamond-Shine 阅读(1956) 评论(0) 推荐(0) 编辑
摘要:MQ在项目中的应用很普遍,本人所在项目组使用的是ActiveMQ,但是后面介绍的RabbitMQ。。。 一、应用场景 1、异步处理 2、流量削峰、秒杀 3、日志处理,推荐kafka 4、应用解耦 二、衡量指标 我们从服务性能、数据存储、集群结构三个方面去对比,选择适合自己项目的消息中间件 1、Act 阅读全文
posted @ 2019-05-22 15:52 Diamond-Shine 阅读(1832) 评论(0) 推荐(0) 编辑