我有大量用 Java 编写并编译为 WAR 文件的不同独立(无状态)Web 服务。我想将它们部署到单个 Web 应用程序服务器。
如果每个 WAR 文件中的服务处理的 URI 都以我可以用作 Web 应用程序名称的前缀开头,那么这将很容易。例如,我可以有
销售战争文件:包含以下代码:
GET http://example.com/sales/widgets
POST http://example.com/sales/widgets
GET http://example.com/sales/sky-hooks营销战争文件:包含以下代码:
GET http://example.com/marketing/widgets
PUT http://example.com/marketing/sky-hooks
...在这种情况下,我将简单地部署两个名为“sales”和“marketing”的 WAR 文件。然而,我没有那么幸运。相反,组件处理的 URI 路径重叠。像这样的东西:
SALES WAR 文件:包含以下代码:
GET http://example.com/widgets/sales
POST http://example.com/widgets/sales
GET http://example.com/sky-hooks/sales营销战争文件:包含以下代码:
GET http://example.com/widgets/marketing
PUT http://example.com/sky-hooks/marketing
我的问题是如何(如果有的话)将它们部署在单个 Web 应用程序服务器上。
我愿意接受需要大量工作的建议。例如,我目前最好的想法是构建在常规 URI 路径之前期望组件名称前缀的服务,然后将所有传入流量通过不同的服务器管道传输,该服务器知道每个 URI 模式属于哪个组件并将 URI 修改为添加该前缀。这种方法的困难在于,像 Swagger 这样读取我的源代码的工具会错误地理解 URI 的样子。
有任何想法吗?