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

OSCHINA-MIRROR/justlive1-supine

Клонировать/Скачать
README.md 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 06:03 c7312dd

Лёгкий RPC-фреймворк

Введение

Лёгкий децентрализованный RPC-фреймворк.

  • Использует асинхронный ввод-вывод (AIO) для коммуникации.
  • Применяет Multicast для регистрации и обнаружения сервисов.

Быстрый старт

Создайте Maven-проект:

<dependency>
    <groupId>vip.justlive</groupId>
    <artifactId>supine</artifactId>
    <version>${lastVersion}</version>
</dependency>

Или Gradle:

compile 'vip.justlive:supine:$lastVersion'

Сервер: — Прямое подключение:

ServiceConfig config = new ServiceConfig(10086);
ServiceFactory factory = new ServiceFactory(config);

// Регистрация сервиса
factory.register(new SayImpl());
factory.register(new SayImpl2(), "2");

factory.start();

— Multicast-регистрация:

ServiceConfig config = new ServiceConfig(10086);

// Установка типа регистрации
config.setRegistryType(1);

// Настройка адреса регистрации, по умолчанию используется значение 234.69.69.69:56969
config.setRegistryAddress("234.69.69.69:56969");
ServiceFactory factory = new ServiceFactory(config);

// Регистрация сервисов
factory.register(new SayImpl());
// Указание версии сервиса
factory.register(new SayImpl2(), "2");

factory.start();

Клиент: — Прямое подключение:

ClientConfig config = new ClientConfig();

// Настройка времени ожидания при неактивном соединении, по умолчанию 120 секунд
config.setIdleTimeout(120);

// Адрес сервера при прямом подключении
config.setRegistryAddress("localhost:10086");

// Асинхронный вызов, по умолчанию синхронный
config.setAsync(false);
ReferenceFactory factory = new ReferenceFactory(config);
factory.start();

// Создание прокси интерфейса
Say say = factory.create(Say.class);
// Вызов метода интерфейса
String result = say.hello(msg);

— Multicast:

ClientConfig config = new ClientConfig();

// Включение асинхронного вызова
config.setAsync(true);

config.setRegistryType(1);
// Адрес регистрации, по умолчанию — 234.69.69.69:56969
config.setRegistryAddress("234.69.69.69:56969");
ReferenceFactory factory = new ReferenceFactory(config);
factory.start();

// Создание прокси для указанной версии интерфейса
Say say = factory.create(Say.class, "2");
// Вызов метода, обратите внимание на асинхронный режим, возвращаемое значение будет null
say.hello(msg);

// При асинхронном вызове необходимо использовать Future для получения результата
ResultFuture<String> future = ResultFuture.future();

// Обработка успешного выполнения
future.setOnSuccess(System.out::println);
future.setOnFailure(System.out::println);

// Получение результата
future.get();
// Ожидание результата в течение 1 секунды
future.get(1, TimeUnit.SECONDS);

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/justlive1-supine.git
git@api.gitlife.ru:oschina-mirror/justlive1-supine.git
oschina-mirror
justlive1-supine
justlive1-supine
master