当我使用 Dropwizard 开发微服务时,我试图在一个正在运行的 Dropwizard 实例/应用程序上拥有许多资源与许多实例之间找到平衡。
例如 - 我有一个项目 A 有 3 个资源。在另一个项目-B 中,我想使用项目-A 中的一个资源。公共资源与用户数据有关。现在我有这样的选择:
- 从项目-B 对项目-A 中的用户资源进行 http 调用。我可以在这里使用 dropwizard 的客户端方法
- 由于用户资源很常见 - 我可以将它从项目 A 中取出来说项目 C。我需要在项目 A 和项目 B 中创建客户端代码
- 我可以提取包含用户代码的 jar 并在项目 B 中使用。这将避免进行 http 调用。
我想获得专家意见的另一点是如何平衡/最小化与不同微服务实例之间的通信相关的网络调用。一般来说,应该使用http在不同实例之间进行通信吗?或者任何其他进程间通信方法可以用于性能本身[特别是如果不同的实例在同一系统上]?
我觉得这对于微服务领域的新手来说可能是常见的问题/困惑。因此想知道任何一般准则或最佳实践。
非常感谢
普拉迪普