gpt4 book ai didi

java - 缓存 WSDL 响应的有效方法

转载 作者:搜寻专家 更新时间:2023-10-30 23:15:30 25 4
gpt4 key购买 nike

我的基于 Java 的网络应用程序正在与远程 WSDL 网络服务交互。

我构建了一个特定于服务的 WSDL 请求。我使用 HTTP 客户端发出此 WSDL 请求,并取回 WSDL 响应。

由于我的情况可以接受,为了优化性能和带宽使用,我想缓存 WSDL 响应,以便下次我发出相同的请求时,我的 Web 应用程序可以直接从持久数据库加载响应.

使用 JAXB.marshalJAXB.unmarshal 我可以获得序列化 XML 格式和“Java 对象表示”的响应表示。所以我有了建立一个数据库来保存编码的 XML 表示的想法。但在我的例子中,典型响应的 XML 文件表示很容易达到 200 KB。正如我们对 XML 文件所知,此大小在很大程度上与 XML 的冗长相关,并且可能会大大减少以优化数据库容量使用和数据库读写速度。

是否有一种有效的方法来缓存和保留 WSDL 响应?也就是说,我正在寻找一种为函数 f(someWSDLRequest) -> someWSDLResponse

实现映射的好方法

最佳答案

要缓存您需要一个键和一个值。在这种情况下,显然该值是来自 SOAP 服务的响应。

对于 key ,为什么不尝试将参数连接成一个字符串(我以前多次看到过这种做法)或对请求进行 MD5 散列。它使缓存键小而简单,如果请求相同,它总是相同的。

当一个请求进来时,你在缓存中有一个响应,服务它。

如果不存在,从数据库中获取,放入缓存中,然后服务。

如果底层对象发生变化(缓存的响应),请使缓存失效,或者只是在其上设置过期时间并让它随时间发生。

关于java - 缓存 WSDL 响应的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665539/

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