• 無鱼
    2019-07-25
    仔细阅读了三遍,每一字都是精华
    选择中间件的考量维度:可靠性,性能,功能,可运维行,可拓展性,是否开源及社区活跃度
    rabbitmq:
    优点:轻量,迅捷,容易部署和使用,拥有灵活的路由配置
    缺点:性能和吞吐量较差,不易进行二次开发
    rocketmq:
    优点:性能好,稳定可靠,有活跃的中文社区,特点响应快
    缺点:兼容性较差,但随意影响力的扩大,该问题会有改善
    kafka:
    优点:拥有强大的性能及吞吐量,兼容性很好
    缺点:由于“攒一波再处理”导致延迟比较高
    pulsar:
    采用存储和计算分离的设计,是消息队里产品中黑马,值得持续关注
    展开
     4
     92
  • WL
    2019-07-25
    请问一下老师rocketMQ是怎么做到低延时的?

    作者回复: 主要是设计上的选择问题,Kafka中到处都是“批量和异步”设计,它更关注的是整体的吞吐量,而RocketMQ的设计选择更多的是尽量及时处理请求。

    比如发消息,同样是用户调用了send()方法,RockMQ它会直接把这个消息发出去,而Kafka会把这个消息放到本地缓存里面,然后择机异步批量发送。

    所以,RocketMQ它的时延更小一些,而Kafka的吞吐量更高。

     3
     26
  • leslie
    2019-07-25
    一套架构中是否可能存在多套中间件?在线的生产业务使用rockmq,运维/监控方面使用kafka。

    作者回复: 当然可以,架构无所谓好坏,关键是适合。用多套MQ好处是发挥各自的长处,代价是维护成本比较高。具体是不是适合,还是要架构师根据各种实际情况来权衡。

     3
     18
  • 悟空
    2019-07-30
    听得我激动的喊了一句:“湖人总冠军”

    作者回复: 你咋知道我是詹密呢?

     2
     12
  • 猿人谷
    2019-07-25
    我所在公司用rabbitmq也遇到消息的有序性无法保证的问题,通过在业务层面去弥补,终究不是种好方案。
    请问老师在保证有序性消费上有什么好的方案?

    作者回复: 正确的使用RabbitMQ是可以保证严格有序的,你在学习完“03 消息模型:主题和队列有什么区别?”之后,再看一下RabbitMQ的配置应该就会知道该如何解决你的问题了。

     1
     11
  • Mark Yao
    2019-07-27
    我们就是那种对消息队列功能和性能都没有很高的要求,所以选择RabbitMQ。不管选择哪种消息队列其中还有个很关键的因素,团队里面有人能hold它,最起码熟悉掌握其详细配置。选择不熟悉的MQ会变成不定时炸弹,在生产遇到问题无法快速解决。
    
     10
  • 大数据小先
    2019-08-07
    期待ing,没用过消息队列,没玩过多线程。但我不想成为一个只会CRUD的
    
     9
  • 业余草
    2019-07-25
    rockmq + kafka。业务 + 日志,都需要!
    
     6
  • 吴青
    2019-07-28
    老师 exchange是rabbitmq独有的么?exchange好像属于amqp协议,看了看amqp似乎说到了。

    作者回复: exchange确实是AMQP协议中定义的,RabbitMQ是AMQP的一个实现。

    
     5
  • wmg
    2019-07-26
    “因为当客户端发送一条消息的时候,Kafka 并不会立即发送出去,而是要等一会儿攒一批再发送,在它的 Broker 中,很多地方都会使用这种“先攒一波再一起处理”的设计。当你的业务场景中,每秒钟消息数量没有那么多的时候,Kafka 的时延反而会比较高。所以,Kafka 不太适合在线业务场景。”,老师,批次的大小是可配置的,在我们的使用场景中,如果消息没有积压的情况下,延迟基本上小于10ms,我想问一下rocketmq的延迟一般是多少?

    作者回复: 配置得当的情况下,可以做到2-3ms。

    
     4
  • 👻 小二
    2019-08-17
    老师, 能稍微讲下emq跟nsq 的优缺点跟性能吗?

    作者回复: emq是专注于MQTT场景的一个消息队列,如果你的使用场景是连接海量的IoT设备,可以考虑。

    nsq使用Go语言开发,如果团队的技术栈是基于Go语言搭建的,nsq是一个很好的选择。

    这两个消息队列我都没有深入的使用和测试过,所以没办法跟你分享它们的优缺点和性能。

    
     3
  • zwh
    2019-07-28
    正如老师所说,性能优秀rocketmq在国外的知名度真的挺低的。国外除了rabbitmq kafka还有还多公司使用Amazon的simple queue service
    
     3
  • 我已经设置了昵称
    2019-07-27
    一直不明白一个问题,每秒处理几万~几十万数据,这不应该是按照下游业务的消费能力来讲的吗,比如我们现在的服务tps就只能打到几百。还是说老师和网上讲的都是发送到消息队列的能力?又或是几万几十万只针下游业务只打个日志专门用来做性能测试的情况?希望解答下

    作者回复: 我们提到的都是消息队列本身的性能,不包括生产者和消费者处理各自业务逻辑的时间。一般测试消息队列性能的时候,生产者和消费者是没有任何业务逻辑的。

     2
     3
  • David Mao
    2019-07-25
    我们的云平台有多个项目,每个项目用的消息中间件不同,有的用RabbitMQ, 有的用Kafka, 请教老师,这些消息中间件可以建设成一个统一的,集中式的架构吗?也就是建设成一个消息中间件平台,所有的项目来共用。

    作者回复: 当然可以,在京东就是这样的集中式大集群,为所有业务提供消息服务。

     2
     3
  • yan
    2019-09-25
    kafka如果凑不够一批,那等什么时候发送?

    作者回复: 建议看一下batch.size和linger.ms这两个参数的含义

    
     2
  • angel😇txy🤓
    2019-08-20
    老师好,rocket mq为何号称金融级的稳定性呢

    作者回复: 金融级只是一种说法,并没有什么标准。但确实有很多涉及金融类的系统选择使用RocketMQ。

    
     2
  • 青舟
    2019-07-26
    老师您好,
    请问是否有消息队列支持延时消息,并可以撤回延时消息的?

    需求:物联网平台要对设备离线事件做监控,我想在每次设备上报数据时,发送一个延时判断离线的延时消息到MQ,如果设备正常再次上报数据,就取消上次的延时消息,并发送一个新的延时消息。
    目的是不希望每次上报数据都会导致消费端做一次离线判断,只需要对最后一次上报做判断即可。
    展开

    作者回复: 但我个人的意见:这个需求不太适合用MQ来实现。

    另外,是不是可以换个思路来考虑这个问题,你一定需要一个设备离线的通知来触发什么业务逻辑吗?还是只是需要查询设备的时候,能正确的给出设备是否在线就可以了?

    如果是后者,实现代价要低很多。

     3
     2
  • QQ怪
    2019-07-25
    哔,打卡,文章听一般就懂
    
     2
  • InfoQ_686548eeb0d8
    2019-07-25
    流处理中消息延迟不能避免回溯处理,kafka如果消息已经不在内存里,访问性能会有影响,pulsar 可以很好解决这个问题吗?

    作者回复: 挖坟的问题,受内存大小的限制,不太好解决。这和采用那种消息队列关系不太大。有条件的话,可以使用SSD结合Raid,消费速度基本上是可以打满万兆网卡的。

    
     2
  • 古夜
    2019-07-25
    我们用zeromq,奈何国内资料太少,想深入了解都不行

    作者回复: 所以需要好好学英语哦。

     2
     2
我们在线,来聊聊吧