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

OSCHINA-MIRROR/dempe-forest-thrift

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

Простая упаковка Thrift-сервиса

Пул-клиент с высокой доступностью для Thrift

Возможности:

— Поддержка пула соединений.

— Поддержка проверки доступности по ping для файлов описания Thrift.

— Поддержка стратегий балансировки нагрузки.

— Поддержка стратегии отказоустойчивости.

— Поддержка автоматической стратегии разрыва соединения.

— Поддержка обнаружения сервисов на основе ZK.

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

Зависимости Maven:

<dependency>
    <groupId>com.zhizus</groupId>
    <artifactId>thrift-client</artifactId>
    <version>0.0.1</version>
</dependency>

Пример использования:

// Конфигурация пула
GenericKeyedObjectPoolConfig poolConfig = new GenericKeyedObjectPoolConfig();

// Проверка интерфейса, метод validateObject пула соединений будет вызывать сюда ping
PingValidate pingValidate = new PingValidate() {
    @Override
    public boolean ping(ServerInfo key, TTransport transport) {
        return true;
    }
};

IsolationStrategy<ServerInfo> infoIsolationStrategy = new IsolationStrategy<>();

DefaultThriftClient thriftClient = new DefaultThriftClient(LoadBalanceType.RANDOM, HAStrategyType.FAILED_FAST,
new ConfRegistry("localhost:9999"), poolConfig, pingValidate, infoIsolationStrategy);

// Каждый раз при использовании client вызывайте интерфейс iface, здесь через режим прокси-сервера упакованы операции сбора статистики об исключениях и возврата в пул.
// thriftClient.iface(YourThrift.class);

Thrift-сервер

Дополнительные примеры.

Руководство пользователя

  1. Создайте статический код Thrift на основе файла описания:
thrift-0.6.1.exe -r -gen java sample.thrift
  1. Наследуйте класс AbstractThriftServer и реализуйте метод getProcessor():
  @Override
protected TProcessor getProcessor() {
return new Sample.Processor(new Sample.Iface() {

@Override
public String hello(String para) throws TException {
return "hello " + para;
}

@Override
public boolean ping() throws TException {
return true;
}
});
}
  1. Вызовите метод start(), чтобы запустить сервер.

  2. Создайте клиент на основе DefaultThriftClient и вызовите метод iface для генерации соответствующего объекта-прокси.

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

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

Введение

thrift pool client & thrift server. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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