这是一个设计(架构)问题。假设有一个 Java 服务器,它处理客户端请求。该处理包括由外部 Java 进程工作人员而不是服务器本身执行的步骤。
也就是说,我们有一个服务器和一些工作进程:一些执行步骤 A的工作人员,一些执行步骤 B和步骤 C的工作人员,等等。
还假设服务器和所有工作人员使用 HTTP 进行通信。现在我想知道如何为服务器和工作人员之间的通信设计一个协议。
目前我正在考虑以下几点:
当工作人员准备好工作时,它会向服务器发送一个 HTTP GET 请求。该请求包含工作人员 ID(他的主机 + PID)、状态和步骤:例如
worker_status=READY, host=localhost, pid=1234, steps=A
当有一个步骤要执行时,服务器会发送一个带有步骤名称、输入数据和截止日期的响应:
step=A, deadline=..., data=...
当工作人员完成处理时,它会向服务器发送一个 HTTP GET 请求。该请求包含步骤名称、处理状态和输出数据
finished_step=A, status=SUCCESS, output=...
以及第一条消息中的信息(见上文):worker_status=READY, host=localhost, pid=1234, steps=A
是否有意义?服务器和工作进程之间的这种通信是否有任何现有的众所周知的协议?