Microservices 工人-难以选择最佳技术

Microservices 工人-难以选择最佳技术,microservices,azureservicebus,worker,.net-core-3.0,Microservices,Azureservicebus,Worker,.net Core 3.0,我想创建一个微服务,用于并行处理通过Azure服务总线推送的一些任务。如果任务是否成功完成,此微服务将通知Azure服务总线。见下图: 我已经有三个选择要考虑: 托管服务 Azure Web作业 天青批 既然一个必要条件是这个微服务需要在.NETCore3中,那么使用Web作业而不是托管服务有什么正当理由吗?哪些选项保证了健壮性和可扩展性? < P>根据我对Azure云并行处理的知识,考虑到您的场景,有三个解决方案作为候选选项,我认为足够好,如下。 Azure Web作业。正如我所知,Azur

我想创建一个微服务,用于并行处理通过Azure服务总线推送的一些任务。如果任务是否成功完成,此微服务将通知Azure服务总线。见下图:

我已经有三个选择要考虑:

  • 托管服务
  • Azure Web作业
  • 天青批

  • 既然一个必要条件是这个微服务需要在.NETCore3中,那么使用Web作业而不是托管服务有什么正当理由吗?哪些选项保证了健壮性和可扩展性?

    < P>根据我对Azure云并行处理的知识,考虑到您的场景,有三个解决方案作为候选选项,我认为足够好,如下。
  • Azure Web作业。正如我所知,Azure只支持在Azure WebApps的多个实例上运行连续的WebJobs,如文档中的下图所示,其可扩展性取决于Azure App服务层和应用实例的数量。此选项的性能有限,不适用于真正的并行计算场景

  • Azure批处理,Azure云上真正的大规模并行和高性能计算(当然,HDInsight除外)。然而,若并没有繁重的数据处理任务,那个么在多线程中执行一些只需要并发特性的任务就太昂贵了

  • Azure功能带有服务总线触发器,请参阅官方文档。真正的无服务器架构是为您的微服务场景而设计的。其对横向扩展和最大实例特性的限制,如下图(来自文档)所示,将在文件中定义

  • 因此,如果不是真正的并行数据处理场景,我建议使用Azure函数,否则Azure批处理是并行大数据任务的最佳选择。Azure WebJobs只能使用Azure应用程序服务托管您的网站,并使用连续作业运行并行任务,但性能有限。在我看来,托管服务可以在多线程内处理基于webhook请求的并发任务,这是不推荐的