通过前端和后端实例扩展微服务



我正在使用Spring Boot开发一系列微服务,并计划将它们部署在Kubernetes上。

一些微服务由API和侦听器组成,API将消息写入kafka队列,侦听器监听队列并执行相关操作(例如写入DB等,构建消息以进行后续处理(。

这些服务在本地运行良好,但我计划在Kubernetes上运行多个微服务实例。我正在考虑以下选项:

  1. 按原样运行多个实例(即每个微服务都充当API和侦听器(。

  2. 引入一个FRONTEND、BACKEND环境变量。如果FRONTEND变量为true,则不要配置侦听器进程。如果BACKEND变量为true,则配置侦听器进程。通过这种方式,我可以开始扩展我需要的前端/后端服务,还可以在不丢失请求的情况下关闭后端服务。

任何指针、最佳实践或任何其他选项都将不胜感激。

您可以根据自己的描述,使用环境变量,或者您可能也有兴趣使用不同的概要文件/bean配置构建应用程序,并制作两个不同的图像。

在这两种情况下,您都应该使用两个不同的Kubernetes部署,这样您就可以独立地扩展和配置它们。

您可能还对Leader Election模式感兴趣,在该模式中,您只需要一个活动副本,前提是只有一个副本处理队列中的事件才有意义。根据可用性的要求,也可以通过仅使用单个复制副本来解决此问题。

最新更新