2017-09-14 40 views
0

我想构建一个可扩展的计数器,我可以在之间增加Azure函数代码。这个解决方案看起来好像是可以做到的:
http://blog.smarx.com/posts/architecting-scalable-counters-with-windows-azure
但是,上面假设了一个经典的Web服务器体系结构。使用azure函数时如何构建ID字段的任何建议?可以使用该函数的调用ID(ExecutionContext.InvocationId),但是会为每个函数调用添加一个计数器行,这会非常快地失控。如何在天蓝色的功能内构建一个可扩展的计数器

回答

0

InvocationId将是每个函数实例。 Azure的功能仍然在进程中运行,所以你仍然可以使用传统的方法,像拿到机器名和进程ID:

var id = Environment.MachineName + System.Diagnostics.Process.GetCurrentProcess().Id; 

所面临的挑战是,随着无服务器,我们特地尝试抽象远离底层基础架构,所以实例可能会随着时间的推移在许多不同的进程中运行

2

除非纯粹由于学术原因,否则我不会打扰手工制作分布式计数器的内存。

相反,我会使用像Redis和它的INCR command。当然,你可以从你的Azure函数中调用它。这将不需要太多努力即可扩展到庞大的数量。

相关问题