目前,我们有一些单体 Web 应用程序,并尝试将项目转移到微服务基础设施。
对于单体应用程序来说,HAProxy 和 session 复制具有故障转移和负载平衡功能。
现在我们使用 Spring Boot 构建一些 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 特定的)
这应该适用于持续交付,因为服务可能会使其自身不可用,进行更新,然后再次注册可用性。
关于spring-boot - RESTful 微服务故障转移和负载平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29387250/