Java의 RMI를 통해 원격 메소드를 호출하는 단순성과 매우 흡사합니다. 그러나 직렬화 형식의 자세한 정보는 중요한 버즈 킬입니다 (예, 벤치마킹 해 주셔서 감사합니다). 썬의 아키텍트는 RPC (느슨하게 말하자면) 컴포넌트를 디자인 할 때 명백한 일을 한 것처럼 보였지만 직렬화를 구현할 때 서사시는 실패했습니다.타사 라이브러리를 사용하여 (쉽게) Java RMI의 직렬화를 처리 할 수 있습니까?
반대로, 그것은 드리프트, 아 브로, Kryo (특히), 프로토콜 버퍼 (순전히), 등의 건축가를 보인다 자신의 직렬화 형식을 설계하지만, 하나는 제공하지 않는 경우은 일반적으로 분명 옳은 일을했다 RPC 메커니즘을 사용하면 불필요하게 복잡한 (또는 미성숙 한) 메커니즘이나 원격 메소드를 호출하는 것보다 데이터 전송을위한 도구를 제공 할 수 있습니다 (많은 용도로 완벽하게 사용할 수 있지만 내가 원하는 것은 아닙니다).
명백한 질문 : 어떻게 RMI의 메서드 호출 사랑 스러움을 사용할 수 있습니까? 그러나 위의 라이브러리 중 하나를 유선 프로토콜로 사용합니까? 이것은 많은 일없이 가능합니까? 나는 위의 라이브러리들 중 하나를 너무 가혹하게 평가하고있다. (NB 나는 일반적으로 코드 생성을 매우 싫어한다. 나는 불필요한 주석을 약간 싫어한다. XML 설정이 꽤 많이있다. 어떤 종류의 "beans" 이상적으로, 나는 RMI처럼 원격 객체를위한 인터페이스를 구현하려고한다.
당신이 언급 한 많은 libs (Kryo는 아님)의 주된 문제점은 Schemas의 정의가 필요하다는 것입니다. 스키마를 정의하면 일반 사용 (POJO RPC 사용)이 어렵거나 불가능합니다. – StaxMan
고속 직렬화는 JDK 직렬화 호환 재 구현입니다. ObjectXXXputStream 클래스를 대체하는 데 필요한 후크가 있는지 확실하지 않습니다. https://github.com/RuedigerMoeller/fast-serialization –