2016-09-13 14 views
0

Я читал много, многие люди не предлагали использовать AQMP-RPC для синхронного вызова. Размер моего ответа составляет 4 МБ, поэтому REST-HTTP занимает слишком много времени для отправки данных с сервера на клиент. Итак, мы решили переместить RPC.Должен ли я переходить из REST-HTTP в Rabbitmq-RPC для синхронного вызова?

Может кто-нибудь, пожалуйста, предложите мне переходить с REST-HTTP на AQMP-RPC или любые другие методы RPC, такие как Apache Avro, Thrift или Google Protocol Buffer для отправки больших данных.

+1

Что такое «слишком много времени»? В любом случае, ограничение, скорее всего, не инструмент, а сеть. Рассмотрите сжатие данных, если у вас их уже нет. – JensG

+0

@JensGBut Да, я пытался, но сжимал и декомпрессировал ухудшение производительности. – VikashG

ответ

1

Вы можете сделать хуже, чем взглянуть на Cap'n Proto. Это интересный подход к serialisastion, в котором он пытается устранить необходимость в нем, но все еще делает все в порядке в коде приложения. Это написано одним из парней, которые сделали Google Protocol Buffers v2. Они тоже делают проворную вещь с RPC, что позволяет экономить время, если результат одного вызова RPC - это просто вход для последующего вызова RPC.

GPB тоже не так уж и плох, ASN.1 и т. Д. Все что угодно (кроме Cap'n Proto), имеющее формат бинарных проводов, вероятно, будет примерно одинаковым - они должны маршировать биты и байты и из местных представлений. Avro, конечно, включает в себя свою схему с сообщениями - жаль, если это больше, чем отправляемое сообщение.

Любой бинарный файл, вероятно, лучше, чем любой текст (JSON, XML и т. Д.).