1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/imccx-ccx-rpc

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ccx-rpc

Описание

Это простой фреймворк RPC, основанный на Netty + Zookeeper + Protostuff. Создание этого проекта в основном для обучения, так как я считаю, что "умение использовать", "умение читать исходный код", "умение писать" - это совершенно разные уровни мастерства.

GitHub: https://github.com/chenchuxin/ccx-rpc

Gitee: https://gitee.com/imccx/ccx-rpc

Для получения более подробных руководств посетите: https://www.cnblogs.com/chenchuxin/category/2010813.html#### Содержание Вот краткое описание важных пакетов:

|- ccx-rpc-common: базовые коды
  |- extension: расширение, реализует собственную SPI, вдохновленная Dubbo, но упрощенная
  |- url: URL, вдохновленный Dubbo, обычно используется для построения параметров
|- ccx-rpc-core: ядро логики RPC
  |- annotation: содержит некоторые пользовательские аннотации, такие как @RpcService(поставщик услуг), @RpcReference(потребитель услуг)
  |- compress: сжатие, сжатие данных для сетевой передачи
  |- config: определяет интерфейсы конфигурации, такие как порт привязки службы, адрес Zookeeper и т.д.
  |- faulttolerant: отказоустойчивость кластера, такие как быстрое отключение, повторные попытки и т.д.
  |- loadbalance: балансировка нагрузки, выбор между несколькими службами. Стратегии включают случайный выбор, циклический выбор и т.д.
  |- proxy: прокси, используется для клиентского прокси, клиентский вызов интерфейса службы, на самом деле это процесс сетевого запроса
  |- registry: регистратор, такой как Zookeeper регистратор
  |- remoting: сетевые вещи, такие как пользовательский протокол, Netty отправка и получение запросов и т.д.
  |- serialize: сериализация, сетевая передача, сериализация неотъемлема
  |- spring: некоторые вещи, связанные с Spring, такие как сканнеры, обработка bean
|- ccx-rpc-demo: примеры использования фреймворка
  |- ccx-rpc-demo-client: клиент, потребитель услуг
  |- ccx-rpc-demo-service: поставщик услуг
```#### Список функций
 - [x] Пользовательская расширяемость SPI
 - [x] Динамическое проксирование
     - [x] JDK Proxy
     - [ ] Javassist генерация кода, прямой вызов
 - [x] Регистратор
     - [x] Zookeeper
     - [ ] Eureka
     - [ ] Nacos
     - [ ] Consul
     - [ ] . . .
 - [x] Сериализация
     - [x] Protostuff
     - [ ] Kryo
     - [ ] . . .
 - [x] Сжатие
     - [x] gzip
     - [ ] . . .
 - [x] Удаленное взаимодействие
     - [x] Пользовательский протокол взаимодействия
     - [x] Использование фреймворка Netty
 - [x] Конфигурация
     - [x] Конфигурация параметров JVM
     - [x] Конфигурация файлов properties
     - [ ] Конфигурация Apollo
 - [x] Балансировка нагрузки
     - [x] Стратегия случайного выбора
     - [x] Стратегия циклического выбора
     - [ ] Стратегия согласованного хэширования
 - [x] Множественные версии
 - [x] Отказоустойчивость кластера
     - [x] Стратегия повторных попыток
     - [x] Стратегия быстрого отключения
 - [ ] Грациозное завершение работы
 - [ ] Мониторинг
 - [ ] Модель потока
 - [ ] Группировка услуг
 - [ ] Фильтры

#### Запуск
 1.  Требования к окружению: JDK 8 и выше, плагин Lombok
 2.  Установите и запустите `Zookeeper`
 3.  Измените конфигурационный файл `ccx-rpc.properties`, задайте адрес `Zookeeper` и порт прослушивания, запустите сервис `com.ccx.rpc.demo.service.ServiceBootstrap`
 4.  Измените конфигурационный файл `ccx-rpc.properties`, задайте адрес `Zookeeper`, запустите клиент `com.ccx.rpc.demo.client.ClientBootstrap`
 5.  Для доступа к клиенту используйте адрес `http://localhost:8864/user/1`Адрес `http://localhost:8864/user/v2/1` позволяет получить доступ к другому реализованному интерфейсу, что демонстрирует функцию множественных версий.#### Участие в разработке
1. Создайте форк этого репозитория
2. Создайте новую ветку
3. Подключите код
4. Создайте запрос на слияние (Pull Request)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Базовый RPC-фреймворк на основе Netty + Zookeeper + Protostuff Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/imccx-ccx-rpc.git
git@api.gitlife.ru:oschina-mirror/imccx-ccx-rpc.git
oschina-mirror
imccx-ccx-rpc
imccx-ccx-rpc
master