rocketmq python消息堆积怎么办_RocketMQ开源后支持事务消息吗?

下文为Apache RocketMQ中国社区发起人厉启鹏在“DataPipeline联合Apache RocketMQ举办的消息中间件Meetup”上的分享:

RocketMQ包括几部分,大家在GitHub上看到的是RocketMQ的一个核心,最基础的可能是 pub/sub 模型,可以发一些消息,支持顺序消息、事务消息、延时消息等。

在此基础上,还做了一些拓展。比如支持多语言的客户端,在2018年之前,RocketMQ只是Java,但在开源后收到很多来自社区的小伙伴,包括公司的请求,提到可能需要支持各种各样的客户端。

为此,在2018年9月我们开始和社区同学一起做这件事。多语言客户端总体进展比较顺利。除Java外,RocketMQ目前还支持C/C++,python,nodejs,go,php等客户端。

另外一部分是对接整个消息的上游生态,目前在数据源方面做了IoT Bridge,用来对接一些物联网设备,目前支持MQTT,后续我们会做一个扩展协议,不仅限于支撑MQTT协议。尤其在中国,各个行业,如电力、交通都具有自己的私有协议,这个协议扩展,可以让厂商有机会将其他信息集成起来。

IoT Bridge是一个可插拔,可动态扩缩容的组件,可根据是否需要IoT场景来决定启动与否。

现在RocketMQ正在做Streaming,还没有发布,后面计划在这块做些支持。这上面是一些API,主要支持大数据框架和RocketMQ的集成。

目前在RocketMQ的external仓库中已经有RocketMQ的Spark、Flink,包括Hadoop,HBase一些离线的数据分析平台和在线的数据分析平台的集成项目。

下图为RocketMQ在平安银行的应用情况:

第一个是在APP登录时,每个用户有许多信息,若加载这些信息需要通知很多中心。这时会将该ID通过RocketMQ下发到各个中心,各个中心会将数据推到APP中,APP会展示出来。

另外是关于工资理财,该业务指平安银行会代公司发放工资,在发完之后顺带做了一个业务:如果经过了用户的授权,可以顺便购买理财产品,假设每月有一万的工资薪水,如果想在每月花一千块钱购买基金,平安可以做这件事情。

其中有一块业务是通过RocketMQ来完成的。即银行在代发工资之后,会将该消息推送消息中心,消息中心会发短信通知用户。如果判断余额满足他们购买基金的条件,就会推送消息给基金中心,基金中心消费之后,再去购买理财产品,买完之后RocketMQ的信息会再次通知客户,大概是这样的过程。

此过程中涉及到了RocketMQ的几个能力:

第一顺序性、事务性,如果扣款之后没有购买基金,那肯定是有问题的。中间有两个操作需要保持数据一致。

另外是延时性,有些公司发工资的时间点与购买基金的时间点不一致,有可能发工资的时间点是不能购买基金的,这时就要延时消息。该条消息需要延时到可以购买基金的时候才发出去。

该场景充分体现了RocketMQ的能力,是真正的用于金融级的场景,比如延时、事务、顺序,包括堆积能力。比如,有时大公司正好是一个时间点将所有工资发放出来,这时可以通过堆积能力消费这些数据。

你可能感兴趣的:(rocketmq,python消息堆积怎么办)