使用Hazelcast在Python和Java之间共享集合

时间:2017-12-13 12:01:58

标签: java python hazelcast

我有两个程序,一个是Java,另一个是Python。 在Java上我需要在Hazelcast IMap中存储一个HashMap,并将其作为字典在Python上获取,是否可能?

4 个答案:

答案 0 :(得分:0)

  1. 一切皆有可能
  2. 也许您正在寻找的内容已经实施。
  3. 您可能需要在两个程序之间交换自己的消息。
  4. 您可以通过
  5. 发送AMQP,HTTP,XMPP ...来发送消息
  6. 您的邮件可以是任何格式,例如XML-RPC,JSON-RPC,JSON,您自己的格式,......
  7. 则...
    1. 在Python方面,你从/和你的格式转换为5和dict。
    2. 在Java方面,您从/和您的格式转换为5和一些Java容器
  8. 祝你好运。

答案 1 :(得分:0)

如果您想使用Hazelcast,我建议您使用已经支持Apache Avro或Protobuffers等语言的序列化。这样你就可以对双方进行序列化和反序列化。

在Hazelcast中,您需要使用StreamSerializer接口并将序列化转发到生成的类,例如: protobuf的。注册序列化器,你就可以了。

答案 2 :(得分:0)

Hazelcast已经拥有一个很好的Python客户端库,可用于此目的。资源可以从主页https://hazelcast.org/clients/python/

下载

代码示例位于github https://github.com/hazelcast/hazelcast-python-client/tree/master/examples 例如:

import hazelcast
config = hazelcast.ClientConfig()
# Hazelcast.Address is the hostname or IP address, e.g. 'localhost:5701'
config.network_config.addresses.append('Hazelcast.Address')
# blocking map
my_map = client.get_map("map-name").blocking()
or 
my_async_map = client.get_map("map-name")
please check the examples in Github

答案 3 :(得分:0)

可能,Noctarius已经分享了这些例子。唯一需要注意的是双方都使用IdentifiedDataSerializable序列化。