使用前端和后端实例扩展微服务
·
回答问题
我正在使用 Spring Boot 开发一系列微服务,并计划将它们部署在 Kubernetes 上。
一些微服务由一个将消息写入 kafka 队列的 API 和一个侦听队列并执行相关操作的侦听器组成(例如,写入 DB 等,构造消息以进行后续处理)。
这些服务在本地运行良好,但我计划在 Kubernetes 上运行多个微服务实例。我正在考虑以下选项:
- 按原样运行多个实例(即每个微服务都充当 API 和侦听器)。
2.引入一个FRONTEND、BACKEND环境变量。如果 FRONTEND 变量为真,则不要配置监听进程。如果 BACKEND 变量为真,则配置监听进程。这样我就可以开始扩展我需要的前端/后端服务,并且还可以在不丢失请求的情况下关闭后端服务。
任何指针、最佳实践或任何其他选项都将不胜感激。
Answers
您可以使用环境变量按照您的描述进行操作,或者您可能也有兴趣使用不同的配置文件/bean 配置构建您的应用程序并制作两个不同的图像。
在这两种情况下,您都应该使用两个不同的 Kubernetes部署,以便您可以独立扩展和配置它们。
您可能还对领导者选举模式感兴趣,如果只有一个副本处理队列中的事件才有意义,那么您只需要一个活动副本。这也可以通过仅使用单个副本来解决,具体取决于您的_可用性_要求。
更多推荐
所有评论(0)