分离hazelcast java客户端的线程池

问题描述 投票:0回答:1

我有一个 akka 应用程序,我应该保护我的线程不被阻塞。因此,阻塞操作应该在单独的专用线程池中执行。访问(Put/Get)hazelcast 的 IMap 是这些阻塞操作之一(据我所知,hazelcast 没有反应式 Java 客户端)。在 hazelcast-java-client 文档中,我不清楚如何将 hazelcast-client 的线程与应用程序的其他线程分开。所以我的问题是:

  1. hazelcast-java-client 的线程模型是什么?
  2. 如何确保所有操作都在单独的线程池中完成?
  3. 应考虑哪些配置属性?
java hazelcast
1个回答
0
投票

Hazelcast Java 客户端的文档在这里。 https://docs.hazelcast.com/imdg/latest/clients/java#client-system-properties 您可以更改线程数等。

但在此之前,我会首先使用 IMap 的 async 方法。它提供了很多异步方法,例如

CompletionStage<V> getAsync(@Nonnull K key);
CompletionStage<V> putAsync(@Nonnull K key, @Nonnull V value);
CompletionStage<Void> putAllAsync(@Nonnull Map<? extends K, ? extends V> map);
CompletionStage<Void> setAsync(@Nonnull K key, @Nonnull V value);
...

这些方法返回一个CompletionStage,这样你的akka代码就不需要阻塞。

© www.soinside.com 2019 - 2024. All rights reserved.