我很难理解天蓝色,持久的编排功能,并行化(和缩放)是如何工作的。我指的是这的正式文件。该条规定:
因为编排器和实体函数实例是有状态的单例,所以每个业务流程或实体一次只由一个工作人员处理是很重要的。
当涉及并行运行多个业务流程函数时,“编排函数和实体函数实例是有状态的单例”到底是什么意思?
假设我有一个客户机函数,它侦听HTTP触发器,然后启动一个新的编排函数实例。如果我两次触发这个客户端函数,那么编排函数的两个实例将以两个单独的实例I并行运行,还是会按顺序运行?每个实例会有自己的控制队列吗?
或者以这为例,CallSubOrchestratorAsync总是在同一个编排实例上执行吗?如果是这样的话,这里有什么好处,因为它不会真正地并行运行多个实例?还是这里的“并行化”只是指根据不同的输入值重新启动实例和重新应用历史表的过程?
发布于 2022-08-04 17:41:02
语句“,因为orchestrator和实体函数实例是有状态的”实际上是无效的,因为如果它是有状态的,则不能运行多个orchestrator函数实例。理想情况下,语句应该只说“,因为协调器和实体函数实例是有状态的”。
并发节流链接清楚地确认了协调器函数以并发方式运行,并发性可以限制在host.json中。此外,并发性和有状态的单例是相互排斥的。因此,根据我的说法,这一说法需要纠正。
另外,每个业务流程实例可能没有自己的控制队列,但是每个业务流程实例或实体被分配到单个控制队列,并且确保只有一个工作人员处理该队列,这样就不会有任何重复。
总之,多个编排可以并行运行,但在每个业务流程中,只有活动函数并行运行,而完整的业务流程则依次执行。希望能帮上忙。
https://stackoverflow.com/questions/73151129
复制相似问题