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