ProtoBuf를 사용하여 Java에서 RPC를하고 싶지만 각 클래스의 메타 데이터를 정의하는 개발 오버 헤드가 없습니다. 자바 직렬화와 Kryo가 이것을 할 수 있습니다. ProtoBuf로 가능합니까?proto 파일이없는 Protobuf
.proto
파일의 메타 데이터가 버전 관리와 같은 이점을 제공하지만, 내가 관리하고 관련성이 낮은 함께 시작되는 시스템 간의 RPC에 대해 아파치 스파크가 Kryo를 사용하는 방식을 비교해보십시오.
ProtoBuf를 사용하여 Java에서 RPC를하고 싶지만 각 클래스의 메타 데이터를 정의하는 개발 오버 헤드가 없습니다. 자바 직렬화와 Kryo가 이것을 할 수 있습니다. ProtoBuf로 가능합니까?proto 파일이없는 Protobuf
.proto
파일의 메타 데이터가 버전 관리와 같은 이점을 제공하지만, 내가 관리하고 관련성이 낮은 함께 시작되는 시스템 간의 RPC에 대해 아파치 스파크가 Kryo를 사용하는 방식을 비교해보십시오.
불가능합니다. 참고로 proto 파일 만 쓰면 클래스는 protoc
컴파일러에 의해 생성됩니다. 따라서 유일한 오버 헤드는 protoc
을 빌드 시스템에 통합하는 것입니다 (AFAIK에는 Maven 및 Gradle 플러그인이 있음).
오버 헤드는 참조 그래프의 종료를 포함하여 각 클래스에서 저장할 정확한 상태를 추적해야한다는 것입니다. Java Serialization 또는 Kryo를 사용하면 그렇게 할 필요가 없습니다. –
RPC 프레임 워크를 선택하는 경우 [gRPC] (http://www.grpc.io/)에 관심이있을 수 있습니다. –