【CDP-云设计模式】第8章,1.队列链表模式(Queuing Chain Pattern)

1.要解决的问题

  如果对运行在多个系统上的相关进程(例如,在图像处理过程中,上传、存储、图像转码、创建缩略图等等顺序操作)执行顺序处理,往往会因为系统间联系过于紧密而造成性能瓶颈。当出现故障时,这种紧密的联系同样会使恢复操作变得复杂。所以,考虑到性能和维护的需要,应尽可能地使系统实现松耦合。

2.云模式的说明

  您可以在系统间使用队列来实现松散耦合,然后通过交换消息来转换工作。这可以实现系统的异步连接。这种方法可以增加接收和处理消息的虚拟服务器数量,必要时,通过并行处理来轻松解决瓶颈问题。即使其中某台虚拟服务器出现故障,未处理的消息仍会保存在队列中,这样当虚拟机恢复时即可重新开始处理。
  
  虽然可以不借助云技术来使用这种模式,但是AWS云已经提供了这种队列服务,考虑到云技术能弹性地提供虚拟服务器的特性,这种模式的使用较以往会变得容易得多。

3.实施

  使用Amazon简单队列服务(SQS),从EC2实例中的一个进程转换为另一个EC2实例中的另一个进程。SQS是AWS的队列服务。EC2中的处理过程如下:接收一项工作(消息) –> 处理工作 –> 传递工作(消息) –>重复。
依据工作的性质,您可以在多个EC2实例中运行这些进程。

4.配置

图1

5.好处

  • 您可以使用异步处理来快速返回响应。

  • 您可以通过简单进程(EC2实例)的松散耦合来构造系统。

  • 您仅需通过增加或减少工作进程中的EC2实例数量来满足性能和服务需求。

  • 即使EC2实例出现故障,消息(工作)仍会留在队列服务中,使得进程能够在EC2实例恢复后立刻继续执行,打造一个面对故障也能稳如泰山的系统。

6.注意事项

  在一些进程必须严格按照顺序执行的系统中,您需要注意,在SQS中,不能完全保证队列中的消息的执行顺序。

7.其他

  • 您可以将本模式与优先队列模式相结合使用。

  • 您可以使用Amazon的简单工作流(SWF)来相对轻松地支持复杂的工作流,而不是仅仅使用简单队列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值