zoukankan      html  css  js  c++  java
  • Kafka和Rabbitmq的最大区别

    功能上,两者都是实现了AMQP协议。那么在使用上的最大区别是什么呢?如何根据自己的需求进行选型?

    kafka是严格顺序保证的消息队列。即使在分布式环境下,也保证在同一分区内消息的顺序性。既然是顺序的,那么在同一个Topic下面,如果前面的消息没有消费完毕(收到回应),则不能读取下一条消息。那么在消费端,就变成了一个单线程操作,无法并发。虽然kafka可以通过分区实现并发,不过这个需要用多台kafka实现。

    还有个办法是在消费kafka消息的时候,消费完立即交给线程池处理,这样可以极大提高并发性。不过这样带来的问题是,如果线程没有处理完机器挂了,就会出现消息丢失的情况,需要在设计上考虑到。

    Rabbitmq不承诺消息的顺序性,因此可以并发多线程处理。在队列中不必排队。如果你对顺序处理没有要求,可以用Rabbitmq实现较大的并发。

  • 相关阅读:
    Bugly和dispatch_once Crash
    IQKeyboardManager
    Storyboard References
    Book
    Git管理
    iOS开发之RunLoop--转
    H264之PPS、SPS了解
    iOS之UI设置随记
    使用 github 本地项目上传到github上 步骤
    spring中自定义注解
  • 原文地址:https://www.cnblogs.com/bobdeng/p/8431829.html
Copyright © 2011-2022 走看看