云队列消息模式
CloudQues构建灵活处理各种消息
需求问题本条解释一些常见模式和可能
变异性
任务分布
任务分布模式中客户使用云队
亚马逊简单队列服务向工人池提供食物如下:
- 制片人将消息推入队列
- 工人请求消息
- 工人处理消息
- 工人删除消息
过程的每一步可产生下列变式:
步骤1-变异1:一个或多个制片人将数条消息推入队列工人们
可同时主张批量消息或单消息步骤2-变异1:工人在消息过期前不主张消息上头
生产者应调整使用更高的TTL值处理消息,或
工人们应多点民调步骤2-变异2无消息索要,因为所有消息都是
由这或其他工人消费工人继续定期发短信请求,直到新消息发布
可用性.省长进程或可选择基于加载自定义工人池
Get请求检索队列统计或监听单个工人闲置)步骤3-变异工人声明消息后撞车处理前
.....请求消息最终过期
消息将再次提供 由另一名工人申报步骤4-变异处理消息后工人崩溃,但在删除前
.....下一工人请求消息检验消息是否存在
进程前已处理在有些情况下
双处理消息可能可接受,在这种情况下不可接受
检验是必要的 。
Pub子集
Pub-Sub表示Puster-Pistri
多点消费者或订户事件如下:
- 发布程序推送消息X到队列
- 用户列表消息队列并接收消息X
- 订阅者B列消息队列获取消息X
- 用户A和B个人处理消息X
步骤2进程可有下列变式:
步骤2-变异1:订阅者上轮中已列消息上头
订阅者提交“下一步”标记通知服务器什么消息
已经看到,服务器只返回新
消息订阅者步骤2-变异2订阅者不在消息X过期前列消息上头
制作程序应调整使用更高TTL值
消息订阅者应更频繁地或同时调查步骤2-变异3所有消息都列出用户取空
响应并持续使用队列定期列表消息
最后已知标记,直到它得到非空响应步骤2-变异4用户获取消息X前崩溃进程化
监视器简单重新启动订阅者,用户就能获取
消息X只要能在出版商设置的TTL周期内作民调
点对点
以这种模式,每个代理自取队列queue资源
极轻云队列,用户可创建数以百计
上千个无问题
注意双向通信只需要单队列
- 控制器将消息推入队列
- 代理列表消息队列获取消息
- 代理执行请求动作
- 代理向队列推送结果消息
- 控制器列表消息队列并获取结果
消息传递
几步进程可产生下列变式:
步骤2-变异1:代理可请求消息,但比简单列表慢
消息传出时 声明无关紧要 只有一位客户
从队列读取步骤2-变异2代理获取消息前崩溃立即代理
复机,它仍然可以得到消息,如果消息在TTL内复机
周期由控制器设置步骤4-变异1:代理崩溃后发布结果消息控制器
应有超时段,在此段后它不再期望响应
自请求步骤4-变异2如果没有结果期望,则跳过此步和下一步
审核
用户审计中增加常量列表旁观者
并记录消息队列观察者可以是CLI
尾像脚本或被动服务器处理记录一切
通路
审核帮助诊断消息制作者的问题或错误
还可以确保消息处理正确,例如
用户使用云队算法
想要审核记录 以确保收费事件全部
正确提交计费系统
然而,有能力延迟消息可申请
时间段仍是一个特征
审计工作非常好这样一个特征会给审计师
机会列表消息后工作员删除今日工人们
可中断数秒前声明消息
删除它,但在消息延迟后此进程会更优雅
执行中 。
更新 29天前