kafka与rocketmq优劣势_kafka rocketmq rabbitmq

kafka与rocketmq优劣势_kafka rocketmq rabbitmq前言:公司采用了两种消息队列,一种是阿里云的rocketMQ,一种是kafka.分别用在了两种不同的场景.这里做个记录.rocketMQ使用场景:1.异步解耦:拿我们的项目举例,有一个场景,是需要pc端触发派单接口,然后发送给app端消息通知.此时要求能够做到每个app都能收到消息,但是又希望这个发送的过程尽量的短,也就是派单接口尽量快.那么这个派送的过程可以采用rocketM…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言:

公司采用了两种消息队列,一种是阿里云的rocketMQ,一种是kafka.分别用在了两种不同的场景.这里做个记录.

rocketMQ

使用场景:

1.异步解耦:

拿我们的项目举例,有一个场景,是需要pc端触发派单接口,然后发送给app端消息通知.此时要求能够做到每个app都能收到消息,但是又希望这个发送的过程尽量的短,也就是派单接口尽量快.那么这个派送的过程可以采用rocketMQ去进行异步处理这个过程.使这个接口能够尽快的给pc端的用户响应,已经派工成功的通知.这个场景就是异步解耦.派工的过程在消息系统中去通过rocketMQ去异步处理.这样起到解耦的作用.并且rocketMQ的广播模式能够保证每个app都能够消费到消息.

2.事务消息:

拿公司支付举例,微信支付的时候想要快速的回应微信的回调.以便让微信知道我们已经收到回调了.尽快改变支付状态就可以了.而我们这边需要再回调中做大量的逻辑处理,如修改订单状态,发送短信等操作.那么这些操作可能耗时很久,使用rocketMQ可以解决耗时久的问题.但是同时又产生一个问题,就是需要保证rocketMQ去修改订单状态的过程是事务性的.不然微信那边已经通知支付成功.但是我们这里状态却没变.这就会让客户认为我钱白付了,又会重复支付的问题.所以rocketMQ的事务消息能够做到事务性.也就是消息的回调处理,我们可以在消费者端去处理完修改订单状态逻辑之后,收到rocketMQ的一个回调通知,报告是否可以提交消息的事务.如果回调中说明修改订单状态有误.我就可以在回调中做消息的补偿处理(修改订单状态.)直到我们的状态更改成功.

3.削峰填谷

拿派单来说,一旦用户群体过多.比如我们公司会在年底某一天搞活动,派单越多,奖励越多,那么使用量上来之后,一定会产生高并发的问题,造成崩溃,影响用户体验的问题.此时我们可以采用mq去解决这种问题.mq最大的好处就是可以让消息不丢失.只要消息发出去了.就能保证消费者一定能够收到.

4.顺序收发

我们没用到,场景如一些游戏平台需要保证优先注册的五百名可以收到5000元奖励,那么要保证消息处理时的五百名一定是实际的顺序.才能做到公平公正.

5.定时消息和延时消息

顾名思义,rocketmq支持一种场景,就是你的某些逻辑需要在特定时间执行.比如我想三十分钟后执行我的逻辑(微信支付三十分钟后如果没有支付,我就停掉该订单的锁定).或者我想在每天早上9点发送短息给客户.都可以采用这种消息类型.

…..可以结合自身场景进行对比使用.

 

kafka

kafka不支持事务消息,支持消息顺序,但是一台代理宕机后,就会产生消息乱序.而rocketMQ不会出现消息乱序,不支持定时消息

使用场景:

1.收集日志.

我们公司系统的分布式日志收集系统,采用的是elk+kafka设计,可参考(六) elasticsearch手把手搭建生产环境ELK加kafka实现终极版日志收集系统.因为kafka每秒可以处理百万条10字节的消息,并且可以持久化数据都磁盘.kafka可以横向扩展,当你需要进行大量数据的持久化存储时,kafka是你的不二之选.可将Kafka视为一种专用于高性能,低延迟提交日志存储,复制和传播的专用分布式文件系统。

2.异步解耦.

同rocketMQ.解耦和生产者和消费者、缓存消息等

3.跟踪用户动作

对于我们的网站,我们想要知道网站哪些模块被用户点击浏览的的最多,进而分析用户的操作习惯.定位哪些模块的点击,浏览等.都可以进行消息的发布和订阅做到实时的监控.

4.分布式流平台

It is possible to do simple processing directly using the producer and consumer APIs. However for more complex transformations Kafka provides a fully integrated Streams API. This allows building applications that do non-trivial processing that compute aggregations off of streams or join streams together.

This facility helps solve the hard problems this type of application faces: handling out-of-order data, reprocessing input as code changes, performing stateful computations, etc.

Kafka中,流处理器是指从输入主题中获取连续数据流,对该输入进行一些处理并生成连续数据流以输出主题的任何东西

可以直接使用生产者和消费者API进行简单处理。但是,对于更复杂的转换,Kafka提供了完全集成的Streams API。这允许构建执行非重要处理的应用程序,这些应用程序计算流的聚合或将流连接在一起。

该功能有助于解决此类应用程序所面临的难题:处理无序数据,在代码更改时重新处理输入,执行状态计算等。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183765.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 读还是不读:that is the question

    点击上方☝,轻松关注!及时获取有趣有料的技术文章一个人只拥有此生此世是不够的,他还应该拥有诗意的世界。——王小波读书日今天是2020年的世界读书日,时间过的就是那么的快,不感概都不行!想…

  • python Pycharm 更换pip源为国内站点,加速访问

    python Pycharm 更换pip源为国内站点,加速访问Python里的pip是官方自带的源,国内使用pip安装的时候十分缓慢,所以最好是更换成中国国内的源地址。国内pip镜像源清华:https://pypi.tuna.tsinghua.edu.cn/simple豆瓣:http://pypi.douban.com/simple/阿里:http://mirrors.aliyun.com/pypi/simple/1、

  • idea配置lombok.jar(idea安装离线插件)

    项目中经常使用bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担。而使用了lombok则不一样,使用了lombok的注解(@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHas

  • DOCTYPE声明的作用及用法详解 – DOCTYPE HTML PUBLIC官方的定义「建议收藏」

    DOCTYPE声明的作用及用法详解 – DOCTYPE HTML PUBLIC官方的定义「建议收藏」四、DOCTYPEHTMLPUBLIC的官方定义  !DOCTYPE指定了HTML文档遵循的文档类型定义(DTD)。MicrosoftInternetExplorer6的新增内容。你可使用

  • 海思Hi3798处理器参数,Hi3798芯片详细信息介绍

    海思Hi3798处理器参数,Hi3798芯片详细信息介绍Hi3798CV200集成4核64位高性能CortexA53处理器、内置NEON加速引擎,强大的CPU处理能力可以满足各种差异化的业务需求。在码流兼容性、在线视频播放的流畅性、图像质量以及整机性能方面保持业界最好的用户体验。支持4K2KP60@10bit超高清视频解码和显示,支持H.265/HEVC、H.264/AVC、AVS+、MVC、MPEG2、MPEG4、VC-1、VP6、VP…

  • windows phone模拟器安卓版_安卓模拟器win7

    windows phone模拟器安卓版_安卓模拟器win7XNAGameStudio 游戏循环在这部分中您将重点两剩余部分的游戏 — — 重写Update 和 Draw 功能。有些大大可能看过相关微软的训练包,我这里主要是帮一些初学者。希望各位大大包含,毕竟文章发出来还是有工作量的。大家觉得有用就好,要是没有耽误时间给大家道个歉。(感谢http://winphone.us/)1.       打开 BackgroundScreen.c

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号