uns*_*Ptr 3 azure azure-functions
我有一些想法,但我无法证实。假设我们需要HttpClient上课。每次调用时创建它都是公平的。另外,建议仅使用 HttpClient 的单个实例。我想为 HttpClient 创建静态属性并在静态构造函数中初始化它。由于初始化是线程安全的并且 HttpClient 本身也是线程安全的,因此我们可以安全地使用它。
创建静态字段可以节省函数的执行时间和内存使用量。但在这种情况下它是单例吗?据我了解 AF可以立即横向扩展。这意味着当 Azure 决定扩展您的应用程序时,它将创建新的容器/VM 并平衡实例之间的负载。因此,在这种情况下,HttpClient 字段将是容器/VM 范围内的单例,但不是应用程序之间的单例。
我的想法是:
即使字段在所有 AF 实例中不是单例,我们仍然受益。我的想法是否正确,或者使用它们有副作用。
是的,你的结论是正确的。强烈建议缓存类似的内容HttpClient,不仅仅是为了内存问题,还因为它有助于保持较低的连接数量(您可以轻松达到函数运行的沙箱中的连接限制)。
事实上,运行时的每个实例都会有自己的副本,但它仍然非常有益,因为运行时的给定实例可用于多次执行(在某些情况下是并发的,因此需要线程安全)。
| 归档时间: |
|
| 查看次数: |
943 次 |
| 最近记录: |