2016-09-13 1 views
0

많은 사람들이 AQMP-RPC를 사용하여 동기식 호출을하지 않는다고 제안했습니다. 내 응답 데이터 크기가 4MB이므로 REST-HTTP는 서버에서 클라이언트로 데이터를 전송하는 데 너무 많은 시간이 소요됩니다. 그래서 우리는 RPC를 이동하기로 결정했습니다.동기 호출을 위해 REST-HTTP에서 Rabbitmq-RPC로 이동해야합니까?

큰 데이터를 전송하기 위해 REST-HTTP에서 AQMP-RPC 또는 Apache Avro, Thrift 또는 Google 프로토콜 버퍼와 같은 다른 RPC 메소드로 이동해야 할 사람이 있습니까?

+1

"* 너무 많은 시간 *"이란 정확히 무엇입니까? 어느 쪽이든, 제한은 도구가 아니라 네트워크 일 가능성이 큽니다. 이미 데이터를 압축하지 않은 경우 데이터 압축을 고려하십시오. – JensG

+0

@ JensGBut 예, 시도했지만 압축 및 압축 해제 성능이 저하되었습니다. – VikashG

답변

1

Cap'n Proto을 살펴 보는 것보다 더 나쁠 수 있습니다. 그것은 직렬화에 대한 흥미로운 이야기입니다. 응용 프로그램 코드에 문제가없는 반면, 직렬화에 대한 필요성을 없애려는 노력입니다. 그것은 Google 프로토콜 버퍼 v2를 만든 사람 중 한 명이 작성한 것입니다. 그들은 한 RPC 호출의 결과가 후속 RPC 호출에 대한 입력 일 경우 RPC를 사용하여 부적절한 작업을 수행하므로 시간을 절약 할 수 있습니다.

GPB는 바이너리 와이어 포맷을 가진 (Cap'n Proto는 제외하고) 거의 비슷하게 될 것입니다. 비트와 바이트를 마샬링해야합니다. 그리고 지역 대표로부터. Avro는 물론 메시지가 포함 된 자체 스키마를 포함합니다. 메시지가 전송되는 것보다 크면 불쌍합니다.

무엇이든 바이너리가 텍스트 (JSON, XML 등)보다 좋은 방법 일 것입니다.

관련 문제