2017-12-13 5 views
-5

두 개의 프로그램이 있습니다. 하나는 Java로, 다른 하나는 Python으로되어 있습니다. Java에서 Hazelcast IMap에 HashMap을 저장하고 파이썬에서 사전으로 가져와야합니다. 가능합니까?Hazelcast를 사용하여 Python과 Java간에 콜렉션 공유

+0

예,지도와 구조는 동일한 데이터 구조입니다. Hovever, python 사전은 값에 대한 유형의 혼합을 지원합니다. 자바의지도 않습니다 - 당신이 개체로 정의하지 않는 한. – dram

+0

@ dram, ok so. Hazelcast는 이러한 유형의 샤를 링을 지원하지 않습니까? Hazelcast의 컬렉션 만 공유 할 수 있습니까? – HHead26

답변

0
  1. 모든 것이 가능하다
  2. 어쩌면 당신은 이미 구현되어 무엇을 찾고 있는지.
  3. 두 프로그램간에 사용자 자신의 메시지를 교환해야 할 수 있습니다.
  4. 당신은 ... 같은 XML-RPC, JSON-RPC, JSON, 자신의 형식, 같은 형식이 될 수
  5. 귀하의 메시지를 통해 메시지를 보낼 수 ... AMQP, HTTP, XMPP를 할 수
  6. 그러면 ...
    1. 파이썬 쪽에서는 5에서 dict로 형식을 변환합니다. 자바 측면에서
    2. , 당신은 5에서 형식과 일부 Java 컨테이너
  7. 행운에 /로부터 변환.
0

Hazelcast를 사용하려는 경우 이미 Apache Avro 또는 Protobuffers와 같은 언어를 모두 지원하는 직렬화를 사용하는 것이 좋습니다. 그렇게하면 양쪽에서 직렬화 및 비 직렬화를 수행 할 수 있습니다.

Hazelcast에서는 StreamSerializer 인터페이스를 사용하여 생성 된 클래스에 serialization을 전달해야합니다. protobuf. 시리얼 라이저를 등록하면 갈 수 있습니다.

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 
0

, Noctarius 이미 예제를 공유했다. 주의를 기울이는 유일한 방법은 양쪽에서 IdentifiedDataSerializable 직렬화를 사용하는 것입니다.