我们正在使用 .Net Core 开发 Web API,并使用 Hosted Services 执行后台任务。
系统已在 AWS Beanstalk 环境中使用负载均衡器进行托管。因此,根据负载情况,Beanstalk 会创建/删除系统的新实例。
我们的问题是, 由于后台服务也在 API 内部运行,当负载均衡器增加实例时,后台服务的数量也会增加,并且可能会多次执行同一任务。理想情况下,后台服务应该只有一个实例。
解决这个问题的一种方法是,在负载平衡环境中停止执行后台服务,并为仅用于后台服务的专用非负载平衡单实例环境提供支持。
这是一种不太美观的解决方案。因此,
1)有更好的解决方案吗?
2)是否有一种方法可以在负载平衡环境中标识主要实例?如果有,我可以有条件地注册 Hosted services。
非常感谢您的帮助。
谢谢
系统已在 AWS Beanstalk 环境中使用负载均衡器进行托管。因此,根据负载情况,Beanstalk 会创建/删除系统的新实例。
我们的问题是, 由于后台服务也在 API 内部运行,当负载均衡器增加实例时,后台服务的数量也会增加,并且可能会多次执行同一任务。理想情况下,后台服务应该只有一个实例。
解决这个问题的一种方法是,在负载平衡环境中停止执行后台服务,并为仅用于后台服务的专用非负载平衡单实例环境提供支持。
这是一种不太美观的解决方案。因此,
1)有更好的解决方案吗?
2)是否有一种方法可以在负载平衡环境中标识主要实例?如果有,我可以有条件地注册 Hosted services。
非常感谢您的帮助。
谢谢