因此,我的前端页面需要来自促销,产品,制造商和零售商服务的数据 - 每个都包含后端API
我应该......
A)在前端(每个服务)进行4次单独的呼叫,以从4个位置获取数据?
或者
B)对后端方法进行一次调用,该方法聚合来自所有4个服务的所有数据。当然,我也需要为此创建一个新的AngularJS服务
(a)的优点在于它避免了后端服务耦合 - 后端更加模块化,因为服务不需要相互通信。
缺点是前端的网络开销 - 四次调用而不是一次
这样做的正确或更有棱角的方法是什么?
答案 0 :(得分:1)
这不是一个有角度的问题,这是一个SOA问题。这是本书中最古老的一本。答案当然是,这取决于。
服务粒度是与迁移到面向服务的体系结构(AngularJS强迫您进入体系结构)相关的最难的问题之一。它归结为性能和服务可重用性之间的平衡行为。
与往常一样,在考虑性能优化时,请始终在对性能做出假设之前进行测试。这里可以进行一些测试。你很可能会发现你根本没有问题(经常发生)。
需要考虑的一些事项: