Кто пробовал Protobuf, Thift, Avro?

Необходимо реализовать общение мобильного клиента с сервером. Варианта реализации общения клиента с сервером два:


1. HTTP. клиент выступает в качестве веб-клиента и общается с сервером обмениваясь JSON. на сервере бежит Apache2 или Nginx – самая простая реализация


2. TCP. клиент и сервер общаются бинарным потоком сериализуя передаваемый объект с помощью Protobuf/Thift/Avro. на сервере необходимо реализовать свой небольшой TCP-сервер – чуть сложнее, но интереснее


Выбран второй вариант. Если у кого есть опыт работы с Protobuf/Thift/Avro можете рассказать о сложностях работы с ними?


Серверная часть = Ubuntu server + MongoDB + CGICC (CGI будут написаны на C++) + Nginx или Apache. Возможно, CGI будет работать в виде модуля Nginx или Apache.
  • Вопрос задан
  • 4477 просмотров
Пригласить эксперта
Ответы на вопрос 4
jov
@jov
Прямо сейчас разрабатываю клиент-серверное приложение и склоняюсь к общению через websocket'ы. Поясню почему — уж слишком много я видел в своей жизни кантор где доступ в инет организован через http proxy, поэтому стараясь минимизировать число клиентов которые отсекаются из-за вот такой организации и было выбрано решение на базе http.
Ответ написан
solver
@solver
Пользовал protobuf с Java. В качестве сервера netty. Клиент тоже Java. Отличный результат.
Ответ написан
VBart
@VBart
Модуль Nginx для доступа к MongoDB возможно позволит вам обойтись для большинства запросов без промежуточного CGICC.
Ответ написан
@dborovikov
Советую еще глянуть не Zeroc ICE. По поводу протобуфа и тому подобного, основная пролема — это потребность перегенерации кода. Ну и не текстовые протоколы сложнее отлаживать. Я бы на вашем месте брал JSON over HTTP вариант. CGI брать не рекомендую, так как по скорости ничего выдающегося вы не получите (я же правильно понял, что хочется написать оптимальное приложение?)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы