我们正在使用 .Net Core 开发 Web API。为了执行后台任务,我们使用了托管服务。
系统已使用负载均衡器托管在 AWS Beantalk 环境中。因此,基于负载 Beanstalk 创建/删除系统的新实例。
我们的问题是,由于后台服务也在 API 内部运行,当负载均衡器增加实例时,后台服务的数量也会增加,并且有可能多次执行相同的任务。理想情况下,应该只有一个后台服务实例。
解决此问题的一种方法是在负载平衡环境中停止执行后台服务,并为后台服务提供专用的非负载平衡单实例环境。
这是一个有点丑陋的解决方案。所以,
1)有没有更好的解决方案?
2) 有没有办法在负载平衡环境中识别主实例?如果是这样,我可以有条件地注册托管服务。
非常感谢任何帮助。
谢谢