首先让我解释一下我将要开发的应用程序。 我们在Camunda开发了以下一系列工作流程:
FileTransfer工作流使用全局子流程借助于camunda中的调用活动任务,类似地FileConverter工作流也在调用活动任务的帮助下使用子流程。 全局进程是长时间运行的进程,因此无论何时任何子进程启动它都会在特定的兔子队列中发送消息,并等待特定兔队列中的响应以使用接收任务恢复子进程。 FileTransfer工作流程& FileConverter工作流可以独立调用。我们在spring中创建了一个兔子队列列表器,它将监听各个工作流的特定队列,每当在这些队列中删除一条消息时,工作流就会被调用。
在开发过程中,所有三个工作流程都将在单个tomcat实例中进行部署和测试,因此工作流程无需担心。
现在计划是使用码头工人将它们托管到云端,计划是在3个docker容器中托管这三个工作流程。
所有三个camunda工作流程都将使用相同的数据库来存储特定的工作流程活动和变量。
面临的挑战:
为了克服上述挑战,我想到了 部署计划2:
面临的挑战:
所以,如果有人可以帮助我建立一个更好的架构,或者任何一个在camunda中具有良好经验并且在异构集群中部署的人可以指导我。
感谢。
答案 0 :(得分:2)
您可以推断,如何实现流程之间的通信。由于您将部署分开,因此不能选择子进程/调用活动。更好的方法是使用BPMN消息并在进程之间创建编排。如果您已经在使用Rabbit,则可以开发到Rabbit适配器的BPMN消息并传递消息。
还有另外两种连接系统的方法: