Использование Redisson Framework Удаленная служба инфраструктуры может быть зарегистрирована на одном узле с экземпляром Redisson на стороне клиента и даже на той же JVM, совместно используемой с экземпляром Redisson на стороне клиента.
Предположим, YourServiceImpl
содержит метод, который вам нужен для удаленного вызова, и реализует YourService
интерфейс.
YourServiceImpl должен быть зарегистрирован в Redisson через объект RemoteService:
YourService yourService = new YourServiceImpl();
RRemoteService remoteService = redisson.getRemoteService();
remoteService.register(YourService.class, yourService);
Удаленные вызовы могут выполняться асинхронно с выделенным отдельным интерфейсом.
с аннотацией @RRemoteAsync
. Сигнатуры методов должны совпадать с теми же методами в удаленном интерфейсе.
Каждый метод должен возвращать org.redisson.core.RFuture
объект. Расширяется java.util.concurrent.Future
и java.util.concurrent.CompletionStage
интерфейсы и
имеет несколько полезных методов.
public interface YourService {
Long someMethod1(Long param1, String param2);
void someMethod2(MyObject param);
MyObject someMethod3();
}
// async interface for YourService
@RRemoteAsync(YourService.class)
public interface YourServiceAsync {
RFuture<Long> someMethod1(Long param1, String param2);
RFuture<Void> someMethod2(MyObject param);
}
Для удаленного вызова метода используйте интерфейс YourServiceAsync
:
RRemoteService remoteService = redisson.getRemoteService();
YourServiceAsync asyncService = remoteService.get(YourServiceAsync.class);
RFuture<Long> res = asyncService.someMethod1(12L, "param");
res.thenApply(r -> {
...
});
Больше документации здесь