ItGo.me - 专注IT技术分享

首页 > Redis > Redis作者新开发的消息队列:Disque

Redis作者新开发的消息队列:Disque

时间:2016-08-28来源:网友分享 点击:

Disque是一个分布式的消息队列。与Redis有单结点和分布式模式不同,单一Disque结点也是只有一个结点的集群。它是一个AP系统,也就是具有Availability(可用性)和Partition tolerance(分区容错性)。另外它能在各种情形下保持高扩展性:无论是多生产者和多消费者处理多队列,还是所有生产者和消费者都在一个队列。

另外,Disque的设计中有一点重大牺牲,就是只尽力提供而不保证消息的排序。

Disque的特性:

  • 消息发送可以选择至少一次或者最多一次。
  • 消息需要消费者确认。
  • 如果没有确认,会一直重发,直至到期。确认信息会广播给拥有消息副本的所有结点,然后消息会被垃圾收集或者删除。
  • 队列是持久的。
  • Disque默认只运行在内存里,持久性是通过同步备份实现的。
  • 队列为了保证最大吞吐量,不是全局一致的,但会尽力提供排序。
  • 在压力大的时候,消息不会丢弃,但会拒绝新的消息。
  • 消费者和生产者可以通过命令查看队列中的消息。
  • 队列尽力提供FIFO。
  • 一组master作为中介,客户端可以与任一结点通信。
  • 中介有命名的队列,无需消费者和生产者干预。
  • 消息发送是事务性的,保证集群中会有所需数量的副本。
  • 消息接收不是事务性的。
  • 消费者默认是接收时是阻塞的,但也可以选择查看新消息。
  • 生产者在队列满时发新消息可以得到错误信息,也可以让集群异步地复制消息。
  • 支持延迟作业,粒度是秒,最久可以长达数年。但需要消耗内存。
  • 消费者和生产者可以连接不同的结点。

详细内容:

Redis作者新开发的消息队列:Disque

Redis作者新开发的消息队列:Disque  讨论


window下redis的安装以及php-redis详细配置

网上有很多关于php-redis的配置,今天要用到php-redis,所以百度看 了很多教程。有所收益,但是也发现这些教程基本上都是ctrl+c,ctrl+v的。我鼓捣了一个中午终于成功了。为自己记下这个过程的同...

基于Redis服务器的分布式Java数据结构实现:Redisson

Redisson - 提供基于Redis服务器构建的分布式和可扩展的Java数据结构(Set, SortedSet, Map, ConcurrentMap, List, Queue, Deque, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog) 。它也是一个高级Redis Java客户端...

C 语言实现的轻量级字符串库 - tstring

tstring 是用 C 语言实现的轻量级字符串库,参考了 glib 中的 GString 实现,提供了和 redis 中的 类似的功能。 项目主页: C 语言实现的轻量级字符串库 - tstring C 语言实现的轻量级字符串库 - tstri...

Disque是一个分布式的消息队列。与Redis有单结点和分布式模式不同,单一Disque结点也是只有一个结点的集群。它是一个AP系统,也就是具有Availability(可用性)和Partition tolerance(分区容错性)。另外
------分隔线----------------------------