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