Ответ 1
Несколько причин, кроме скорости:
-
Thrift полностью генерирует код клиента и сервера, включая структуры данных, которые вы передаете, поэтому вам не нужно иметь дело ни с чем, кроме написания обработчиков и вызова клиента. и все, включая параметры и возврат, автоматически проверяется и анализируется. так что вы получаете бесплатные проверки на ваши данные.
-
Thrift более компактен, чем HTTP, и его можно легко расширить, чтобы поддерживать такие функции, как шифрование, сжатие, неблокирование ввода-вывода и т.д.
-
Thrift может быть настроен для использования HTTP и JSON довольно легко, если вы этого хотите (скажем, если ваш клиент находится где-то в Интернете и должен пропускать брандмауэры)
-
Thrift поддерживает постоянные соединения и избегает непрерывных рукопожатий TCP и HTTP, которые несет HTTP.
Лично я использую бережливость для внутренней локальной сети RPC и HTTP, когда мне нужны подключения извне.
Надеюсь, все это имеет смысл для вас. Вы можете прочитать презентацию, которую я рассказал о благотворительности здесь:
http://www.slideshare.net/dvirsky/introduction-to-thrift
Он имеет ссылки на несколько других альтернатив бережливости.