rabbitmqkafka对比_全场景

rabbitmqkafka对比_全场景这是陈东景于2021年8月29日下午16点原创作品,转载请标明出处!!!!在进行软件设计的过程中,如果软件设计业务上存在需要短时间内处理大批量的信息,又需要能保证软件能正常运行(保证软件的高可靠和高可用)。因为大批量(几十万,几百万级别的数据或者消息需要同一个时间处理),软件的IO过高,会导致软件运行阻塞或者消耗内存过高而崩溃,甚至是宕机。消息队列的概念被提了出来,通过缓存消息的模式,进行生产和消费。通过异步处理的方式,解耦这种短时间内出现大批量需要处理消息的场景。目前我们使用到的比…

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

Jetbrains全系列IDE稳定放心使用

这是陈东景于2021年8月29日下午16点原创作品,转载请标明出处!!!!

        在进行软件设计的过程中,如果软件设计业务上存在需要短时间内处理大批量的信息,又需要能保证软件能正常运行(保证软件的高可靠和高可用)。因为大批量(几十万,几百万级别的数据或者消息需要同一个时间处理),软件的IO过高,会导致软件运行阻塞或者消耗内存过高而崩溃,甚至是宕机。消息队列的概念被提了出来,通过缓存消息的模式,进行生产和消费。通过异步处理的方式,解耦这种短时间内出现大批量需要处理消息的场景。目前我们使用到的比较场景的消息队列有RabbitMq 、AtiveMQ、RocketMQ和Kafka。从单词字面上,我们可以看出前三者很明确的说他们是一种类型的MQ,而Kafka并没有说自己的是KafkaMQ。这里是非常有趣的事情。本贴今天就主要讲讲RabbitMq与Kafka的使用场景和区别。

那什么是RabbitMq和Kafka呢。

RabbitMq:RabbitMq是遵循AMQP协议,使用erlanng语言开发的一款用在实时的对可靠性要求比较高的消息传递上一种处理软件。从Rabbit上我们可以看出这是比如的手法,因为兔子一蹦一跳的,给人一种弹跳非常快的感觉。俗话说跑的比兔子还快。这个单词已经足够说明RabbitMq处理消息之快。

RabbitMq 的组成:交换器(exchange),队列(queue)、binding(绑定路由)、通道(Channels)、routing(路由)。

Kafka:kafka是Linkedin于2010年12月份开源的消息发布/订阅系统,主要用于处理活跃的流式数据,或者大数据量的数据处理上,横向扩展好,吞吐量大(几十万甚至百分级别)。常用日志采集,数据采集上。从kafka的特点上,kafka更像一套消息处理系统,或者是MQ的一种拓展。所以Kafka不叫KafkaMQ也是有道理的。而RabbitMq,更精确定义为消息中间件。这也是两者从定义上比较明显的区别。

Kafka的组成: Topic (主题)、Partition(分区) 、Offset(偏移) 、Replica(副本、)、 Message(消息)、  LogSegment(日志段 )Producer(消息生产者) Consumer(消息消费者 )

       单从他们的组成上我们就可以看出RabbitMq和Kafka的实现原理其实完全不同,差异巨大。但是之所以把他们放在一起讨论。他们的基本模式都是生产者/消费者的模式。其他的就是各自有各自的优点。所以RabbitMq和kafka的使用区别还是很大的。

下面讲讲他们的主要特性区别:

(1)RabbitMq的消息消费是无法保证有序的。而Kafka的实现原理可以保证消息消费有序。

(2)RabbitMq的消息被成功消费后,会被删除掉。而kafka是不管消费状态的。kakfa里的消息可以设置过期时间后删除。消息可以反复被消费。

(3)RabbitMq是不易做横向扩展的。而kafka可以做很好的横向扩展,性能处理上可达到百万级别。

(4)RabbitMq是 一个消费者同一时刻只能消费一个消息,消费失败就就丢回队列。而kafka,多个消费者可以消费同一个消息还可以重复消费,不做消费状态标志。

比较上了上面几点差异。我们可以看出kakfa更像一个数据库的功能。

这里就简单讲一下RabbitMq与Kafka的使用区别。这选择消息中间的业务场景上,希望对你们有参考作用。

 

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

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

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

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

(0)


相关推荐

  • Linux同步机制_进程同步机制

    Linux同步机制_进程同步机制Linux中的同步机制(一)–Futex引子在编译2.6内核的时候,你会在编译选项中看到[*]Enablefutexsupport这一项,上网查,有的资料会告诉你”不选这个内核不一定能正确的运行使用glibc的程序”,那futex是什么?和glibc又有什么关系呢?1.什么是FutexFutex是FastUserspacemuTexes的缩写,由Hubertus

  • 数据结构–循环队列[通俗易懂]

    数据结构–循环队列[通俗易懂]文章目录顺序存储结构循环队列代码实现注意顺序存储结构所谓顺序存储结构就是用一组地址连续的存储单元依次存放从队头到队尾的元素。声明两个指针rear、front分别用来指示队尾元素的下一位置和队头元素的位置。初始化时rear=front=0,插入新的元素时尾指针加1,元素出队列时队头指针加1。不过这样做有个问题,不论是入队还是出队,队头或队尾指针都是加1,这样做有一个问题,就是元素…

  • java在用SimpleDateFormat格式化时间时月份出现奇怪值[通俗易懂]

    这两天在做课设,关于图书管理系统的,其中在借书的记录中,时间记录的月份总是出现不正常的数值,大于12经常四十几五十几,经过对借书模块的跟踪,最后将错误定位到了时间格式化的这行代码SimpleDateFormat f = newSimpleDateFormat(“yyyy-mm-dd HH:mm:ss”);经过这行代码是要将格式化为常见的2013-07-11 09:07:20这种格式,结果经

  • 原码反码补码的转换规则_原码和补码的关系

    原码反码补码的转换规则_原码和补码的关系简要介绍计算机中原码、反码、补码三者的转换。主要考虑正数和负数在转换过程中的差异性。

  • mac 版本 idea 2021.4激活码免费【在线破解激活】[通俗易懂]

    mac 版本 idea 2021.4激活码免费【在线破解激活】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • java环境搭建[通俗易懂]

    java环境搭建[通俗易懂]java环境搭建环境搭建(JDK与eclipse下载安装)目标:掌握Java环境搭建java环境搭建环境搭建(JDK与eclipse下载安装)目标:掌握Java环境搭建一、JDK下载和安装二、eclipse下载和安装三、eclipse常用配置设置四、编写代码一、JDK下载和安装下载:访问官网跳转到官网下载页面选择对应版本点击下载安装:打开安装包,依次点击下一步按其流程安装即可。配置环境变量(1)此电脑右击属性–>找到高级系统设置–>找到

发表回复

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

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