我有一个Oracle数据库视图,其中包含大约8000名员工的详细信息。我需要从该视图填充员工搜索建议。我计划使用WSO2 DSS / DSS + ESB为其创建数据服务。而是查询每个服务调用的视图,我想在DSS / ESB中缓存整个视图并查询缓存以查找所有过滤查询("喜欢","其中& #34;查询),直到缓存过期。
ESB / DSS是否有与上述情况相关的可能性?
提前致谢。
答案 0 :(得分:1)
您可以将缓存介体与WSO2 ESB一起使用:
<proxy xmlns="http://ws.apache.org/ns/synapse" name="Test" transports="https http" startOnLoad="true" trace="disable">
<description/>
<target>
<inSequence>
<cache id="someCache" scope="per-host" collector="false" hashGenerator="org.wso2.caching.digest.DOMHASHGenerator" timeout="10">
<onCacheHit>
<log level="custom">
<property name="debug" value="incache"/>
</log>
<header name='To' action="remove"/>
<send/> <!-- send back previous reponse, outSequence will not be executed -->
</onCacheHit>
<implementation type="memory" maxSize="1000"/>
</cache>
<send> <!-- Current request (hash) has not been found in the cache -->
<endpoint>
<address uri="http://myhost:8080/myapp/MyService"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<cache id="someCache" scope="per-host" collector="true"/> <!-- Add this response to the cache -->
<log level="custom">
<property name="debug" value="outseq"/>
</log>
<send/>
</outSequence>
</target>
</proxy>
在inSequence中,如果缓存中存在当前请求,则将使用先前的响应执行“onCacheHit”中介。否则,将执行到端点的“发送”
在outSequence中,您将响应添加到缓存