2014-10-02 6 views
6

Мы используем Apache Thrift для обмена сообщениями между двумя системами. В одном из сообщений мы обмениваемся списком (C++), который может стать огромным по размеру. Не могли бы вы сообщить мне, какой максимальный размер сообщения мы можем обменять с помощью Apache Thrift?Максимальный размер сообщения Apache Thrift

+0

Что означает «огромный»? – JensG

+0

В настоящее время мы обмениваемся списком структуры (каждый размер 100 байт). Это может распространяться на список размером 500 или более (> 50 КБ). – user1732768

ответ

3

Не существует определенного предела «по существу» (по крайней мере, этого я не знаю). В основном это зависит от того, как хранятся данные в памяти, какой нагрузки на сервере и сколько ресурсов доступно. По большей части, contiguos блоков памяти (RAM), скорее всего, станет самым скудным ресурсом, поэтому мы должны сосредоточиться на этом.

«как хранятся данные в памяти» относится к тому факту, что для обеспечения большей пропускной способности некоторые транспорты (буферизованные, обрамленные) имеют тенденцию выделять больше памяти и более крупные блоки, чем другие. В зависимости от реализации языка этот процесс может быть реализован более или менее эффективно с точки зрения стоимости памяти.

Если вы действительно планируете передавать большие блоки данных, вы также должны посмотреть на другие варианты, как

  • разделения на порции данных на блоки
  • отправка/возвращение лишь URL или долю локальной сети через службу, а не все данные
+0

Существует ли канонический подход для «_chunking data into blocks_» для отправки/получения данных в контексте Thrift? Благодаря! – blong

+1

Нет, у вас есть всякая свобода реализовать его так, как вам это нужно ;-) – JensG

+0

Хе-хе, справедливо! :) – blong

Смежные вопросы