RESTful 微服务故障转移和负载均衡
RESTful Microservice failover & load balancing
目前我们有一些单一的 Web 应用程序,并尝试将项目转移到微服务基础架构。
对于单体应用程序,HAProxy 和会话复制具有故障转移和负载平衡功能。
现在我们用 spring 启动构建了一些 RESTful 微服务,但我不清楚构建生产环境的最佳方法是什么。
当然,我们可以 运行 所有应用程序都作为 unix 服务,并且仍然有一个用于负载平衡和故障转移的反向代理。这个解决方案对我来说似乎很重,并且有很多配置和维护。资源管理和扩大或缩小服务器将始终是一个手动过程。
使用 2-3 台服务器和简单的资源管理设置生产环境的最佳可能性是什么?
是否有一些解决方案也支持持续部署?
我建议研究服务发现。 Netflix 将其描述为:
A Service Discovery system provides a mechanism for:
- Services to register their availability
- Locating a single instance of a particular service
- Notifying when the instances of a service change
Netflix 的 Eureka 等软件包可能会有所帮助。 (编辑 - 实际上这看起来可能是特定于 AWS 的)
这应该与持续交付配合得很好,因为服务可以使自己不可用、更新然后再次注册可用性。
目前我们有一些单一的 Web 应用程序,并尝试将项目转移到微服务基础架构。
对于单体应用程序,HAProxy 和会话复制具有故障转移和负载平衡功能。
现在我们用 spring 启动构建了一些 RESTful 微服务,但我不清楚构建生产环境的最佳方法是什么。 当然,我们可以 运行 所有应用程序都作为 unix 服务,并且仍然有一个用于负载平衡和故障转移的反向代理。这个解决方案对我来说似乎很重,并且有很多配置和维护。资源管理和扩大或缩小服务器将始终是一个手动过程。
使用 2-3 台服务器和简单的资源管理设置生产环境的最佳可能性是什么? 是否有一些解决方案也支持持续部署?
我建议研究服务发现。 Netflix 将其描述为:
A Service Discovery system provides a mechanism for:
- Services to register their availability
- Locating a single instance of a particular service
- Notifying when the instances of a service change
Netflix 的 Eureka 等软件包可能会有所帮助。 (编辑 - 实际上这看起来可能是特定于 AWS 的)
这应该与持续交付配合得很好,因为服务可以使自己不可用、更新然后再次注册可用性。