我有一个遗留的monolith应用程序,我必须重新设计。不幸的是,其任务是以一口大小的方式重新设计。
目前,我需要为特定模块实施面向公众的新Web服务。我正在利用这种情况将其分解为自己的服务。但是,我遇到了一个问题。服务器生成的GUI(struts monolith)需要我的微服务中的一些数据。显而易见的答案是在Web服务中提供REST接口(JSON / Protocol Buffers等)以供我的monolith使用以便向用户提供结果。但这是我唯一的选择吗?
理想情况下,我想转向整体和服务之间的异步通信,但是当用户需要来自微服务的特定数据时,我该怎么办?如何在异步过程中做到这一点?当用户在GUI上等待(同步事件)时,如何让GUI和Web服务之间的通信协议不同步?
在此特定实例中,用户将使用微服务批量上传数据(csv文件)。微服务将处理数据并为用户提供选项,以便在准备好后(通过API调用)操作数据。企业希望GUI中有一个选项来查看/下载上传的文件。从本质上讲,monolith(负责GUI)需要从服务中请求文件并将其返回给用户。
有没有办法在整体和微服务之间使用同步IPC来构建这个设计?