0

不知道我是否在问一个有效的问题!但突然有了这个疑问,所以试图清除我的疑问。

考虑有 2 个 tomcat 正在运行,当客户端请求 servlet 并且此请求由 tomcatA 处理时,如果另一个依赖于第一个请求的请求由 tomcatB 处理,我想知道 tomcats 如何共享数据他们之间??第二个请求是否会暂停,直到第一个请求被完全处理?

提前致谢

4

1 回答 1

0

有很多方法可以做到这一点,你的问题是非常开放的,所以如果它被投票关闭,我不会感到惊讶。同时,我可以想到几种在 Tomcat 实例之间“共享”数据的方法:

  1. 内存缓存
  2. JMX
  3. 古老的关系数据库
  4. 手动通知系统直接通过套接字等进行通信。

至于让一个请求“等待”另一个请求完成,这就是事情开始变得危险的地方:您可以轻松地在系统中设计死锁,这可能会在每个请求等待另一个请求时锁定整个集群。

我无法想象这样一个用例,其中多个客户端在完成工作之前正在等待彼此的工作完成,但客户端不会容忍丢失先决条件数据。

于 2013-01-30T17:51:59.720 回答