zoukankan      html  css  js  c++  java
  • Redis消息队列和KafKa优劣对比

    Redis作为消息队列升级为KafKa记录
    项目当中运营人员发送指定匹配用户(最高用户量几十万的级别)特定的消息,所以这块是确确实实需要使用专业级别的消息队列中间件的,但是可能由于当时开发的各种历史原因导致使用了Redis的队列结构来作为消息队里lpush,blpop等命令,项目开发进展到现在,用户量不断增大,包括不同的消息继承进来,包括举报反馈,小纸条(用户间消息发送),活动奖励通知,等等一些不同的消息进来以后,Redis可能会变得不那么可靠.

    Redis作为消息队列
    Redis的pub-sub模式非常像西式快餐一样,快产快消,全都是因为Redis是使用内存来做存取,所有你生产的消息立马会被消费者一次性全部处理掉,并且没有留下任何痕迹, 同时因为内存总是宝贵的,所以内存上会有限制,当生产者以及消费者上来的时候也会对redis的效率,还有Redis在处理发布和消费big size(10K+的文件)的数据的时候会表现出无法忍受的缓慢

    如果有以下场景可以考虑使用Redis作为消息队列

    如果你的需求是快产快消的即时消费场景,并且生产的消息立即被消费者消费掉
    如果速度是你十分看重的,比如慢了一秒好几千万这种
    如果允许出现消息丢失的场景
    如果你不需要系统保存你发送过的消息,做到来无影去无踪
    需要处理的数据量并不是那么巨大
    KafKa作为消息队列
    KafKa的设计精妙,支持分布式,高可用的部署,并且对一个大的队列采用分成多个Partition(分区),来提高消息入队的吞吐量,分而治之的思想. 并且消费的时候支持group的概念,能够支持多个客户端消费同个队列,并且一个group中可以增加consumer的数量来扩展消费的处理量.

    KafKa不熟生产者数量的影响,因为吞吐量足够支撑,即使在廉价的单机服务器上也可以有10万每秒的消息传输量,并且消费者是想什么时候消费都可以,消息它就在那里,十分灵活,不用担心来无影去无踪的恐慌.能把消息持久化,并以一定的策略(例如一定时间内删除,或者到达多大容量的时候清空)

    当有一下场景的时候你可以考虑使用KafKa作为消息队列

    如果你想要稳定的消息队列
    如果你想要你发送过的消息可以保留一定的时间,并不是无迹可寻的时候
    如果你无法忍受数据的丢失
    如果速度不需要那么的快
    如果需要处理数据量巨大的时候
    ————————————————
    版权声明:本文为CSDN博主「Allen艾弗森」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_36285124/article/details/102617211

  • 相关阅读:
    附近有什么?8款可以查周边的App
    实体店里充话费要怎么弄
    怎样买手机号?
    手机号是SIM卡的号呢,还是买手机时就带的
    网站SSL证书在线检测
    未来什么行业最赚钱
    陈安之-如何选择最赚钱的行业
    斗鱼宣布获C轮15亿融资 直播行业进入资本时代
    2016年Godaddy最新域名转出教程
    GoDaddy账户间域名转移PUSH以及ACCEPT接受域名过户方法
  • 原文地址:https://www.cnblogs.com/mjhblog/p/12172750.html
Copyright © 2011-2022 走看看