一、前言
以前小编也做过关于秒杀的技术,就是使用悲观锁对DAO进行操作,通过加锁使得线程单一。
但是上亿条数据访问数据库也是对数据有很大的压力的。
所以我们可以在DAO和数据库之间加入一个MQ,
他的承载数据的能力非常强,有什么就直接向这个里面装就可以了。
然后他再负责向数据库传递消息。 数据库再进行操作,达到了数据库解耦。
但是为什么要选择RocketMQ呢?在众多的mq中,他有什么突出的优点呢?
二、说说现在主流的MQ
MQ,消息队列,Message Queue。
在主流的MQ有很多,比如ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等,
下面是小编在网上找到的对比的情况:
RocketMQ : java 、开源、支持事务、集群、负载均衡;
关于为什么使用RocketMQ?
RocketMQ是一款分布式、队列模型 的消息中间件,是由阿里巴巴设计的,具有以下特点:
1)、支持严格的 【消息顺序】
2)、支持Topic与Queue两种模式
3)、亿级【消息堆积】能力
4)、比较友好的【分布式特性】
5)、同时支持【Push与Pull】方式消费消息
6)、历经多次天猫双十一海量消息考验
7)、RocketMQ是纯java编写,基于通信框架Netty。
其实小编就冲着RocketMQ历经多次天猫双十一海量消息考验,就感觉应该选择他了,
再加上有亿级消息堆积能力,这么强大的一个部件,一个新生的黑马!值得大家发现。
三、专访RocketMQ联合创始人
2012年,阿里巴巴开源其自研的第三代分布式消息中间件——RocketMQ。经过几年的技术打磨,
阿里称基于RocketMQ技术,目前双十一当天消息容量可达到万亿级。
2016年11月,阿里将RocketMQ捐献给Apache软件基金会,正式成为孵化项目。
阿里称会将其打造成顶级项目。这是阿里迈出的一大步,
因为加入到开源软件基金会需要经过评审方的考核与观察。
坦率而言,业界还对国人的代码开源参与度仍保持着刻板印象;
而Apache基金会中的342个项目中,暂时还只有Kylin、CarbonData、Eagle 和 RocketMQ 共计四个中国技术人主导的项目。
2017年2月20日,RocketMQ正式发布4.0版本,专家称新版本适用于电商领域,金融领域,大数据领域,兼有物联网领域的编程模型。
经历双11洗礼的英雄
在备战2016年双十一时,团队重点做了两件事情,优化慢请求与统一存储引擎。
优化慢请求:这里主要是解决在海量高并发场景下降低慢请求对整个集群带来的抖动,毛刺问题。
这是一个极具挑战的技术活,团队同学经过长达1个多月的跟进调优,从双十一的复盘情况来看,
99.996%的延迟落在了10ms以内,而99.6%的延迟在1ms以内。优
化主要集中在RocketMQ存储层算法优化、JVM与操作系统调优。
统一存储引擎:主要解决的消息引擎的高可用,成本问题。
在多代消息引擎共存的前提下,我们对Notify的存储模块进行了全面移植与替换。
RocketMQ天生为金融、互联网领域而生,追求高可靠、高可用、高并发、低延迟,是一个阿里巴巴由内而外成功孕育的典范,
除了阿里集团上千个应用外,根据我们不完全统计,国内至少有上百家单位、科研教育机构在使用。
四、小结
通过这次的总结分析也更加了解了为什么要使用RocketMQ,他高可靠,高并发,低延迟,基本O丢失。所以非常值得学习。