• 常用消息中间件有哪些


    dc12e3bf6e934ec7a134397c6f0d01ba.jpgRocketMQ

     

    阿里开源,阿里参照kafka设计的,Java实现

     

    能够保证严格的消息顺序

     

    提供针对消息的过滤功能

     

    提供丰富的消息拉取模式

     

    高效的订阅者水平扩展能力

     

    实时的消息订阅机制

     

    亿级消息堆积能力

     

    RabbitMQ

    Erlang实现,非常重量级,更适合于企业级的开发。同时实现了Broker架构,核心思想是生产者不会将消息直接发送给队列,消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)、数据持久化都有很好的支持

     

    ActiveMQ

    Apache下的子项目,java实现,少量代码就可以高效地实现高级应用场景

     

    Redis

    可以当做一个轻量级的队列服务来使用,c语言实现

     

    实验证明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis

     

    Kafka

    Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统

     

    快速持久化:通过磁盘顺序读写与零拷贝机制,可以在O(1)的系统开销下进行消息持久化;

     

    高吞吐:在一台普通的服务器上既可以达到10W/s的吞吐速率;

     

    高堆积:支持topic下消费者较长时间离线,消息堆积量大;

     

    完全的分布式系统:Broker、Producer、Consumer都原生自动支持分布式,依赖zookeeper自动实现复杂均衡;

     

    支持Hadoop数据并行加载:对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案

     

    ZeroMQ

    号称最快的消息队列系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常使用,偏重于实时数据通信场景

     

    仅提供非持久性的队列,如果down机,数据将会丢失

  • 相关阅读:
    数据结构与算法拾遗十(一些基本的数据结构)
    基于注意力机制的深度协同推荐模型
    k8s与docker关于CPU竞争测试
    Spring+SpringMVC+MyBatis框架整合的配置
    Redis-实战篇-实现商铺缓存与数据库的双写一致(超时剔除和主动更新)
    使用服务器训练模型的注意事项
    深入URP之Shader篇5: SimpleLit Shader分析(1)
    蓝桥杯2023年第十四届省赛真题-更小的数--题解
    740.删除并获得点数
    Quartz-cron时间设置
  • 原文地址:https://blog.csdn.net/weixin_57763462/article/details/132747410