我正在使用 Azure 事件网格最终确定我的事件处理程序,并且我想到了管理它们时可能遇到的问题。
我正在使用 C# 进行编程,因此我的事件处理程序是 Azure Function Apps,并且必须作为 Web Hook 进行订阅。
现在我的问题是,如果我说有 10 个不同的 Azure Function App 事件处理程序,是将它们放入具有不同端点的单个 Function 应用程序中更好,还是将它们放入不同的应用程序 Functions 中更好。
我的意思是,如果我将它们全部放在不同的应用程序功能中,显然会有更大的管理负担,但是假设我必须更新一个事件处理程序,如果它们都在同一个功能应用程序中,这会导致所有其他事件中断该函数应用程序中的处理程序,每次更新后我是否需要重新订阅它们?
那么将所有事件处理程序放在自己的函数应用程序中更好吗?
该决定取决于您的隔离、可扩展性和管理的优先级。
如果是单功能应用程序(具有多个端点)
优点:更容易管理和部署,共享资源。
缺点: 为一个处理程序重新部署应用程序可能会短暂影响所有处理程序。但是,除非应用程序 URL 发生变化,否则您通常不需要在更新后重新订阅。
如果是多个功能应用程序(每个应用程序一个处理程序):
优点:隔离可确保对一个处理程序的更新不会影响其他处理程序。每个应用程序都可以独立扩展,从而更适合具有不同工作负载或配置的处理程序。
缺点:更高的管理开销。
如前所述,如果处理程序具有相似的工作负载、共享配置和低更新频率,请使用单功能应用程序。如果正常运行时间和独立扩展至关重要或者处理程序的性能需求存在显着差异,请选择单独的功能应用程序。
查看 MS 的以下文档以进一步了解 -