我不确定这是否是一个正确的词,但在我的企业中,我们有两种类型的服务:聚合服务和基本服务。
聚合服务从其接口中标识,其中输入是请求对象列表,类似地,响应是列表。该服务应该以互斥方式处理请求列表,即如果处理一个Request对象,该服务仍必须继续处理下一个Request对象。提供的通常原因是提高性能 - 而不是消费者在循环中调用服务,它只创建一个Request对象列表,只调用一次服务。另一个所谓的好处是您可以将不相关的请求分组到一个请求中。
有没有人也使用类似的聚合服务?如果是这样,请您提供此方法的更多信息/好处。
答案 0 :(得分:5)
这是服务设计中的常见做法,我们的想法是,无论何时跨越服务边界,您都需要付出代价。请记住,SOA是关于在服务之间传递消息,而不是对对象的引用,这种解耦优点的代价是越过边界。
因此,当你越过边界时,你应该尽量挤出尽可能多的东西。
在上面的场景中,出于性能原因,您似乎以并发方式处理项目,只需确保在使用任何事务资源时锁定策略与并发处理方法一致。
以下是一些关于其他一些SOA服务设计思想的好资源的链接。
我建议您阅读Thomas Erl和Roger Sessions撰写的文章,这将使您能够掌握SOA的全部内容。