MQ:RocketMQ

RocketMQ由阿里巴巴自主研发,具有单机亿级消息堆积能力,并支持严格的顺序消息。2011年开始应用于阿里巴巴内部,2016年双十一期间达到了万亿级消息量。RocketMQ具备低延迟、高可靠的特点,支持多种消息模型,适用于大规模离线计算。

MQ:RocketMQ

阿里开源消息中间件RocketMQ的前世今生

http://jm.taobao.org/2016/11/29/apache-rocketmq-history/


今天,特别邀请到阿里巴巴中间件(Aliware)技术研究员蒋江伟(花名:小邪)跟大家分享一下RocketMQ开源的前世今生。

Q:能否简单介绍下RocketMQ的历史

A:早在2007年,阿里巴巴中间件团队就自主研发了Notify消息中间件,大范围应用于生产系统。为满足线上应用海量堆积的需求。2011年阿里巴巴中间件团队自主研发了RocketMQ消息中间件,具有单机亿级消息堆积能力,且能支持严格的消息顺序。截止今年,阿里巴巴线上所有消息全部通过RocketMQ来转发投递,2016年双十一当天更是达到万亿级消息量,峰值TPS几千万,创造了国内乃至世界上最大的消息流转记录。

Q:RocketMQ有哪些特性呢?

A:RocketMQ是一个低延迟,高可靠的分布式消息中间件。它被设计为采用长轮询拉的模式,支持传统消息领域的点对点和发布订阅模型,单主题下支持千万级别的消息堆积,对于离线计算具有很好的削峰填谷作用。对于企业级应用,它能很好的起到异步解耦的作用。作为数据通道,RocketMQ在事务数据复制(全局有序),实时计算方面也具备高效的吞吐,在今年双十一阿里巴巴数据应用场景里,RocketMQ端到端的平均延迟落在了100ms以内。

Q:听说RocketMQ还有个商用版本?能否简单介绍下?

A:RocketMQ的商业版本是阿里云的消息队列MQ(点击阅读原文可直达Aliware介绍页面),两个产品都是由阿里中间件消息团队出品。商业版MQ在支持TCP接入基础上,还支持HTTP和物联网MQTT协议接入,功能方面增强了运维管控方面的能力,包括可视化的消息轨迹、资源报表统计以及监控报警等;商业版MQ公有云上本身具备多机房部署同城高可用容灾特性,保证企业级高可靠高性能的同时,大大降低了企业客户运维成本。

Q:同时拥有商用版和开源版,中间件团队将如何维护呢?

A:开源和商业的协同效应,如何发挥到极致?这是一个世界性难题。以开源为核,商业为辅的形式,是我们目前得出的一个比较靠谱的可行之路。换句话说,我们会开源分布式消息所有核心的特性,而在商业层面,尤其是云平台的搭建上面,将运维管控,安全授权,深度培训等纳入商业重中之重。按照社区,尤其是Apache开源社区的运营理念,在社区建设,文档编纂,研讨交流,人才引进等方面加大投入。

Q:阿里为什么要做开源?

A:在阿里建立之初,正是基于开源软件,将整个电商平台的原型快速搭建起来的。不仅如此,即便这么多年过去了,虽然阿里的基础平台还在不断演进,但仍旧有开源软件的身影。我们感恩社区,也希望将这些久经线上验证的臻品拿出来,分享出来,回馈社区,让更多的人收益。我们希望更多的人能够参与进来,在这样一个开放透明,全球协作的环境下,相信阿里巴巴在开源领域会取得更多的成绩。

Q:还有什么想对大家说的?

A:阿里巴巴将RocketMQ捐赠给Apache只是第一步。如何将RocketMQ打造成为Apache Top Level Project,如何开源与商业化产品共赢,我们非常需要有志之士加入,欢迎发送简历到shijia.wxr@taobao.com

阿里巴巴积极拥抱开源事业

除了此次捐赠的RocketMQ外,其实阿里巴巴集团一直积极拥抱开源事业,无论是开源软件的应用、回馈以至自研技术的开源都非常活跃。

目前维护的热门开源项目超过 115 个。

捐赠的开源项目 JStorm 成为 ApacheStorm 里的子项目。

RocketMQ 已经被1000多家公司使用。

Tengine 现在是九大最流行的 WebServer 之一。

不久之前,还开源了AliSQL、跨平台开发框架 Weex。

阿里巴巴是 FSF、Apache、Linux 等基金会成员, Xen 顾问委员会成员。

阿里云还是MySQL开源分支 WebScaleSQL 的第五位发起成员。该分支是由 Facebook、 Google、LinkedIn 和 Twitter 四家互联网公司的数据库团队发起的以适应互联网场景为目标的MySQL分支。


在Maven构建过程中,若出现`Could not resolve dependencies for project`错误,并且涉及`rocketmq-spring-boot-starter`和`grpc-core`的版本冲突,通常表明项目依赖解析失败,可能是由于依赖版本不兼容、依赖未正确发布至仓库,或者本地/远程仓库缓存问题所致。 以下是对该问题的详细分析和解决方案: ### 1. 检查依赖版本兼容性 `rocketmq-spring-boot-starter`可能依赖特定版本的gRPC库(如`grpc-core`),而项目中显式声明的gRPC版本与其不兼容,导致版本冲突。应查阅`rocketmq-spring-boot-starter`官方文档或Maven Central,确认其推荐的gRPC版本,并在`pom.xml`中统一指定该版本。 例如,若发现`rocketmq-spring-boot-starter`依赖`grpc-core:1.26.0`,则应在`dependencyManagement`中显式声明该版本: ```xml <dependencyManagement> <dependencies> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-bom</artifactId> <version>1.26.0</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement> ``` ### 2. 清理本地Maven缓存 如果本地仓库中存在损坏或旧版本的依赖包,可能导致解析失败。可通过删除本地Maven仓库中的相关目录强制重新下载依赖。例如: ```bash rm -rf ~/.m2/repository/io/grpc rm -rf ~/.m2/repository/org/apache/rocketmq ``` 然后执行以下命令重新构建项目: ```bash mvn clean install -U ``` 其中,`-U`参数用于强制更新快照依赖。 ### 3. 配置正确的Maven仓库 确保`pom.xml`或`settings.xml`中配置的仓库地址正确且可访问,尤其是使用私有仓库(如Nexus)时。例如在`pom.xml`中配置仓库: ```xml <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> <repository> <id>alimaven</id> <url>https://maven.aliyun.com/repository/public</url> </repository> </repositories> ``` 如果使用Nexus私有仓库,确保`settings.xml`中配置了正确的认证信息和镜像设置。 ### 4. 使用Maven Exclusion排除冲突依赖 如果`rocketmq-spring-boot-starter`引入了不兼容的gRPC版本,可以通过`<exclusions>`排除其自带的gRPC依赖,并显式声明兼容版本。例如: ```xml <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.2.3</version> <exclusions> <exclusion> <groupId>io.grpc</groupId> <artifactId>grpc-netty</artifactId> </exclusion> </exclusions> </dependency> ``` ### 5. 检查网络和代理设置 在内网开发环境中,需确保Maven能够通过代理访问外部仓库,或已将所需依赖上传至内网Nexus仓库。在`settings.xml`中配置代理: ```xml <proxies> <proxy> <id>example-proxy</id> <active>true</active> <protocol>http</protocol> <host>proxy.example.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy> </proxies> ``` ### 6. 使用Maven命令行调试 使用`-X`参数启用调试日志,查看依赖解析的详细过程,有助于定位问题根源: ```bash mvn clean install -X ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值