3、消息时序(timing)

在测定发送到一个队列的消息时间方面,RabbitMQ提供了多种能力:

1)消息存活时间(TTL)

发送到RabbitMQ的每条消息都可以关联一个TTL属性。发布者可以直接设置TTL或者根据队列的策略来设置。

系统可以根据设置的TTL来限制消息的有效期。如果消费者在预期时间内没有处理该消息,那么这条消息会自动的从队列上被移除(并且会被移到死信交换器上,同时在这之后的消息都会这样处理)。

TTL对于那些有时效性的命令特别有用,因为一段时间内没有处理的话,这些命令就没有什么意义了。

2)延迟/预定的消息

RabbitMQ可以通过插件的方式来支持延迟或者预定的消息。当这个插件在消息交换器上启用的时候,生产者可以发送消息到RabbitMQ上,然后这个生产者可以延迟RabbitMQ路由这个消息到消费者队列的时间。

这个功能允许开发者调度将来(future)的命令,也就是在那之前不应该被处理的命令。例如,当生产者遇到限流规则时,我们可能会把这些特定的命令延迟到之后的一个时间执行。

Kafka没有提供这些功能。它在消息到达的时候就把它们写入分区中,这样消费者就可以立即获取到消息去处理。

Kafka也没用为消息提供TTL的机制,不过我们可以在应用层实现。

不过,我们必须要记住的一点是Kafka分区是一种追加模式的事务日志。所以,它是不能处理消息时间(或者分区中的位置)。

获胜者:

毫无疑问,RabbitMQ是获胜者,因为这种实现天然的就限制Kafka。

需要更多教程,微信扫码即可

RabbitMQ和Kafka的显著差异(3)相关推荐

  1. RabbitMQ和Kafka的显著差异(6)

    6.伸缩 有多个基准测试,用于检查RabbitMQ和Kafka的性能. 尽管通用的基准测试对一些特定的情况会有限制,但是Kafka通常被认为比RabbitMQ有更优越的性能. Kafka使用顺序磁盘I ...

  2. RabbitMQ和Kafka的显著差异(1)

    RabbitMQ是一个消息代理,但是Apache Kafka是一个分布式流式系统.好像从语义上就可以看出差异,但是它们内部的一些特性会影响到我们是否能够很好的设计各种用例. 例如,Kafka最适用于数 ...

  3. RabbitMQ和Kafka的显著差异(over)

    7.消费者复杂度 RabbitMQ使用的是智能代理和傻瓜式消费者模式.消费者注册到消费者队列,然后RabbitMQ把传进来的消息推送给消费者.RabbitMQ也有拉取(pull)API:不过,一般很少 ...

  4. RabbitMQ和Kafka的显著差异(5)

    5.容错处理 当处理消息,队列和事件时,开发者常常认为消息处理总是成功的.毕竟,生产者把每条消息放入队列或者主题后,即使消费者处理消息失败了,它仅仅需要做的就是重新尝试,直到成功为止. 尽管表面上看这 ...

  5. RabbitMQ和Kafka的显著差异(4)

    4.消息留存(retention) 当消费者成功消费消息之后,RabbitMQ就会把对应的消息从存储中删除.这种行为没法修改.它几乎是所有消息代理设计的必备部分. 相反,Kafka会给每个主题配置超时 ...

  6. RabbitMQ和Kafka的显著差异(2)

    2.消息路由 RabbitMQ可以基于定义的订阅者路由规则路由消息给一个消息交换器上的订阅者.一个主题交换器可以通过一个叫做routing_key的特定头来路由消息. 或者,一个头部(headers) ...

  7. rabbitmq中默认unack超时时间_RabbitMQ 与 Kafka 的技术差异以及使用注意点

    导言 作为一个有丰富经验的微服务系统架构师,经常有人问我,"应该选择RabbitMQ还是Kafka?".基于某些原因, 许多开发者会把这两种技术当做等价的来看待.的确,在一些案例场 ...

  8. kafka reassign 限速_RabbitMQ 与 Kafka 的技术差异以及使用注意点

    导言 作为一个有丰富经验的微服务系统架构师,经常有人问我,"应该选择RabbitMQ还是Kafka?".基于某些原因, 许多开发者会把这两种技术当做等价的来看待.的确,在一些案例场 ...

  9. RabbitMQ和Kafka选型用哪个

    作为一个有丰富经验的微服务系统架构师,经常有人问我,"应该选择RabbitMQ还是Kafka?" 基于某些原因, 许多开发者会把这两种技术当做等价的来看待.的确,在一些案例场景下选 ...

最新文章

  1. Nginx 负载均衡配置和策略
  2. mongoDB高级查询
  3. 麦库:盛大的知识管理软件
  4. 计算机组装与维护推荐教材,计算机组装与维护(全国高等专科教育计算机类规划教材)...
  5. Java设计模式学习总结(8)——结构型模式之桥接模式
  6. layui分页只能显示一页数据_分页显示查询数据
  7. Typora导出PDF时一直处于正在导出的状态
  8. 芯原创始人戴伟民:嵌入式人工智能与芯粒的历史机遇
  9. leetcode-Basic Calculator-224
  10. android studio 便携式wlan热点 网络名称_速存 | WLAN信号增强器
  11. java renderer_Java TableCellRenderer显示奇怪的行为
  12. 猿取向的规划设计模式 ——GoF《设计模式》阅读摘要(零)
  13. Linux(一)之Ubuntu上安装nginx、nginx-rtmp-modeule、libx264、FFmpeg(巨详细)
  14. 用js实现一个自动阅读的代码
  15. 英雄对决服务器未响应,lol点开始游戏没反应怎么办 完整解决办法一览
  16. C语言判断三角形类型
  17. Pandas基础-利用python进行数据分析
  18. 笔记:期权定价-无套利理论
  19. IT公司年会:程序员专属小品《疯狂营救》,改编自沈腾《人生自古谁无死》
  20. 开发一款APP需要多少钱

热门文章

  1. 华为nova 5z即将亮相:麒麟810+3200万人像超级夜景
  2. 支付宝又“上新”!余额宝兄弟“余额佳”上线
  3. 卸任后的马云“忙”坏了,健美大赛、蹦迪、修空调、种蘑菇,真相看懵了
  4. iQOO Pro 5G版今日正式开售:售价最亲民的5G旗舰
  5. 华为Y9 Prime 2019曝光:无刘海无水滴全面屏+升降前摄
  6. 新iPhone模具曝光:刘海屏无变化 后置三摄排布辣眼
  7. 对一个带小数的数进行四舍五入取整
  8. 条件复杂的sql语句查询
  9. python 编码方式总结
  10. 开发中常用的加密算法大全初步总结