RabbitMQ和Kafka对比以及场景使用说明

RabbitMQ和Kafka对比以及场景使用说明  我目前的项目最后使用的是RabbitMQ,这里依然是结合网上大神们的优秀博客,对kafka和rabbitmq进行简单的比对。最后附上参考博客。  1.架构模型  rabbitmq    RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过…

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

Jetbrains全系列IDE稳定放心使用

    我目前的项目最后使用的是RabbitMQ,这里依然是结合网上大神们的优秀博客,对kafka和rabbitmq进行简单的比对。最后附上参考博客。

    1.架构模型

    rabbitmq

    RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer端,consumer循环从输入流读取数据)。rabbitMQ以broker为中心;

    Kafka

    kafka遵从一般的MQ结构,producer,broker,consumer,以consumer为中心,消息的消费信息保存的客户端consumer上,consumer根据消费的点,从broker上批量pull数据

     2.消息确认机制

    rabbitmq

    具有生产者confirm机制以及消费者的消息应答机制ack。

    Kafka

    不具有应答机制。

    3.消息的顺序

    rabbitmq

    在一个队列里面,rabbitmq的消息是严格顺序的,按照先进先出。

    kafka

    在同一个partition中消息是有序的,但是生产者put到Kafka中数据会分布在不同的partition中,所有总体是无序的。

    4.吞吐量

    rabbitmq

    根据测试,RabbitMQ在不使用ACK机制的,Msg大小为1K的情况下,QPS可达6W+。再双方ACK机制,Msg大小为1K的情况下,QPS瞬间降到了1W+。

    Kafka

    Kafka具有巨大的吞吐量,数据的存储以及获取是本地磁盘的批量处理,可以达到百万/s。

    5.可靠性

    rabbitmq

    RabbitMQ使用了MirrorQueue的机制,也可以做到多个机器进行热备。

     Kafka

    Kafka的broker支持主备模式。

    7.持久化

    rabbitmq

    支持

    kafka

    Kafka 是一个持久性消息存储。

     

    对于他们的使用场景如下

    rabbitmq       

1.RabbitMQ的消息应当尽可能的小,并且只用来处理实时且要高可靠性的消息。

2.消费者和生产者的能力尽量对等,否则消息堆积会严重影响RabbitMQ的性能。

3.集群部署,使用热备,保证消息的可靠性。

    kafka

1.应当有一个非常好的运维监控系统,不单单要监控Kafka本身,还要监控Zookeeper。(kafka强烈的依赖于zookeeper,如果zookeeper挂掉了,那么Kafka也不行了)

2.对消息顺序不依赖,且不是那么实时的系统。

3.对消息丢失并不那么敏感的系统。

4.从 A 到 B 的流传输,无需复杂的路由,最大吞吐量可达每秒 100k 以上。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181942.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月14日 下午9:00
下一篇 2022年10月14日 下午9:00


相关推荐

  • 什么是Linux主机?

    什么是Linux主机?

    2021年9月22日
    52
  • Frida学习笔记

    Frida学习笔记准备工作使用 kali 时间改成中国时区 dpkg reconfiguret 加入中文字体 aptupgrde 如果报错 解决方法 下载最新 key 添加到 keylistwget q O https archive kali org archive key asc apt keyaddaptins intl chineseaptin wqy microhei 可以装一些好用的小工具 htopjnettop 安装 py 环境

    2026年3月17日
    1
  • jquery锚点定位

    jquery锚点定位jquery 实现锚点定位这里主要是通过 jquery 实现了一个简单的滚动触发锚点高亮 以及点击锚点触发滚动的功能 leftnav 为左侧楼层导航栏 left nav 右侧 right content body 为滚动区域 主要是利用了 scrollTo 和对滚动区域 scroll 事件的监听实现锚点定位及锚点高亮 先附上代码 var leftnav form content build

    2026年3月19日
    2
  • 【图像超分辨】RDN

    【图像超分辨】RDNRDN网络结构实现细节讨论(与其他网络的区别)实验设置实验结果参考博客RDN——ResidualDenseNetwork——残差深度网络。RDN是基于深度学习的超分方法之一,发表于CVPR2018。网络结构RDN网络结构分为4个部分:SFENet(ShallowFeatureExtractionNet,浅层特征提取网络);RDBs(ResidualDenseBl…

    2022年6月18日
    56
  • pycharm卸载不了_pycharm卸载pymysql

    pycharm卸载不了_pycharm卸载pymysql本菜鸡入坑python不久。今日被lda折磨,某个动机下想要卸载lda,知识不够,后碰巧用pipunstalllda命令实现。注:本菜鸡安装时用的pipinstalllda方法。又是酸爽的填坑跳坑挖坑的一顿操作→_→。。…

    2022年8月29日
    5
  • Pycharm设置默认头

    Pycharm设置默认头1 设置的路径是 File settings Editor FileandCodeT PythonScript 内容见图 这样新建文件的时候就会默认头如下 这里说明下 usr bin evnpython 和 nbsp usr bin python 的区别 第一种写法是在 PC 的 Path 中找寻第一个 python 用来执行你所编写的脚本信息

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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