RocketMQ

MQ系列:消息中间件执行原理

1 关于消息中间件 1.1 什么是消息中间件? 消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。 消息中间件也可以称消息队列(Message Queue / MQ),用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可 ... »

面渣逆袭:RocketMQ二十三问

基础 1.为什么要使用消息队列呢? 消息队列主要有三大用途,我们拿一个电商系统的下单举例: 解耦:引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据……引入消息队列之后,可以把订单完成的消息丢进队列里,下游服务自己去调用就行了,这样就完成了订单服务和其它服务的解 ... »

three-fighter 面试

深入剖析 RocketMQ 源码 - 负载均衡机制

RocketMQ作为一款流行的消息中间件在各大互联网应用广泛,本文主要分析RocketMq在消息生产和消费过程中的负载均衡机制,并创新提出消费端负载均衡策略的改写以实现固定IP消费的可能。 ... »

vivotech

从源码分析RocketMq消息的存储原理

rocketmq在存储消息的时候,最终是通过mmap映射成磁盘文件进行存储的,本文就消息的存储流程作一个整理。源码版本是4.9.2 主要的存储组件有如下4个: CommitLog:存储的业务层,接收“保存消息”的请求 MappedFile:存储的最底层对象,一个MappedFile对象就对应了一个实 ... »

tera mq

vivo鲁班RocketMQ平台的消息灰度方案

一、方案背景 RocketMQ(以下简称MQ)作为消息中间件在事务管理,异步解耦,削峰填谷,数据同步等应用场景中有着广泛使用。当业务系统进行灰度发布时,Dubbo与HTTP的调用可以基于业界通用的灰度方式在我们的微服务治理与网关平台来实现,但MQ已有的灰度方案都不能完全解决消息的隔离与切换衔接问题, ... »

vivotech

RocketMQ的使用

1 在resources目录下创建config目录,新建文件rocketmq.properties文件 # 指定namesrv地址 suning.rocketmq.namesrvAddr=localhost:9876 #生产者group名称 suning.rocketmq.producerGroupName=user_group #事务生产者group名称 suning.rocketmq.t »

Rocketmq同步发送消息

package com.bfxy.rocketmq.quickstart; import org.apache.rocketmq.client.exception.MQBrokerException;import org.apache.rocketmq.client.exception.MQClientException;import org.apache.rocketmq.client.prod »

RocketMq安装踩坑:docker0网桥冲突

最近项目用到了RocketMq,需要在Cento7系统上搭建一套集群环境用于测试。整个的环境搭建过程中,我遇到了一个比较初级的问题:启动RocketMq的broker失败。   问题经过 首先我看了下broker启动时候打印的信息,里面的IP引起了我的注意,我感觉这个IP的网段比较陌生,如图: 执行:ip a,查询机器的所有网卡信息。   原来这个ip是docker0的ip,也就是说在启动bro »

RocketMQ的可靠性传输

引用消息队列时,如何保证消息的可靠传输是一大难点,本文推荐了一个尽最大可能去避免消息丢失的解决方案。 ... »

zhaorongbiao

RocketMQ的可靠性传输

引用消息队列时,如何保证消息的可靠传输是一大难点,本文推荐了一个尽最大可能去避免消息丢失的解决方案。 ... »

zhaorongbiao

rocketmq生产者部署的机器注意事项

报错: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'warningProducer': Invocation of init method failed; nested exception is java.lang.ExceptionInInitializerErr »

基于 RocketMQ 的同城双活架构在美菜网的挑战与实践

本文整理自李样兵在北京站 RocketMQ meetup分享美菜网使用 RocketMQ 过程中的一些心得和经验,偏重于实践。 嘉宾李样兵,现就职于美菜网基础服务平台组,负责 MQ ,配置中心和任务调度等基础组件开发工作。 今天主要从三个方面进行分享: 美菜网消息队列的历史 基于 RocketMQ 我们做了那些事情 同城双活的选型和思考 美菜网消息队列的历史 美菜网历史上是多套 MQ 并存, »

RocketMQ源码分析之Producer启动(四)

我们主要分析图中红色矩形区域,最上面RemotingClient属于RocketMQ-remoting内容,以后再分析。从图中也可以清晰的看到RocketMQ底层通信协议使用了Netty(netty-all-4.0.42.Final版本)。 言归正传,红色矩形局域里面大家看调用关系就可以看出来,MQClientInstance是非常核心的一个类,它起着承上启下的衔接作用。MQClientInsta »

云栖掠影|回首开源十年,RocketMQ 焕发新生

作者|白玙 开源正在以开放(Openness)、分享(Sharing)、对等(Peering)、协作(Collaboration)以及全球化运作(Acting Globally)的方式,打破传统组织架构与商业模式,工业经济时代的运转逻辑被逐渐颠覆重构,并深刻影响到从业者思维模式、企业商业行为、组织治理方式。 着眼于中国开源领域,在过去十年迎来了飞速发展。据昨日云栖大会发布的《中国十年开源洞察报告》 »

【转载】RocketMQ与Kafka对比(18项差异)

转载自 https://github.com/alibaba/RocketMQ/wiki/rmq_vs_kafka RocketMQ与Kafka对比(18项差异) 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间件,淘宝中间件 »

深入剖析RocketMQ源码-NameServer

1.1 逻辑部署图 (图片来自网络) 1.2 核心组件说明 通过上图可以看到,RocketMQ的核心组件主要包括4个,分别是NameServer、Broker、Producer和Consumer,下面我们先依次简单说明下这四个核心组件: NameServer:NameServer充当路由信息的提供者。生产者或消费者能够通过NameServer查找各Topic相应的Broker IP列表。多个Na »

rocketmq常见问题

rocketmq常见问题 以下是关于RocketMQ项目的常见问题 使用 「新创建的Consumer ID从哪里开始消费消息?」 1)如果发送的消息在三天之内,那么消费者会从服务器中保存的第一条消息开始消费。 2)如果发送的消息已经超过三天,则消费者会从服务器中的最新消息开始消费,也就是从队列的尾部 ... »

RocketMQ高可用集群

集群支持:   RocketMQ天生对集群的支持非常友好 单Master:   优点:除了配置简单没什么优点   缺点:不可靠,该机器重启或宕机,将导致整个服务不可用 多Master:   优点:配置简单,性能最高   缺点:可能会有少量消息丢失(配置相关),单台机器重启或宕机期间,该机器下未被消费的消息在机器恢复前不可订阅,影响消息实时性 多Master多Slave异步模式:   每个Maste »

RocketMQ之四:RocketMq事务消息

事务消息 通过消息的异步事务,可以保证本地事务和消息发送同时执行成功或失败,从而保证了数据的最终一致性。 发送端执行如下几步: 发送prepare消息,该消息对Consumer不可见 执行本地事务(如 update DB) 若本地事务执行成功,则向MQ提交消息确认发送指令;若本地事务执行失败,则向MQ发送取消指令(取消prepared消息) 若MQ长时间未收到确认发送或取消发送的指令,则向 »

RocketMQ的技术亮点

高性能 存储原理 零拷贝 数据结构与存储逻辑 刷盘策略 长轮询PULL RocketMQ的Consumer都是从Broker拉消息来消费,但是为了能做到实时收消息,RocketMQ使用长轮询方式,可以保证消息实时性同Push方式一致。 这里需要注意的是,长轮询与长连接是两个不同的概念。长轮询表示,当客户端的一个请求达到服务端时,若此时没有可供返回的数据,那么这个连接会一直保持,当有可供返回的数据 »