具有微服务的持久任务子编排

Durable tasks sub orchestration with micro services

我正在尝试使用 azure durable tasks 来编排一些微服务,但是 运行 在理解任务中心的工作方式以及正确协调项目方面存在一个小差距。

我正在尝试创建一个主编排器,负责启动子编排以完成实际工作。下面是我要实现的目标的图表。

想法是每个 .net 项目都能够独立于另一个进行扩展,因此如果 .Net 项目 2 承受相当大的负载,我将能够只扩展该项目而不必担心其他 2 个项目。我 运行 遇到的问题是据我所知,taskhub 队列由所有服务共享,因此无法让每个进程只关注它的工作,这意味着每个项目都可以看到队列中的所有内容,并且它可能会导致 1 个项目将发往项目 2 的消息从队列中取出。这是否正确?

通过阅读文档,我似乎不清楚我可以发送项目 2 的子编排消息以及发送项目 3 的特定编排。

我是否错误地考虑了这个问题,是否有其他方法可以解决这个问题?

你想要的无法实现

截至目前,Azure Function 仅允许编排器函数调用存在于同一函数应用程序中的 activity 和子编排器函数。主要原因是技术原因:任务中心内的队列在所有函数之间共享,因此无法保证发往 FunctionAppA 的消息不会被 FunctionAppB 接收。

如果需要跨项目通信,正确的方法是使用http或者queue。