gpt4 book ai didi

java - Tomcat 中的上下文路径路由(服务交换)

转载 作者:行者123 更新时间:2023-11-28 22:14:08 25 4
gpt4 key购买 nike

这是我想要实现的目标:

我有一个 Web 服务 A,我希望它能够与其他类型 A 的不同版本的 Web 服务并排部署。现在我假设 2 个实例并排。我需要它,因为该服务有一个预热阶段,这需要一些时间从数据库构建内容,只有在准备就绪后,它才能开始为请求提供服务...

我正在考虑部署到 Tomcat6 上下文路径,例如:"/ServiceA-1.0""/ServiceA-2.0"然后有一个像 "/ServiceA" 这样的“虚拟”上下文,它将指向所需的物理服务,例如“/ServiceA-1.0”。所以外部世界会知道 ServiceA,但在内部,我的 ServiceA 相关堆栈会知道版本化的 ServiceA url(涉及更多组件,但只有 ServiceA 为外部世界提供服务)。当新服务准备就绪时,我会重新配置“虚拟”上下文以指向新服务。

到目前为止,我无法找到如何使用 Tomcat 执行此操作,并且开始认为这是不可能的。我找到了将 Apache 服务器放在 Tomcat 前面并在那里进行路由的建议,但除非必要,否则我不想注册另一款软件。

我的问题是:
- 这种“虚拟”上下文和路由可能与 Tomcat6 相关吗?
- 任何其他选择、智慧和经验教训如何实现这种服务交换方案?

最好的,
约瑟夫

最佳答案

考虑到您提到的预热期,我假设您在切换实现时希望或多或少不间断的服务。这真的很容易处理前面的 Apache。

我通常喜欢从这个额外的层中获得的灵 active 。 Apache 对您的系统没有太大的侵入性。另外 - 如果你在 unix 上运行 - 让 Apache 在端口 80 上监听是微不足道的(阅读:默认),而你必须付出额外的努力才能让 tomcat 在端口 80 上监听而不是以 root 身份运行 .

如果您从未接触过 Apache,请放心,它很容易在短时间内学习。特别是当您不需要它带来的全部功能时。配置反向代理(或 mod_jk)随处可见。您提到的功能是反向代理和负载平衡器的混合体 - 即使您只有一台服务器来平衡“之间”的负载,您也会有两个不同的上下文/版本。

不要害怕 Apache,你走在正确的道路上:)

关于java - Tomcat 中的上下文路径路由(服务交换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11046320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com