Простая упаковка 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-сервер
Руководство пользователя
thrift-0.6.1.exe -r -gen java sample.thrift
@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;
}
});
}
Вызовите метод start(), чтобы запустить сервер.
Создайте клиент на основе DefaultThriftClient и вызовите метод iface для генерации соответствующего объекта-прокси.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )