
caoyx-rpc
Caoyx-rpc — это открытый фреймворк RPC-сервиса, реализованный на Java, который обеспечивает высокую доступность и надёжность удалённого вызова.### Основные характеристики:
- Прокси-интерфейсы: Вызывающая сторона и предоставляющая сторона взаимодействуют через один интерфейсный JAR-пакет; система скрывает реализацию удалённой связи, позволяя пользователям использовать её так же, как они используют локальные реализации.
- Поддержка различных методов вызова: Включает синхронные вызовы, асинхронные вызовы с использованием Future, обратные вызовы Callback и односторонние вызовы OneWay.
- Поддержка неявных параметров: Пользователи могут вносить свои данные в контекст CaoyxRpcContext, который будет передан вместе с вызовом на сторону предоставления услуги.
- Поддержка генерализованного вызова: Вызывающая сторона может вызывать сервисы стороны предоставления без зависимости от интерфейсного JAR-пакета.
- Балансировка нагрузки: Предоставляет множество стратегий балансировки нагрузки, включая случайную выборку и консистентную хеш-функцию.
- Регистрация и обнаружение услуг: Поддерживает автоматическую регистрацию и ручную регистрацию услуг.
- Автоматическая регистрация: Поддерживается Zookeeper.
- Ручная регистрация: Пользователи могут указать конкретные адреса и порты для каждого сервиса-поставщика.
- Высокие возможности расширения: Расширяется через пользовательское SPI.
8.Поддержка нескольких версий: сервер-поставщик может предоставлять несколько реализаций одного интерфейса, а вычислительная сторона выбирает нужную версию.
- Различные способы сериализации: поддерживает сериализацию JDK, Hessian2 и ProtoStuff.
- Поддержка пользовательских фильтров: позволяет пользователям создавать и внедрять свои фильтры в цепочку вызовов.
- Интеграция с Spring Boot.
- Установка времени ожидания и количества попыток повторной отправки.
- Обращение к версии службы и её реализациям: поставщики услуг могут устанавливать версии своих служб и их реализации, а вычислители могут обращаться к этим версиям.
- Обратные вызовы при ошибке и истечении времени ожидания.
- Поддержка сжатия LZ4.
- Аутентификация между вычислителями и поставщиками услуг: поставщики услуг могут настраивать accessToken, чтобы принимать только запросы с таким же accessToken.
- Поддержка элегантного завершения работы процесса kill pid (не kill -9).
- Лимитирование частоты запросов и обратные вызовы при превышении этого лимита.
Как подключиться
Пример простого использования Caoyx-Rpc
Бенчмарки
Сравнение производительности CaoyxRpc, Dubbo, Grpc и Thrift
Как связаться
Вклад
Приглашаем вас принять участие в развитии проекта! Например, вы можете отправить pull request для исправления ошибки или создать issue для обсуждения новых возможностей или изменений.
Лицензия
Проект caoyx-rpc распространяется под лицензией Apache 2.0. Подробнее см. файл LICENSE.
Программа является открытым исходным кодом и доступна бесплатно. Также мы предоставляем бесплатную техническую поддержку сообществу.
Опубликовать ( 0 )