有两个数据库,A 和 B,它们为网页提供服务,并在需要共享数据时通过内部网络相互通信。有时,服务器 A 需要生成一个带有图表的网页,该网页需要在服务器 B 上进行大量数据的密集计算。让我们假设两台服务器同样强大并且网络速度很快。我试图找出一个好方法来做到这一点。到目前为止的想法:
- 服务器 B 可以进行大量计算,然后将一小部分结果传回服务器 A。不太灵活,但相当有效。不幸的是,这是一个有点复杂的交易。我会将其与具有大量参数、副作用和结果的方法进行比较。
- 服务器 B 可以简单地向 A 提供自己的原始数据服务器,并让它自己处理所有计算。更“开放”和更灵活,但效率较低,因为计算中涉及大量数据,服务器 A 必须通过网络提取所有数据。
- 服务器 B 可以生成并返回图表或指向它的链接。也许是最有效的,但最不灵活的,并且还会造成服务器 B 部分负责生成服务器 A 的网页的混乱关系。但是,至少服务器 A 不必担心取回一个复杂对象并知道如何处理它。
这里是否有一个最佳实践可以实现性能和可维护封装的平衡?还是只是个案情况?我倾向于第一个选项。我希望这个问题足够“可回答”,而不是讨论问题。我试图将一般问题集中到一个特定的场景中。