MQ消息队列
------
踟蹰千年
希望能一直有码编的码农一枚
展开
-
【Java进阶面试系列之八】消息中间件如何实现消费吞吐量的百倍优化?
1前情提示上一篇文章:互联网面试必杀:如何保证消息中间件全链路数据100%不丢失(2),我们分析了ack机制的底层实现原理(delivery tag机制),还有消除处理失败时的nack机制如何触发消息重发。通过这个,已经让大家进一步对消费端保证数据不丢失的方案的理解更进一层了。这篇文章,我们将会对ack底层的delivery tag机制进行更加深入的分析,让大家理解的更加透彻一些。...转载 2019-11-06 17:51:58 · 228 阅读 · 0 评论 -
【Java进阶面试系列之七】如何保证消息中间件全链路数据100%不丢失(2)
1前情提示上一篇文章《互联网面试必杀:如何保证消息中间件全链路数据100%不丢失(1)》,我们初步介绍了之前制定的那些消息中间件数据不丢失的技术方案遗留的问题。一个最大的问题,就是生产者投递出去的消息,可能会丢失。丢失的原因有很多,比如消息在网络传输到一半的时候因为网络故障就丢了,或者是消息投递到MQ的内存时,MQ突发故障宕机导致消息就丢失了。针对这种生产者投递数据丢失的问题,Ra...转载 2019-11-06 16:44:31 · 198 阅读 · 0 评论 -
【Java进阶面试系列之六】如何保证消息中间件全链路数据100%不丢失(1)
原文地址:石杉的架构笔记1背景引入这篇文章,我们来聊聊在线上生产环境使用消息中间件技术的时候,从前到后的全链路到底如何保证数据不能丢失。这个问题,在互联网公司面试的时候高频出现,而且也是非常现实的生产环境问题。如果你的简历中写了自己熟悉MQ技术(RabbitMQ、RocketMQ、Kafka),而且在项目里有使用的经验,那么非常实际的一个生产环境问题就是:投递消息到MQ,然后从MQ...转载 2019-11-06 15:47:36 · 174 阅读 · 0 评论 -
【Java进阶面试系列之五】消息中间件集群崩溃,如何保证百万生产数据不丢失?
原文地址:石杉的架构笔记“上一篇讲消息中间件的文章《扎心!线上服务宕机时,如何保证数据100%不丢失?》,初步给大家介绍了一个在生产环境中可能遇到的问题,就是你的消费者服务可能会宕机,一旦宕机,你就需要考虑是否会导致没处理完的消息丢失。这篇文章,再给不太熟悉MQ技术的同学,介绍另外一个生产环境中可能会遇到的问题。目前为止,你的RabbitMQ部署在线上服务器了,对吧?然后订单服务和仓储...转载 2019-11-06 15:27:28 · 232 阅读 · 0 评论 -
【Java进阶面试系列之四】扎心!线上服务宕机时,如何保证数据100%不丢失?
原文地址:石杉的架构笔记上篇文章《同学,消息中间件在你们生产项目里如何落地使用的?》,我们用一个简单易懂的电商场景给大家引入说明了一个消息中间件的使用场景。同时,我们还基于RabbitMQ的HelloWorld级别的代码,给出了订单服务和仓储服务如何基于MQ中间件收发消息的示例。二、业务场景回顾这篇文章,我们来稍微深入探讨一些MQ中间件使用中的基础技术问题。首先回顾一下上篇文章...转载 2019-11-06 14:26:46 · 546 阅读 · 1 评论 -
【Java进阶面试系列之三】哥们,消息中间件在你们项目里是如何落地的?
原文地址:石杉的架构笔记之前给大家聊了一下,面试时如果遇到消息中间件这个话题,面试官上来可能问的两个问题:你们的系统架构中为什么要引入消息中间件? 系统架构中引入消息中间件有什么缺点?关于这两个问题的回答,可以参见之前的两篇文章:《哥们,你们的系统架构中为什么要引入消息中间件?》 《哥们,那你说说系统架构中引入消息中间件有什么缺点?》在问完这两个问题之后,不同风格的面试官可...转载 2019-11-06 12:00:29 · 133 阅读 · 0 评论 -
【Java进阶面试系列之二】:哥们,那你说说系统架构引入消息中间件有什么缺点?
原文地址:石杉的架构笔记一前情回顾上篇文章《哥们,你们的系统架构中为什么要引入消息中间件呢?》,给大家讲了讲消息中间件引入系统架构的作用,主要是解决哪些问题的。其比较常见的实践场景是:复杂系统的解耦 复杂链路的异步调用 瞬时高峰的削峰处理二正式开始这篇文章给大家讲讲,如果你在系统架构里引入了消息中间件之后,会有哪些缺点?1系统可用性降低首先是你的系统整体可用性绝对...转载 2019-11-06 11:39:27 · 202 阅读 · 0 评论 -
【Java进阶面试系列之一】哥们,你们的系统架构中为什么要引入消息中间件
原文地址石杉的架构笔记一你们公司生产环境用的是什么消息中间件? 这个首先你可以说下你们公司选用的是什么消息中间件,比如用的是RabbitMQ,然后可以初步给一些你对不同MQ中间件技术的选型分析。举个例子:比如说ActiveMQ是老牌的消息中间件,国内很多公司过去运用的还是非常广泛的,功能很强大。但是问题在于没法确认ActiveMQ可以支撑互联网公司的高并发、高负载以及高吞吐的...转载 2019-11-06 11:35:46 · 134 阅读 · 0 评论 -
ActiveMQ四主从环境容灾配置及消息持久化
环境为两台虚拟机分别为:192.168.10.60 192.168.10.78分别在两台虚拟机上安装activemq分别修改两个activeMQ的配置文件 activamq.xml 保持一致即可修改位置1默认使用kahadb持久化,大概的意思就是多个activeMQ指向一个共享文件,谁抢到谁为master这里我们使用mysql作为持久化crea...原创 2019-07-11 18:01:36 · 516 阅读 · 0 评论 -
activeMQ三(activemq和spring整合)
添加pom.xml <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.11.2</version> <原创 2018-09-25 21:03:54 · 131 阅读 · 0 评论 -
activeMQ二(测试两种模式queue,topic)
下载activeMq所依赖的jar包,本次使用5.11.2版本的jar包,有些版本可能会包含spring的部分方法,导致报错需要注意<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <v...原创 2018-09-20 22:18:59 · 5216 阅读 · 0 评论 -
activeMQ一(linux安装)
第一步: 把ActiveMQ 的压缩包上传到Linux系统。第二步:解压缩。第三步:启动。 使用bin目录下的activemq命令启动:[root@localhost bin]# ./activemq start关闭:[root@localhost bin]# ./activemq stop查看状态:[root@localhost bin]#...原创 2018-09-17 23:05:24 · 154 阅读 · 0 评论 -
RabbitMQ 流程和重要接口参数
基本流程:消息生产者创建连接连接到MabbitMQ1,创建连接工厂ConnectionFactory factory = new ConnectionFactory();2,设置MabbitMQ所在主机ip或者主机名factory.setHost("localhost");3,创建一个连接Connection connection = factory.newC...原创 2018-09-11 22:34:04 · 1768 阅读 · 0 评论 -
RabbitMQ (五)主题(Topic)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37706355上一篇博客中,我们进步改良了我们的日志系统。我们使用direct类型转发器,使得接收者有能力进行选择性的接收日志,,而非fanout那样,只能够无脑的转发,如果你还不了解:RabbitMQ (四) 路由选择 (Routing)。虽然使用direct类型改良了我...转载 2018-09-11 23:17:33 · 102 阅读 · 0 评论 -
RabbitMQ (四) 路由选择 (Routing)
上一篇博客我们建立了一个简单的日志系统,我们能够广播日志消息给所有你的接收者,如果你不了解,请查看:RabbitMQ (三) 发布/订阅。本篇博客我们准备给日志系统添加新的特性,让日志接收者能够订阅部分消息。例如,我们可以仅仅将致命的错误写入日志文件,然而仍然在控制面板上打印出所有的其他类型的日志消息。 1、绑定(Bindings)在上一篇博客中我们已经使用过绑定。类似下面的代码:c...转载 2018-09-11 23:08:48 · 183 阅读 · 0 评论 -
RabbitMQ (三) 发布/订阅
转发请标明出处:http://blog.csdn.net/lmj623565791/article/details/37657225本系列教程主要来自于官网入门教程的翻译,然后自己进行了部分的修改与实验,内容仅供参考。 上一篇博客中,我们实现了工作队列,并且我们的工作队列中的一个任务只会发给一个工作者,除非某个工作者未完成任务意外被杀死,会转发给另外的工作者,如果你还不了解:RabbitM...转载 2018-09-11 20:31:14 · 100 阅读 · 0 评论 -
RabbitMQ (二)工作队列
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37620057本系列教程主要来自于官网入门教程的翻译,然后自己进行了部分的修改与实验,内容仅供参考。上一篇博客中我们写了通过一个命名的队列发送和接收消息,如果你还不了解请点击:RabbitMQ 入门 Helloworld。这篇中我们将会创建一个工作队列用来在工作者(cons...转载 2018-09-11 17:32:17 · 104 阅读 · 0 评论 -
RabbitMQ 入门 Helloworld
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37607165本系列教程主要来自于官网入门教程的翻译,然后自己进行了部分的修改与实验,内容仅供参考。“Hello world” of RabbitMQ1、Windows下RabbitMQ的安装下载Erlang,地址:http://www.erlang.org/dow...转载 2018-09-11 15:29:21 · 124 阅读 · 0 评论