阅读笔记之——《SOA架构模式》二

主动式服务

一个解决办法是让服务对先前的结果进行缓存,但这只能解决部分问题,因为这样做数据就无法得到及时更新,并且时而也会有缓存失效的情况发生,这时仍然需要连接其它服务。这种方法还有另一个问题,那就是如果传入的请求过多,在处理一个请求的时候,其它的请求就会处于“等待”的状态,这样又会产生资源问题,因为而这些“等待”的请求都需要外部服务的输入。

即使我们解决了前面的缓存问题,我们仍然得处理其它的暂时性事件。暂时性事件包括重复发生,或者与时间相关的一次性事件。比如,生成每月账单或发布股票数据或任何其它重复性的报告都是暂时性事件。一种解决方法是从外部编排服务。这种方法的问题是你得将服务的业务逻辑具体化。

主动服务是一些其它模式(比如前面提到的分离调用和blogjecting watchdog)的先决条件,而这些模式可以帮助处理质量属性问题,比如可靠性与可用性。并且,即使是单独使用主动服务模式也能满足许多质量属性要求。

通过预先准备的数据,主动式服务可以减少一些潜在的问题。它可以解决期限的问题,因为它能保证服务在期限之前完成任务(比如按时生成每月账单)。另外,主动服务模式还有可用性的优势,因为从其它服务查询并缓存数据意味着减少了服务的可用性对其它服务的依赖性

posted @ 2020-04-13 22:16  米汤000  阅读(81)  评论(0编辑  收藏  举报