【CDP-云设计模式】第8章,3.工作观察者模式(Job Observer Pattern)
来源:互联网 发布:连接线共享网络给手机 编辑:程序博客网 时间:2024/05/21 15:49
1.要解决的问题
在为批处理进程分配负载时,可以通过使用队列来控制工作请求,被列队的工作请求将被多个批服务器平行处理。然而,如果不采用云技术,批处理服务器的创建数量将由高峰请求量决定,那么在高峰期外的其他时段多余的批处理服务器将造成资源浪费,这不利于经济效益。除此之外,当出现无法预估的大量请求负载时,批处理系统也不能及时响应。
2.云模式的说明
在过去,服务器资源是不能动态增加或者减少的,批处理服务器的提供数量是由高峰需求和可用成本决定的。这导致了较低的成本效益和无力应对预料之外的负载等问题。 在AWS云中,系统可以通过监控负载自动增加或减少虚机的数量。您可以根据负载自动伸缩批处理服务器的数量,获得极佳的成本效益,并且可以应对预料之外的负载。具体说来,通过监控工作请求(队列消息),批处理服务器可按要求自动增加或减少。
3.实施
AWS中有一个名叫“Auto Scaling”的系统,可以自动增加或减少EC2实例的数量,它和资源监控工具,也就是”CloudWatch“协同工作,按照监测值来决定增加或者减少EC2实例的数量。在AWS中,SQS队列中的消息数量可被CloudWatch监控。您可以使用SQS管理工作请求,并且使用Auto Scaling和CloudWatch构建一个可以根据队列消息数量自动增加或减少批处理服务器数量的系统。
将工作请求纳入队列作为SQS消息。
使批处理服务器获取来自SQS的队列消息并进行处理。
设置Auto Scaling用来自动增加或减少批处理服务器的数量,使用SQS消息数量(云监控)作为触发器。
4.配置
5.好处
这可以协调作为工作服务器的EC2实例数量和任务数量,从而提高成本效益。
通过并行处理,可以减少处理工作的总体时间。
即使EC2实例出现故障,SQS消息(工作请求)仍会保留,使得进程能够在EC2实例恢复后立刻继续执行,打造一个面对故障也能稳如泰山的系统。
6.注意事项
EC2实例的租用是根据单位时间计费的,最少一小时起,所以如果一个EC2实例启动了之后立即关闭也会收一个小时的费用。因此,您需要注意实例的启动和关闭时间。
7.其他
队列链表模式和优先级队列模式可以结合使用。
- 【CDP-云设计模式】第8章,3.工作观察者模式(Job Observer Pattern)
- 【CDP-云设计模式】第2章,3.纵向扩展模式(Scale Up Pattern)
- 【CDP-云设计模式】第3章,3.浮动IP模式(Floating IP Pattern)
- 【CDP-云设计模式】第4章,3.NFS共享模式(NFS Sharing Pattern)
- 【CDP-云设计模式】第5章,3.私有分配模式(Private Distribution Pattern)
- 【CDP-云设计模式】第8章,1.队列链表模式(Queuing Chain Pattern)
- 【CDP-云设计模式】第8章,2.优先级队列模式(Priority Queue Pattern)
- 观察者设计模式(Observer Pattern)
- 【CDP-云设计模式】第2章,1.快照模式(Snapshot Pattern)
- 【CDP-云设计模式】第2章,2.印章模式(Stamp Pattern)
- 【CDP-云设计模式】第3章,1.多服务器模式(Multi-Server Pattern)
- 【CDP-云设计模式】第3章,2.多数据中心模式(Multi-Datacenter Pattern)
- 【CDP-云设计模式】第4章,1.横向扩展模式(Scale Out Pattern)
- 【CDP-云设计模式】第4章,2.克隆服务器模式(Clone Server Pattern)
- 【CDP-云设计模式】第4章,4.NFS复制模式(NFS Replica Pattern)
- 【CDP-云设计模式】第4章,5.状态共享模式(State Sharing Pattern)
- 【CDP-云设计模式】第4章,6.URL改写模式(URL Rewriting Pattern)
- 【CDP-云设计模式】第4章,7.改写代理模式(Rewrite Proxy Pattern)
- visual studio配置openGL
- android获得控件在屏幕中的绝对坐标
- 求阶乘和
- 堆栈溢出及其原因
- 注入(1)--注册表注入
- 【CDP-云设计模式】第8章,3.工作观察者模式(Job Observer Pattern)
- Unity3D自学笔记——UGUI系统介绍
- 日常算法
- Promise解决回调函数的问题
- 【数据结构】线性表(一)
- Atitit.研发团队与公司绩效管理的原理概论的attilax总结
- 【数据结构】线性表(二)
- C#之打印空心三角形
- 【Dongle】【数据库系统原理】模式分解之无损分解