Hazelcast 분산 실행의 개념을 이해하는 데 문제가 있습니다. 특정 키의 소유자 인스턴스에서 실행을 수행 할 수 있다고합니다. 문서에서
:Hazelcast 분산 Executor 서비스 KeyOwner
<T> Future<T> submitToKeyOwner(Callable<T> task, Object key)
Submits task to owner of the specified key and returns a Future representing that task.
Parameters:
task - task
key - key
Returns:
a Future representing pending completion of the task
나는 (다음 설치를 따라 예를 들어 뭔가를) 다른 개체를 잡고, 실제로 서로 다른 목적을 위해 동일한 키를 사용할 수있는 여러지도를 내장 클러스터가 혼자가 아니에요 있다고 생각 :
IMap<String, ObjectTypeA> firstMap = HazelcastInstance.getMap("firstMap");
IMap<String, ObjectTypeA_AppendixClass> secondMap = HazelcastInstance.getMap("secondMap");
내게는 설명서가 키 소유자에 대해 말하는 것이 혼란스러워 보입니다. 나의 진정한 좌절감은 내가 알 수없는 것인데 - 어떤지도에서 - 열쇠가 그것을 가리키는 지? Hazelcast MultiHTML Documentation 3.0 - Distributed Execution
너희들 중 하나가 무슨 키를 원하는가 과거에 알아낼나요 :
import com.hazelcast.core.Member;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.IExecutorService;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
import java.util.Set;
import com.hazelcast.config.Config;
public void echoOnTheMemberOwningTheKey(String input, Object key) throws Exception {
Callable<String> task = new Echo(input);
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
IExecutorService executorService = hz.getExecutorService("default");
Future<String> future = executorService.submitToKeyOwner(task, key);
String echoResult = future.get();
}
이 문서 사이트에 대한 링크입니다 :
문서는 또한이 방법의 "데모"제공?
그건 전혀 의미가 없습니다. 글쎄, 적어도 나는이 행동에서 이점을 안다. 어제 Hazelcast 지원팀과 함께이 문제에 대해 논의하면서 내 문제에 대한 해결책이 드러났습니다. 별도의 IMap을 사용하여 내가 찾고있는 objectId에 대한 객체가있는 hazelcast 인스턴스의 ID를 저장해야합니다. 이 방법을 사용하면, OOMember (HazelcastInstance.getMembers(). get (id))를 실행할 수 있습니다. –