首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

干货 | QMQ在携程的落地实践

与业界众多出名的消息队列(Kafka、RocketMQ、Pulsar等)一样,QMQ也走上了基于文件存储的分布式消息系统自研之路(详细设计请关注QMQ开源:https://github.com/qunarcorp.../qmq)。...后文的介绍, QMQ均指基于文件存储的版本。 在携程落地的过程中,我们主要和两类问题打交道:网络和磁盘IO。...在有一次QMQ单边机房演练中(关闭单边机房的QMQ服务)就触发了上述场景。 ?...QMQ的作者刀刀给出了一种解决方案:如何用不到两千块大幅度提升QMQ性能,即尝试对消息文件进行排序,能缓解堆积消息拉取对系统带来的冲击。本文不做过多介绍,感兴趣的同学可以跳转至刀刀的文章阅读。

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

深度剖析如何实现事务消息

在业界中有事务消息功能比较有代表性的就是阿里开源的RocketMQ和去哪儿开源的QMQ,他们两个消息队列都实现了事务消息功能,但是实现的方式却各有不同,接下来也会分别剖析这两个消息队列是如何实现事务消息...那么怎么去接下来讲一下QMQ的事务消息的解决方案,看看这种方案能否解决我们所说的这种问题呢? 3....QMQ事务消息 QMQ的事务消息没有RocketMQ那么的复杂,对于消息中间件的本身改造是很小的,其依赖了数据库自身的本地事务,比如一个创建订单,需要发送两种消息,分别是A和B,那么有如下的伪代码:...改造成本,只需要改造一次Client,在QMQ中重写了spring的TransactionSynchronization,可以直接把代码简化成如下面所示: begin transaction; createOrder...事务消息带来的问题基本可以解决,但是其同样也有缺点,因为其引入了额外的数据库写,如果事务消息较多,那么就会多出很多写数据库的操作,对于响应时间比较敏感的服务需要仔细考虑 4.总结 介绍了两种事务消息,对于我个人而言,QMQ

51230

干货 | 携程国际业务动态实时标签处理平台实践

基于以上这些问题,新系统希望在数据处理过程中能提升数据处理的时效性同时满足业务灵活性的要求,对于数据处理逻辑,数据更新逻辑,可以通过系统动态配置规则的方式来消费消息数据(Kafka或者QMQ)动态更新标签...为了解决以上问题,我们设计开发了一套“实时动态标签处理系统”,业务方只需要按照基本算子规则配置提交任务,系统就会自动解释执行规则,按照配置要求执行数据处理操作,目前支持的基本算子有Stream(流式数据接入目前支持QMQ...为了解决实时流式数据处理,我们引入了类似于Kappa架构的数据处理方式,做了一些调整,采用主动Push方式,因为这个场景的数据主要是应用于Push/EDM等主动触达的场景,结果数据不需要落地,我们直接通过QMQ...关于规则引擎所涉及的一些基本概念描述如下: Stream 消息源接入,主要是Kafka和QMQ,结构化Json数据,所有的接入消息源的数据结构、数据类型、来源都需要录入管理,借用公司的Kafka和QMQ...Sink 计算结果输出,支持配置化方式,目前支持消息队列模式(QMQ),数据库(TiDB、MySQL等等)。

70120

干货分享丨携程国际业务动态实时标签处理平台实践

基于以上这些问题,新系统希望在数据处理过程中能提升数据处理的时效性同时满足业务灵活性的要求,对于数据处理逻辑,数据更新逻辑,可以通过系统动态配置规则的方式来消费消息数据(Kafka 或者 QMQ)动态更新标签...,我们设计开发了一套“实时动态标签处理系统”,业务方只需要按照基本算子规则配置提交任务,系统就会自动解释执行规则,按照配置要求执行数据处理操作,目前支持的基本算子有Stream(流式数据接入目前支持 QMQ...关于规则引擎所涉及的一些基本概念描述如下: Stream 消息源接入,主要是 Kafka 和 QMQ,结构化 Json 数据,所有的接入消息源的数据结构、数据类型、来源都需要录入管理,借用公司的 Kafka...和 QMQ 消息注册管理机制,实现全流程打通。...Sink 计算结果输出,支持配置化方式,目前支持消息队列模式(QMQ),数据库(TiDB、MySQL 等等)。

68811

干货 | 携程最终一致和强一致性缓存实践

对于MQ我们使用携程开源消息中间件QMQ 和 Kafka,在公司内部QMQ和Kafka也做了异地机房的互通。...单一触发源有可能出现问题,比如消息类的触发依赖业务系统、中间件canel、中间件QMQ和Kafka,扫表任务依赖分布式调度平台、MySQL等。...(2)QMQ和Kafka互备 缓存更新流程通过MQ来驱动,虽然公司的MQ中间件服务由专人维护,但是万一出现问题长时间不能恢复,对我们来说将是致命的。...所以我们决定同时采用Kafka和QMQ两种中间件来作为互备方案。默认情况下对于全表扫描任务和binlog消费这类大批量消息场景使用Kafka来驱动,而其他场景通过QMQ来驱动。...所有的场景都可以通过开关来控制走Kafka或者QMQ。目前该功能可通过配置管理平台来实现快速切换。

1.3K31
领券