
mq
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
用上 RocketMQ,系统性能提升了 10 倍!
我们的订单系统的逻辑架构图下:上述架构存在如下问题: 同步调用问题:用户支付完一笔订单,订单系统就要同步执行一系列接口调用,导致响应慢,用户体验差; 性能问题:瓶颈在数据库,无法应对“促销”之类的活动带来的峰值流量; 耦合问题:积分、促销、通知、物流应当与核心链路解耦; 大数据传输问题:外部系统会从订单数据库里查询订单数据,消耗系统本身的资源; 状态补偿问题:”中间状态“的订单通过批量扫描的方式进行状态补偿,效率非常低。 本章,我们来解决同步调用问题转载 2020-08-24 10:29:00 · 609 阅读 · 0 评论 -
Kafka 为什么那么快的 6 个原因!
无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能(好简单的样子),一是 Producer 生产的数据存到 broker,二是 Consumer 从 broker 读取数据。那 Kafka 的快也就体现在读写两个方面了,下面我们就聊聊 Kafka 快的原因。1. 利用 Partition 实现并行处理我们都知道 Kafka 是一个 Pub-Sub 的消息系统,无论是发布还是订阅,都要指定 Topic。Topic 只是一个逻辑的概念。每个 Topic 都包含一个或多个 Par转载 2020-08-12 20:42:58 · 4454 阅读 · 1 评论 -
消息队列面试连环炮,你抗得住吗?
作者:mousycoder来源:segmentfault.com/a/1190000021054802消息队列连环炮 项目里怎么样使用 MQ 的? 为什么要使用消息队列? 消息队列有什么优点和缺点? kafka,activemq,rabbitmq,rocketmq 都有什么去呗? 如何保证消息队列高可用? 如何保证消息不被重复消费? 如何保证消息的可靠性传输? 如何保证消息的顺序性? 写一个消息队列架构设计?.转载 2020-06-06 14:43:24 · 561 阅读 · 0 评论 -
RocketMQ削峰
MQ的主要特点为解耦、异步、削峰,该文章主要记录与分享个人在实际项目中的RocketMQ削峰用法,用于减少数据库压力的业务场景,其中RocketMQ的核心组件概念如下: Producer:生产发送消息 Broker:存储Producer发送过来的消息 Consumer:从Broker拉取消息并进行消费 NameServer:为Producer或Consumer路由到Broker 其中消费流程有以下几点是必须注意的: RocketMQ的Consumer获取消转载 2020-05-18 16:08:22 · 1442 阅读 · 0 评论 -
非常强悍的 RabbitMQ 总结,写得真好!
RabbitMQ是基于AMQP协议的,通过使用通用协议就可以做到在不同语言之间传递。AMQP协议核心概念 server:又称broker,接受客户端连接,实现AMQP实体服务。 connection:连接和具体broker网络连接。 channel:网络信道,几乎所有操作都在channel中进行,channel是消息读写的通道。客户端可以建立多个channel,每个channel表示一个会话任务。 message:消息,服务器和应用程序之间传递的数据,由pr.转载 2020-05-15 19:23:19 · 666 阅读 · 0 评论 -
如何保障消息中间件 100% 消息投递成功?如何保证消息幂等性?
一、前言我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等。引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用。如上图:(1)订单服务投递消息给MQ中间件(2)物流服务监听MQ中间件消息,从而进行消费我们这篇文章讨论一下,如何保障订单服务把消息成功投递给MQ中间件,以RabbitMQ举例。二、分析问题小伙伴们对此会有些...转载 2020-01-08 17:00:27 · 182 阅读 · 0 评论 -
今日头条在消息服务平台和容灾体系建设方面的实践与思考
本篇文章整理自今日头条的沈辉在 RocketMQ 开发者沙龙中的演讲,主要和大家分享一下,RocketMQ 在微服务架构下的实践和容灾体系建设。沈辉是今日头条的架构师,主要负责 RocketMQ 在头条的落地以及架构设计,参与消息系统的时间大概一年左右。以下是本次分享的议题: 今日头条的业务背景 为什么选择 RocketMQ RocketMQ 在头条的落地实践 ...转载 2019-11-04 09:23:24 · 208 阅读 · 1 评论 -
RabbitMQ和Kafka到底怎么选?
作者:haolujun来源:cnblogs.com/haolujun/p/9632835.html前言开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kafka,到底应该选哪个?RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。 brok...转载 2019-10-23 17:14:16 · 200 阅读 · 0 评论 -
通过源码告诉你,阿里的RocketMQ事务消息到底牛逼在哪?
文章转载自公众号心源意码,作者 寻筝“得益于MQ削峰填谷,系统解耦,操作异步等功能特性,在互联网行业,可以说有分布式服务的地方,MQ都往往不会缺席。”由阿里自研的RocketMQ更是经历了多年的双十一高并发挑战,其中4.3.0版本推出了事务消息的新特性本文对RocketMQ 4.5.0版本事务消息相关的源码跟踪介绍,通过阅读可以知道: 事务消息解决什么样的问题 ...转载 2019-08-15 13:24:59 · 203 阅读 · 0 评论 -
Kafka参数详解及调优--生产者
在实际的kafka开发中,我们会发现,无论是生产者还是消费者,都需要构建一个Properties对象,里面设置了很多参数。对于很多初学者来说,会看不懂这些参数分别代表什么含义。在本篇文章我们就来详细地了解一下这些参数的作用,并探讨下如何使用合理的配置去优化提高生产/消费效率kafka生产者参数Properties props = new Properties();props.pu...转载 2019-07-22 10:56:31 · 4379 阅读 · 0 评论 -
震惊!原来这才是Kafka的“真面目”!
出处:https://www.jianshu.com/p/d3e963ff8b70Kafka 是一个分布式消息队列,具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。Kafka 对外使用 Topic 的概念,生产者往 Topic 里写消息,消费者从中读消息。为了做到水平扩展,一个 T...转载 2019-05-21 10:12:57 · 494 阅读 · 0 评论 -
干货|kafka最佳实践
这里翻译一篇关于 Kafka 实践的文章,内容来自 DataWorks Summit/Hadoop Summit上一篇分享,PPT 参考https://www.slideshare.net/HadoopSummit/apache-kafka-best-practices里面讲述了很多关于 Kafka 配置、监控、优化的内容,绝对是在实践中总结出的精华,有很大的借鉴参考意义,本文主要是根据 P...转载 2019-03-12 09:49:45 · 2033 阅读 · 0 评论 -
震惊了!原来这才是 Kafka!(多图+深入)
简介kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。kafka对外使用topic的概念,生产者往topic里写消息,消费者从读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过增加partition的数量来进行横...转载 2019-03-15 09:49:21 · 1858 阅读 · 0 评论 -
QMQ顺序消息设计与实现
背景在MQ里,顺序消息的意思是消费消息的顺序和消息发送时(单机发送)的顺序保持一致。比如ProducerA按照顺序发送msga, msgb, msgc三条消息,那么consumer消费的时候也应该按照msga, msgb, msgc来消费。对于顺序消息,在我们实际使用中发现,大部分业务系统并不需要或者并不依赖MQ提供的顺序机制,这些业务本身往往就能处理无序的消息,比如很多系统中都有状态机,...转载 2019-03-13 22:25:34 · 1597 阅读 · 0 评论 -
Kafka 压测:3 台廉价服务器竟支撑 200 万 TPS
这篇文章是关于LinkedIn如何用kafka作为一个中央发布-订阅日志,在应用程序,流处理,hadoop数据提取之间集成数据。无论如何,kafka日志一个好处就是廉价。百万级别的TPS都不是很大的事情。因为日志比起数据库或者K-V存储是更简单的东西。我们的生产环境kafka集群每天每秒处理上千万读写请求,并且只是构建在一个非常普通的硬件上。接下来让我们做一些压测,看看kafka究竟多么牛逼...转载 2019-02-02 14:43:32 · 1061 阅读 · 1 评论 -
RabbitMQ安装
部署安装RabbitMQ前,先了解下基本概念:(RabbitMQ+Python入门经典] 兔子和兔子窝)RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专...转载 2018-07-31 10:33:07 · 1124 阅读 · 0 评论 -
Docker实战:Docker安装部署RabbitMQ
使用Docker安装部署RabbitMQ1、docker search rabbitmq:management2、docker pull rabbitmq:management注意:如果docker pull rabbitmq 后面不带management,启动rabbitmq后是无法打开管理界面的,所以我们要下载带management插件的rabbitmq.3、开始创建r...转载 2018-07-31 10:58:10 · 672 阅读 · 1 评论 -
搭建rabbitmq的docker集群
环境:三个rabbitmq节点,加一个haproxy做前端确保三台服务器都可以按主机名找到对方(/etc/hosts或dns) node1,node2,node3分别执行:docker run -d --net host --name rabbitmq -e RABBITMQ_ERLANG_COOKIE='IEWIRJDIS8WJDUU2WSW' $REGISTRY_IP:50...转载 2018-07-31 11:13:19 · 331 阅读 · 0 评论 -
消息队列设计的精髓基本都藏在本文里了
当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你需要思考和设计的重要方面。过程中我们会参考这些成熟消息队列的很多重要思想。本文首先会阐述什么时候你需要一个消息队列,然后以Push模型为主,从零开始分...转载 2016-07-20 11:37:23 · 14394 阅读 · 6 评论 -
Spring Boot中使用RabbitMQ
很久没有写Spring Boot的内容了,正好最近在写Spring Cloud Bus的内容,因为内容会有一些相关性,所以先补一篇关于AMQP的整合。Message Broker与AMQP简介Message Broker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景:消息路由到一个或多个目的地 消息转化为其他的表现方式 执行消息的聚集、消息的分解,并将结果发...转载 2017-02-28 19:19:06 · 631 阅读 · 0 评论 -
SpringBoot应用之消息队列rabbitmq
序本文主要讲如何在Spring Boot里头使用rabbitmq进行消息收发。准备rabbitmq集群具体查看docker搭建rabbitmq集群这篇文章。新建项目配置项#http://segmentfault.com/a/1190000004309900spring.rabbitmq.host=192.168.99.100spring.rabbitmq.port...转载 2018-01-04 13:52:11 · 1323 阅读 · 0 评论 -
消息中间件选型分析 —— 从 Kafka 与 RabbitMQ 的对比来看全局
一、前言 二、各类消息队列简述 三、选型要点概述 四、消息中间件选型误区探讨 一、前言消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中...转载 2018-10-22 11:22:19 · 429 阅读 · 0 评论 -
Spring Cloud构建微服务架构(七)消息总线(续:Kafka)
Spring Cloud Bus除了支持RabbitMQ的自动化配置之外,还支持现在被广泛应用的Kafka。在本文中,我们将搭建一个Kafka的本地环境,并通过它来尝试使用Spring Cloud Bus对Kafka的支持,实现消息总线的功能。由于本文会以之前Rabbit的实现作为基础来修改,所以先阅读《Spring Cloud构建微服务架构(七)消息总线》有助于理解本文。Kafka简介K...转载 2017-03-04 09:06:23 · 3152 阅读 · 0 评论 -
分布式之消息队列复习精讲
引言为什么写这篇文章?博主有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。 小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点...转载 2018-11-09 10:06:02 · 257 阅读 · 0 评论 -
消息队列常见的几种使用场景介绍!
一、简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。 二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景。1、异步处理...转载 2018-11-09 09:45:39 · 323 阅读 · 0 评论 -
RabbitMQ 和 Kafka 到底怎么选?
前言开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措。对于RabbitMQ和Kafka,到底应该选哪个? RabbitMQ架构RabbitMQ是一个分布式系统,这里面有几个抽象概念。 broker:每个节点运行的服务程序,功能为维护该节点的队列的增删以及转发队列操作请求。 master...转载 2018-11-12 10:59:20 · 651 阅读 · 0 评论 -
分布式系统与消息的投递
消息是一个非常有趣的概念,它是由来源发出一个离散的通信单元,被发送给一个或者一群接受者,无论是单体服务还是分布式系统中都有消息的概念,只是这两种系统中传输消息的通道方法或者通道不同;单体服务中的消息往往可以通过 IO、进程间通信、方法调用的方式进行通信,而分布式系统中的远程调用就需要通过网络,使用 UDP 或者 TCP 等协议进行传输。communication-reliability然而网络...转载 2019-01-26 17:03:30 · 377 阅读 · 0 评论 -
干货|为什么Kafka不支持读写分离
在 Kafka 中,生产者写入消息、消费者读取消息的操作都是与 leader 副本进行交互的,从 而实现的是一种主写主读的生产消费模型。数据库、Redis 等都具备主写主读的功能,与此同时还支持主写从读的功能,主写从读也就是读写分离,为了与主写主读对应,这里就以主写从读来称呼。Kafka 并不支持主写从读,这是为什么呢?从代码层面上来说,虽然增加了代码复杂度,但在 Kafka 中这种功能完全可...转载 2019-02-27 17:34:15 · 4321 阅读 · 1 评论 -
[RabbitMQ+Python入门经典] 兔子和兔子窝
RabbitMQ作为一个工业级的消息队列服务器,在其客户端手册列表的Python段当中推荐了一篇blog,作为RabbitMQ+Python的入门手册再合适不过了。不过,正如其标题Rabbit and Warrens(兔子和养兔场)一样,这篇英文写的相当俏皮,以至于对于我等非英文读者来说不像一般的技术文档那么好懂,所以,翻译一下吧。翻译过了,希望其他人可以少用一些时间。翻译水平有限,不可能像原文一...转载 2018-07-31 09:52:18 · 556 阅读 · 0 评论