云队列消息模式

CloudQues构建灵活处理各种消息
需求问题本条解释一些常见模式和可能
变异性

任务分布

任务分布模式中客户使用云队
亚马逊简单队列服务向工人池提供食物如下:

  1. 制片人将消息推入队列
  2. 工人请求消息
  3. 工人处理消息
  4. 工人删除消息

过程的每一步可产生下列变式:

  • 步骤1-变异1:一个或多个制片人将数条消息推入队列工人们
    可同时主张批量消息或单消息

  • 步骤2-变异1:工人在消息过期前不主张消息上头
    生产者应调整使用更高的TTL值处理消息,或
    工人们应多点民调

  • 步骤2-变异2无消息索要,因为所有消息都是
    由这或其他工人消费工人继续定期发短信请求,直到新消息发布
    可用性.省长进程或可选择基于加载自定义工人池
    Get请求检索队列统计或监听单个工人闲置)

  • 步骤3-变异工人声明消息后撞车处理前
    .....请求消息最终过期
    消息将再次提供 由另一名工人申报

  • 步骤4-变异处理消息后工人崩溃,但在删除前
    .....下一工人请求消息检验消息是否存在
    进程前已处理在有些情况下
    双处理消息可能可接受,在这种情况下不可接受
    检验是必要的 。

Pub子集

Pub-Sub表示Puster-Pistri
多点消费者或订户事件如下:

  1. 发布程序推送消息X到队列
  2. 用户列表消息队列并接收消息X
  3. 订阅者B列消息队列获取消息X
  4. 用户A和B个人处理消息X

步骤2进程可有下列变式:

  • 步骤2-变异1:订阅者上轮中已列消息上头
    订阅者提交“下一步”标记通知服务器什么消息
    已经看到,服务器只返回新
    消息订阅者

  • 步骤2-变异2订阅者不在消息X过期前列消息上头
    制作程序应调整使用更高TTL值
    消息订阅者应更频繁地或同时调查

  • 步骤2-变异3所有消息都列出用户取空
    响应并持续使用队列定期列表消息
    最后已知标记,直到它得到非空响应

  • 步骤2-变异4用户获取消息X前崩溃进程化
    监视器简单重新启动订阅者,用户就能获取
    消息X只要能在出版商设置的TTL周期内作民调

点对点

以这种模式,每个代理自取队列queue资源
极轻云队列,用户可创建数以百计
上千个无问题

注意双向通信只需要单队列

  1. 控制器将消息推入队列
  2. 代理列表消息队列获取消息
  3. 代理执行请求动作
  4. 代理向队列推送结果消息
  5. 控制器列表消息队列并获取结果
    消息传递

几步进程可产生下列变式:

  • 步骤2-变异1:代理可请求消息,但比简单列表慢
    消息传出时 声明无关紧要 只有一位客户
    从队列读取

  • 步骤2-变异2代理获取消息前崩溃立即代理
    复机,它仍然可以得到消息,如果消息在TTL内复机
    周期由控制器设置

  • 步骤4-变异1:代理崩溃后发布结果消息控制器
    应有超时段,在此段后它不再期望响应
    自请求

  • 步骤4-变异2如果没有结果期望,则跳过此步和下一步

审核

用户审计中增加常量列表旁观者
并记录消息队列观察者可以是CLI
尾像脚本或被动服务器处理记录一切
通路

审核帮助诊断消息制作者的问题或错误
还可以确保消息处理正确,例如
用户使用云队算法
想要审核记录 以确保收费事件全部
正确提交计费系统

然而,有能力延迟消息可申请
时间段仍是一个特征
审计工作非常好这样一个特征会给审计师
机会列表消息后工作员删除今日工人们
可中断数秒前声明消息
删除它,但在消息延迟后此进程会更优雅
执行中 。


Baidu
map