Да, API на основе json можно было бы построить поверх ZeroMQ вместо HTTP. Для этого потребуются сокеты REQ/REP. Однако это не кажется хорошим выбором.
Основным преимуществом подхода JSON+HTTP является переносимость. JSON+HTTP поддерживается «из коробки» практически любой средой программирования, ZeroMQ поддерживается не так широко (например, нет поддержки в браузерном JS). Кроме того, ZeroMQ не так безболезнен в настройке, поэтому потребители услуг, вероятно, не будут довольны этим выбором.
С другой стороны, основным преимуществом ZeroMQ является производительность: это здорово, если вам нужно передавать много мегабайт (или, возможно, гигабайт) данных в секунду. Кодирование/декодирование JSON действительно быстрое, но размер также имеет значение для такого рода задач. Любая инфраструктура бинарной сериализации кажется лучшим выбором, их много: protobuf, thrift, BSON, kryo, avro и т. д.
Так что я бы продолжал использовать JSON+HTTP для API веб-сервисов: современные инструменты HTTP-сервера обеспечивают отличную производительность и масштабируемость. А ZeroMQ — отличный выбор для связи в контролируемой среде благодаря своим функциям параллелизма и четко определенным шаблонам использования.
person
Wildfire
schedule
11.01.2013