Repolode
smallnest

smallnest/rpcx

RPC-фреймворк на Go для микросервисов с подключаемым обнаружением сервисов, разными транспортами и кодеками, а также доступом из других языков через HTTP.

Звёзды
8,319
Форки
1,173
Открытые issues
4
Последний коммит
2 месяца назад

Что это?

rpcx — RPC-фреймворк на Go, созданный по образцу Alibaba Dubbo для разделения приложений на сервисы, которые взаимодействуют по сети. Функции Go можно напрямую предоставлять как RPC-методы без файлов proto, а клиенты вызывают их через простой API с настройками балансировки нагрузки и переключения на резервный вариант.

Фреймворк поддерживает транспорты TCP, HTTP, QUIC и KCP, а также кодеки JSON, Protobuf, MessagePack и необработанных байтов. Для обнаружения сервисов можно использовать конфигурацию peer-to-peer, zookeeper, etcd, consul или mDNS; доступны стратегии балансировки нагрузки: случайная, round-robin, consistent hashing, взвешенная и другие. Вызывать сервисы можно и из других языков через HTTP-шлюз; также доступны реализации на Java и Rust.

В комплект входят такие функции, как авторизация, передача метаданных, сжатие, heartbeat-запросы, двунаправленная связь и резервные запросы. Некоторые плагины, включая etcd, zookeeper и consul, начиная с версии 1.7.6 перенесены в отдельные репозитории.

Ключевые возможности

  • 01Преобразует обычные методы Go в RPC-эндпоинты без файлов proto.
  • 02Поддерживает транспорты TCP, HTTP, QUIC и KCP.
  • 03Предлагает кодеки JSON, Protobuf, MessagePack и необработанных байтов.
  • 04Поддерживает обнаружение сервисов через peer-to-peer, zookeeper, etcd, consul или mDNS.
  • 05Включает стратегии балансировки нагрузки и режимы отказоустойчивости failover, failfast и failtry.

Сценарии использования

  • Разделение Go-бэкенда на микросервисы, взаимодействующие друг с другом по RPC.
  • Вызов Go-сервисов из сервисов, написанных на других языках, через HTTP-шлюз.
  • Организация внутреннего взаимодействия между сервисами, которому нужны обнаружение сервисов и балансировка нагрузки.

В подборках

Темы

Частые вопросы

Что такое rpcx?
RPC-фреймворк на Go для микросервисов с подключаемым обнаружением сервисов, разными транспортами и кодеками, а также доступом из других языков через HTTP. rpcx — RPC-фреймворк на Go, созданный по образцу Alibaba Dubbo для разделения приложений на сервисы, которые взаимодействуют по сети. Функции Go можно напрямую предоставлять как RPC-методы без файлов proto, а клиенты вызывают их через простой API с настройками балансировки нагрузки и переключения на резервный вариант.
rpcx можно использовать бесплатно? Какая у него лицензия?
rpcx распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
rpcx всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в rpcx — 3 сент. 2026 г..
Для чего можно использовать rpcx?
Разделение Go-бэкенда на микросервисы, взаимодействующие друг с другом по RPC. Вызов Go-сервисов из сервисов, написанных на других языках, через HTTP-шлюз. Организация внутреннего взаимодействия между сервисами, которому нужны обнаружение сервисов и балансировка нагрузки.
Где скачать rpcx?
Исходный код и инструкции по установке — на GitHub: https://github.com/smallnest/rpcx

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Java-реализация Apache Dubbo — RPC- и микросервисного фреймворка для связи между сервисами, обнаружения сервисов и управления трафиком.

41,6 тыс.26,3 тыс.JavaApache-2.0Активно поддерживаетсяОбновлён 4 дня назад

Платформа с открытым исходным кодом для динамического обнаружения сервисов, управления конфигурацией и метаданными сервисов в облачных и микросервисных системах.

33,5 тыс.+9 за неделю13,3 тыс.JavaApache-2.0Обновлён позавчера