2017-08-14 23 views
1

クライアントサーバモードを使用してApache Igniteを評価しようとしています。私はHazelcastとInfinispanを使用していくつかの事前経験があるので、私はIMDGの背景から来ています。クライアント/サーバモードでのApache Igniteの使用

Igniteをクライアント/サーバーモードで初めて使用した経験はあまり滑らかではありません。私は意見が聞こえるかもしれませんが、高度なユースケースの大半は組込みサーバーモードの観点から適切であると感じました。

質問:

私は多くを持っているが、私は、私が今直面しています1を公開しています。私はv2.1.0を使用しています。私はイグナイトのdurable memory機能を利用しようとしています。だから私は、ドキュメントで説明されているように、私のサーバー構成で永続性を有効にしています。私はignite.activate(true)、コードハングを設定した場合、ブロックされた(

class org.apache.ignite.IgniteException: Can not perform the operation because the cluster is inactive. Note, that the cluster is considered inactive by default if Ignite Persistent Store is used to let all the nodes join the cluster. To activate the cluster call Ignite.activate(true). 
at org.apache.ignite.internal.IgniteKernal.checkClusterState(IgniteKernal.java:3712) 
at org.apache.ignite.internal.IgniteKernal.getOrCreateCache0(IgniteKernal.java:2837) 
at org.apache.ignite.internal.IgniteKernal.getOrCreateCache(IgniteKernal.java:2824) 

<property name="persistentStoreConfiguration"> 
    <bean class="org.apache.ignite.configuration.PersistentStoreConfiguration"/> 
</property> 

は今、私は

Ignition.setClientMode(true); 

IgniteConfiguration cfg = new IgniteConfiguration(); 
//cfg.setPeerClassLoadingEnabled(true); 

TcpCommunicationSpi commSpi = new TcpCommunicationSpi(); 
commSpi.setSlowClientQueueLimit(1000); 

TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi(); 
TcpDiscoveryVmIpFinder ipfinder = new TcpDiscoveryVmIpFinder(); 
ipfinder.setAddresses(Arrays.asList("localhost")); 
discoverySpi.setIpFinder(ipfinder); 

cfg.setCommunicationSpi(commSpi); 
cfg.setDiscoverySpi(discoverySpi); 
ignite = Ignition.start(cfg); 
//ignite.active(true); 

CacheConfiguration<String, Person> config = new CacheConfiguration<>("Person"); 
config.setCacheMode(CacheMode.PARTITIONED); 
//config.setOnheapCacheEnabled(true); 
//config.setEvictionPolicy(new LruEvictionPolicy<>(2)); 

ignite.getOrCreateCache(config); 

は、私は次の例外を取得するコードと、クライアントから接続しようとすると、 ?待っている?)。なぜ私のクライアントはデータノードとして参加していないのですか?私はここに何かを逃していますかどんな助けもありがとう。

これは私がサーバー上で見る例外です。

[13:54:52] Topology snapshot [ver=5, servers=1, clients=0, CPUs=4, heap=0.13GB] 
[14:02:19] Topology snapshot [ver=6, servers=1, clients=1, CPUs=4, heap=1.9GB] 
[14:02:20] Default checkpoint page buffer size is too small, setting to an adjusted value: 1.6 GiB 
[14:02:20,446][SEVERE][exchange-worker-#34%null%][GridDhtPartitionsExchangeFuture] Failed to reinitialize local partitions (preloading will be stopped 
): GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=6, minorTopVer=1], nodeId=bccb36d2, evt=DISCOVERY_CUSTOM_EVT] 
java.lang.OutOfMemoryError 
     at sun.misc.Unsafe.allocateMemory(Native Method) 
     at org.apache.ignite.internal.util.GridUnsafe.allocateMemory(GridUnsafe.java:1054) 
     at org.apache.ignite.internal.mem.unsafe.UnsafeMemoryProvider.nextRegion(UnsafeMemoryProvider.java:80) 
     at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.start(PageMemoryImpl.java:276) 
     at org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager.startMemoryPolicies(IgniteCacheDatabaseSharedManag 
er.java:194) 
     at org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager.onActivate(IgniteCacheDatabaseSharedManager.java:9 
49) 
     at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.onActivate(GridCacheDatabaseSharedManager.java:459) 
     at org.apache.ignite.internal.processors.cache.GridCacheSharedContext.activate(GridCacheSharedContext.java:244) 
     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onClusterStateChangeRequest(GridDhtPa 
rtitionsExchangeFuture.java:762) 
     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture. 
java:574) 
     at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:19 
01) 
     at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
     at java.lang.Thread.run(Thread.java:745) 
[14:02:20,478][SEVERE][exchange-worker-#34%null%][GridCachePartitionExchangeManager] Runtime error caught during grid runnable execution: GridWorker [ 
name=partition-exchanger, igniteInstanceName=null, finished=false, hashCode=1380507612, interrupted=false, runner=exchange-worker-#34%null%] 
java.lang.OutOfMemoryError 
     at sun.misc.Unsafe.allocateMemory(Native Method) 
     at org.apache.ignite.internal.util.GridUnsafe.allocateMemory(GridUnsafe.java:1054) 
     at org.apache.ignite.internal.mem.unsafe.UnsafeMemoryProvider.nextRegion(UnsafeMemoryProvider.java:80) 
     at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.start(PageMemoryImpl.java:276) 
     at org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager.startMemoryPolicies(IgniteCacheDatabaseSharedManag 
er.java:194) 
     at org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager.onActivate(IgniteCacheDatabaseSharedManager.java:9 
49) 
     at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.onActivate(GridCacheDatabaseSharedManager.java:459) 
     at org.apache.ignite.internal.processors.cache.GridCacheSharedContext.activate(GridCacheSharedContext.java:244) 
     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onClusterStateChangeRequest(GridDhtPa 
rtitionsExchangeFuture.java:762) 
     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture. 
java:574) 
     at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:19 
01) 
     at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
     at java.lang.Thread.run(Thread.java:745) 
Exception in thread "exchange-worker-#34%null%" java.lang.OutOfMemoryError 
     at sun.misc.Unsafe.allocateMemory(Native Method) 
     at org.apache.ignite.internal.util.GridUnsafe.allocateMemory(GridUnsafe.java:1054) 
     at org.apache.ignite.internal.mem.unsafe.UnsafeMemoryProvider.nextRegion(UnsafeMemoryProvider.java:80) 
     at org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImpl.start(PageMemoryImpl.java:276) 
     at org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager.startMemoryPolicies(IgniteCacheDatabaseSharedManag 
er.java:194) 
     at org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager.onActivate(IgniteCacheDatabaseSharedManager.java:9 
49) 
     at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.onActivate(GridCacheDatabaseSharedManager.java:459) 
     at org.apache.ignite.internal.processors.cache.GridCacheSharedContext.activate(GridCacheSharedContext.java:244) 
     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onClusterStateChangeRequest(GridDhtPa 
rtitionsExchangeFuture.java:762) 
     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture. 
java:574) 
     at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:19 
01) 
     at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
     at java.lang.Thread.run(Thread.java:745) 
[14:02:20,846][SEVERE][query-#174%null%][msg] Received message without registered handler (will ignore) [msg=GridCacheQueryRequest [id=3, cacheName=ig 
nite-sys-cache, type=SCAN, fields=false, clause=null, clsName=null, keyValFilter=null, rdc=null, trans=null, pageSize=1024, incBackups=false, cancel=f 
alse, incMeta=false, all=false, keepBinary=false, subjId=61cfa42e-40af-473d-a9f6-2fe249d66910, taskHash=0, part=-1, topVer=AffinityTopologyVersion [to 
pVer=6, minorTopVer=1], super=GridCacheIdMessage [cacheId=-2100569601]], node=61cfa42e-40af-473d-a9f6-2fe249d66910, locTopVer=AffinityTopologyVersion 
[topVer=-1, minorTopVer=0], msgTopVer=AffinityTopologyVersion [topVer=6, minorTopVer=1], desc=DynamicCacheDescriptor [deploymentId=4093bcfdd51-bae6026 
e-62b0-4189-854b-9efa4b8bf23f, staticCfg=true, sql=false, cacheType=UTILITY, template=false, updatesAllowed=true, cacheId=-2100569601, rcvdFrom=bccb36 
d2-2c8f-4642-b84d-63b5dd2ab93b, objCtx=null, rcvdOnDiscovery=false, startTopVer=AffinityTopologyVersion [topVer=6, minorTopVer=0], rcvdFromVer=Affinit 
yTopologyVersion [topVer=1, minorTopVer=0], clientCacheStartVer=null, schema=QuerySchema [], grpDesc=CacheGroupDescriptor [grpId=-2100569601, grpName= 
null, startTopVer=null, rcvdFrom=bccb36d2-2c8f-4642-b84d-63b5dd2ab93b, deploymentId=4093bcfdd51-bae6026e-62b0-4189-854b-9efa4b8bf23f, caches={ignite-s 
ys-cache=-2100569601}, rcvdFromVer=AffinityTopologyVersion [topVer=1, minorTopVer=0], cacheName=ignite-sys-cache], cacheName=ignite-sys-cache]] 
Registered listeners: 
+0

ため、このdocumentationは、私は、サーバーのログを追加したノード –

+0

@EvgeniiZhuravlevから完全なログとスレッドダンプを共有してください

チェック。私は単一のサーバーノードを持っています。もう1つのポイントは、私は128mの最小/最大ヒープでサーバーを起動したことです。 –

答えて

1

トポロジスナップショット[版= 5、サーバ= 1、クライアント= 0、CPUを= 4、ヒープ= 0.13ギガバイト]

あなたは小さすぎ、ヒープでのIgniteサーバーノードを開始しましたメモリ(128MB)を増やしてみてください(パラメータ-Xmx & -Xms)。

また、デフォルトでIgniteは、pageMemory用にコンピュータ上のすべての物理メモリの0.8を割り当てようとしています。したがって、同じマシン上で複数のノードを起動する場合は、ノード用にMemoryPolicyを構成する必要があります。追加情報と例

+0

デフォルトの1Gで起動しても、同じ例外が発生します。 [14:11:55] Igniteノードの起動OK(id = beaa3252) [14:11:55]トポロジスナップショット[ver = 1、servers = 1、clients = 0、CPUs = 4、heap = 1.0GB] [14:12:19]トポロジのスナップショット[ver 2、servers = 1、clients = 1、CPUs 4、heap = 2.8GB] [14:12:20]デフォルトのチェックポイントページのバッファサイズが小さすぎます。調整値:1.6ジブ ' –

+0

これは私が-J-Xms128m -J-Xmx512m -J-XX ignite.bat'、使用していますJVMの引数である:MaxDirectMemorySize = 512m' –

+0

が –

関連する問題