【问题标题】:How to use Hazelcast with restful?如何将 Hazelcast 与 restful 一起使用?
【发布时间】:2014-02-05 01:35:13
【问题描述】:

我想在我的 Java 应用程序中使用 Hazelcast,但我也有需要从 Hazelcast 缓存获取/设置数据的 .net 应用程序。我想使用“休息”的方法。我有两个问题:

1) 如何发布和获取复杂类型?如果我有一个带有name(字符串)、age(整数)、birthDate(日期)和sex(枚举)字段的Person对象,我应该如何发布此信息以及我应该如何解析个人信息?

2) 我有一个缓存的IMap<String, String>。在我从海报插件发布带有键“3”的数据“三”后,在 Java 端 map.get("3") 返回类似:

RestValue{contentType='text/plain;charset=utf-8', value="three"}"

我希望这段代码在没有任何强制转换操作的情况下只返回“三”。

如果您提供有关此问题的信息,我将很高兴。

提前谢谢...

【问题讨论】:

  • 您的问题解决了吗?我有同样的问题

标签: java .net rest caching hazelcast


【解决方案1】:

听起来您当前的设置存在几种不同类型的问题。

1) 我对此没有很好的答案,因为我实际上对.net 中的其余客户了解不多。如果您按如下所述更改架构,也可能会获得更好的结果。

2) 看起来您在这里遇到的问题是您只是将原始请求对象 (RestValue) 存储在 IMap 中,而不是存储该对象的内容。通常对rest api的请求包含的信息不仅仅是发送到服务器的值,因此您必须从rest api中的RestValue中提取值。 Hazelcast RestValue 有一个名为 getValue() 的方法,因此您应该能够调用返回 byte[] 的 getValue()。然后,您应该将 byte[] 转换为 String(或您喜欢存储的任何数据类型,在这种情况下可能是 int)并将结果存储在您的 IMap 中,而不仅仅是存储整个 RestValue 对象.

就拥有 .net + java 架构而言,最好以您喜欢的任何语言运行 Hazelcast-server 节点,然后连接一个 .net hazelcast-client 节点和一个 java hazelcast-client 节点到同一个集群。通过这种方式,您可以让所有 .net 代码在您的 .net 客户端上运行,与您的 Java 基础架构完全分离,并使用 hazelcast 在不同的语言之间进行通信。

【讨论】:

    猜你喜欢
    • 2014-08-05
    • 2020-09-02
    • 2015-11-08
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 2015-09-30
    相关资源
    最近更新 更多