Не совсем то же самое. gRPC в первую очередь предназначен для взаимодействия гетерогенных сервисов, ZeroMQ (ZMQ/0MQ/ØMQ) — это платформа обмена сообщениями более низкого уровня. ØMQ не определяет сериализацию полезной нагрузки, кроме передачи двоичных больших двоичных объектов, тогда как gRPC по умолчанию выбирает протокольные буферы. ØMQ в значительной степени застрял на одной машине или машинах между центрами обработки данных/облаками, в то время как gRPC потенциально может работать и на реальном клиенте (т. е. на мобильном или веб-сайте, он уже поддерживает iOS). gRPC с использованием ØMQ может быть значительно быстрее и эффективнее для служб в облаке/центре обработки данных, чем накладные расходы, задержка и сложность цепочки запросов/ответов http2. Я не уверен, как (или даже если) gRPC защита TLS подходит для общедоступного облака и мобильного/веб-использования, но всегда можно внедрить сквозные требования безопасности (например, libsodium) на уровне маршрутизатора/контроллера среды приложения/приложения и запустить в режиме открытого текста (что также удалит Форк OpenSSL BoringSSL не вызывает головной боли при обслуживании из-за недостатков восходящего потока).
Для сервисов с очень высокой задержкой/низкой пропускной способностью (например, миссии на Марс) можно подумать о RPC с использованием транспорта, такого как SMTP (т. е. альтернативная репликация Active Directory) или MQTT (т. е. Facebook Messenger, ZigBee, SCADA).
Бонус (не по теме): было бы неплохо, если бы у gRPC были альтернативные подключаемые транспорты, такие как ØMQ (который также сам поддерживает сокеты UNIX, TCP, PGM и inproc), потому что HTTP/2 еще не стабилен на всех языках и медленнее, чем ØMQ. И стоит взглянуть на nanomsg (особенно в мире HFT), потому что его можно расширить с помощью RDMA/SDP/MPI и сделать безумно малой задержкой/нулевым копированием/готовым к Infiniband.
person
Community
schedule
20.03.2017