【问题标题】:Webservice lifecycleWeb服务生命周期
【发布时间】:2013-01-29 06:50:57
【问题描述】:

我正在用 java 创建一个 Web 服务,它提供了提供有关实体的信息的工具,为此我计划构建一个缓存来保存所有信息,并从缓存中向客户提供他/她需要的任何信息.所以我只需要在 web 服务启动时而不是在每个客户端请求上构建一次缓存。

我的问题是我应该在哪里构建缓存?

无论我读到什么,每次客户端调用都会调用构造函数,所以我应该在哪里添加缓存构建功能或其他替代方法。

我找到的答案之一是使用@stateless 来解决这个问题。

【问题讨论】:

    标签: java web-services


    【解决方案1】:

    TechExchange 为我的问题提供了一个很好的解决方案,但是由于我需要一个可以与我创建的现有基于 soap 的 web 服务一起使用的解决方案,所以我创建了一个 bean,它构建一个缓存并在开始时使用 spring 注入来注入它Web 服务,所以这个 bean 将构建缓存,这可以被所有请求的客户端使用。

    【讨论】:

      【解决方案2】:

      对于网络服务器而言,缓存应该放在网络服务器之上,这称为反向代理

      话虽如此,

      • 如果您正在构建 RESTful Web 服务,您可以利用大部分针对您的资源的 Http 相关缓存控件

      • 如果您的服务是基于 Jax-WS 的,您可以构建一个缓存并通过您的数据访问通道填充它。这样任何数据检索/更新都会通过它,并且(如果没有找到命中数据库,如果找到返回类型)有效地减少数据库命中。

      【讨论】:

      • 我应该避免使用网络服务并在其间创建一个使用来自网络服务器的数据的 reverse_proxy 吗?如果我错了,请纠正我。
      • 酷,我明白了。但是是否有另一种方法可以使用现有创建的 Web 服务而不是创建新的反向代理。
      • 你的建筑是什么类型的网络服务?
      • 使用 cxf 的基于 Soap 的 Web 服务。
      • 我应该什么时候建立缓存?在构造函数中?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多