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

使用Hazelcast在Python和Java之间共享集合,java,python,hazelcast,Java,Python,Hazelcast,我有两个程序,一个是Java,另一个是Python。 在Java上,我需要在Hazelcast IMap中存储一个HashMap,然后在Python上将其作为一个字典,这可能吗 一切皆有可能 也许你想要的已经实现了 您可能需要在两个程序之间交换自己的消息 你可以做AMQP,HTTP,XMPP。。。发送您的信息 您的消息可以是任何格式,如XML-RPC、JSON-RPC、JSON、您自己的格式 然后。。。 在Python方面,您可以从5和dict转换为格式 在Java方面,您可以从5和一些Java

我有两个程序,一个是Java,另一个是Python。 在Java上,我需要在Hazelcast IMap中存储一个HashMap,然后在Python上将其作为一个字典,这可能吗

  • 一切皆有可能
  • 也许你想要的已经实现了
  • 您可能需要在两个程序之间交换自己的消息
  • 你可以做AMQP,HTTP,XMPP。。。发送您的信息
  • 您的消息可以是任何格式,如XML-RPC、JSON-RPC、JSON、您自己的格式
  • 然后。。。
  • 在Python方面,您可以从5和dict转换为格式
  • 在Java方面,您可以从5和一些Java容器转换格式
  • 祝你好运

  • 如果您想使用Hazelcast,我建议使用已经支持两种语言(如ApacheAvro或Protobuffers)的序列化。这样,您可以在两侧序列化和反序列化


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

    Hazelcast已经有了一个很好的Python客户端库,可以用于此目的。可从主页下载资源

    代码示例位于github中 例如:


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

    是的,映射和结构是相同的数据结构。然而,python字典支持混合类型的值。java的映射没有-除非用object定义。@dram,好的。Hazelcast不支持这种类型的共享?只有Hazelcast的收藏可以共享?
    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