Java-реализация Apache Dubbo — RPC- и микросервисного фреймворка для связи между сервисами, обнаружения сервисов и управления трафиком.
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 обновляется ежедневно.
Похожие проекты
Реализация Spring Cloud для интеграции приложений Spring Cloud с Polaris от Tencent — системой обнаружения сервисов и управления ими.
API-шлюз на Java для проксирования сервисов, преобразования протоколов и управления API с цепочкой плагинов и центральной консолью Admin.
Фреймворк на Go для распределённых систем: RPC, обнаружение сервисов, обмен сообщениями, хранилище, конфигурация, агенты, инструменты и рабочие процессы.
Платформа с открытым исходным кодом для динамического обнаружения сервисов, управления конфигурацией и метаданными сервисов в облачных и микросервисных системах.
Spring Boot starter для запуска gRPC-серверов и клиентов с помощью аннотаций @GrpcService и @GrpcClient — без ручной настройки каналов и серверов.