2017-05-16 1 views
2

나는 ignite-core-2.0.0 만 사용하고 Ignite 메시지를 보내는 작은 (est) 앱을 만들고 싶다. 메시지를 교환하고 싶은 어딘가에 클러스터가 있습니다.Ignite : 메시지 전용으로 코어를 사용합니까?

컴파일 된 소스가있는 곳에서는 IGNITE_HOME을 ./apache-ignite-2.0.0-src로 설정했습니다. IGNITE_HOME/config/default-config.xml 파일이 존재하며 변경되지 않습니다. 여기

코드는 내가

Exception in thread "main" class org.apache.ignite.IgniteException: 
    Failed to create Ignite component (consider adding ignite-spring 
    module to classpath)... 

Caused by: java.lang.ClassNotFoundException: 
    org.apache.ignite.internal.util.spring.IgniteSpringHelperImp‌​l 

내가 점화 코어 JAR에서 IgniteSpringHelperImp 리터 클래스를 참조하지 않는군요

Ignition.setClientMode(true); 
Ignite ignite = Ignition.start(); 
... 

제외하기 전에 실행이 될 수없는 이유를 궁금해한다 필요합니다.

ignite-core JAR 만 사용하여 메시징을 작동시키는 방법은 무엇입니까?

+0

Ignite가 어떻게 구성되어 있는지 묻습니다. 기본 config.xml에는 문제를 일으키는 Spring이 포함되어 있습니다. 지금은 Ignite를 구성하여 내가 원하는 것을 수행하는 방법을 알지 못합니다. 문서가이 부분을 놓친 것처럼 보입니다. –

+0

기본 config.xml에 Spring이 필요하지는 않지만 코드는 여전히 IgniteSpringHelperImp l을 찾고, 찾지 못하고 중지합니다. 문제는 여전히 ignite-core JAR 만 사용하여 기본 메시징을 수행하는 방법입니다. –

+0

다소 앞설 수 있습니다. Ignite ignite = Ignition.start (새 IgniteConfiguration()); 는 이제 IgniteSpiException을 불평 : 로컬 노드와 원격 노드가 다른 버전 번호를 (노드에의 Ignite 그래서 발화가 실행 예쁜 비밀 내가 가지고 있지 않는 업데이트를 ... 롤링 지원하지 않습니다에 참여하지 않습니다이 원격/로컬 노드를 사용하여 버전을 비교하십시오 –

답변

4

이것은 지금까지의 작업과 같습니다.

IgniteConfiguration cfg = new IgniteConfiguration(); 
TcpDiscoverySpi spi = new TcpDiscoverySpi(); 
cfg.setDiscoverySpi(spi); 
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(); 
ipFinder.setAddresses(Arrays.asList("127.0.0.1")); 
spi.setIpFinder(ipFinder); 
Ignite ignite = Ignition.start(cfg); 
IgniteMessaging igMsg = ignite.message(ignite.cluster().forLocal()); 
igMsg.localListen("unorderedTopic", (nodeId, msg) -> { 
    System.out.println("msg: " + msg + ", from: " + nodeId); 
    return true; // to continue listening 
}); 
for (int i = 0; i < 10; i++) 
    igMsg.send("unorderedTopic", Integer.toString(i)); 

내 컴퓨터에서 메시지를 보내고받습니다.

관련 문제