1

我有一个要求,我需要创建一个第三方应用程序来测试 Oracle Coherence 中任何对象的存在。

场景:我们的主应用程序使用 Oracle Coherence 存储一些数据,现在我必须创建一个单独的应用程序(它将在不同的服务器上运行 - 在 coherence 集群节点之外)。该特定应用程序将检测某些特定对象是否存在于相干性中。我们也没有计划在这台机器上运行一致性。任何第三方应用程序(不属于 coherence 集群的一部分)可以连接到 coherence 并获取数据吗?如果是,那怎么办?我可以得到一些指示来做同样的事情吗?

4

2 回答 2

2

有多种方法可以做到这一点。

1) 使用 Coherence Extend - 这允许任何应用程序与 Coherence 交互,而无需成为 Coherence Cluster 的一部分。参考http://docs.oracle.com/cd/E14526_01/coh.350/e14509/configextend.htm

仅当第三方应用程序使用 Java、.Net 或 C++ 时才支持此选项 http://coherence.oracle.com/display/COH35UG/Coherence+Extend#CoherenceExtend-Typesofclients

2) 使用 REST API - Coherence 的较新/最新版本公开了使用 REST API 的缓存数据管理。请参阅http://docs.oracle.com/cd/E24290_01/coh.371/e22839/rest_intro.htm

此选项对客户端/第三方技术没有任何限制,因为它基于 HTTP 上的 XML/JSON。

使用 REST,您可以检查缓存键的存在,如下所示。

获取操作

获取 http://{host}:{port}/cacheName/key

根据键从缓存中返回单个对象。如果具有指定键的对象不存在,则返回 404(未找到)消息。

于 2013-02-05T15:32:36.097 回答
1

前段时间我使用 C++ API 创建了这样一个工具。

https://github.com/actsasflinn/coherence-tool

为了编写脚本,我还将 C++ API 封装在 Ruby 绑定中。

https://github.com/actsasflinn/ruby-coherence

它们中的任何一个都可以在集群外部独立运行,并依赖于与集群通信的 TCP 代理方法。

于 2014-04-25T00:33:07.983 回答