Java 如何使Vert.x和ApacheIgnite客户端协同工作?
我部署了ApacheIgnite集群,需要使用Vert.x后端的缓存执行不同的操作。Java 如何使Vert.x和ApacheIgnite客户端协同工作?,java,amazon-s3,ignite,vert.x,Java,Amazon S3,Ignite,Vert.x,我部署了ApacheIgnite集群,需要使用Vert.x后端的缓存执行不同的操作。 我使用ApacheIgnite客户端(不是瘦客户端)成功连接到集群。Apache Ingite客户端在Vert.x verticle中运行: vertx.deployVerticle(新的IgniteVerticle(), new DeploymentOptions().setInstances(1).setWorker(true), apacheIgniteVerticleDeployment.complet
我使用ApacheIgnite客户端(不是瘦客户端)成功连接到集群。Apache Ingite客户端在Vert.x verticle中运行:
vertx.deployVerticle(新的IgniteVerticle(),
new DeploymentOptions().setInstances(1).setWorker(true),
apacheIgniteVerticleDeployment.completer());
但一段时间后,我开始收到以下消息:
SEVERE: Blocked system-critical thread has been detected.
This can lead to cluster-wide undefined behaviour [threadName=tcp-comm-worker, blockedFor=28s]
SEVERE: Critical system error detected. Will be handled accordingly to configured handler
[hnd=NoOpFailureHandler [super=AbstractFailureHandler [ignoredFailureTypes=[SYSTEM_WORKER_BLOCKED]]], failureCtx=FailureContext [type=SYSTEM_WORKER_BLOCKED,
err=class o.a.i.IgniteException: GridWorker [name=tcp-comm-worker, igniteInstanceName=null, finished=false, heartbeatTs=1567112815022]]]
class org.apache.ignite.IgniteException:GridWorker[name=tcp通信工作者,igniteInstanceName=null,finished=false,heartbeatTs=1567112815022]
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1831)org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1826)
位于org.apache.ignite.internal.worker.WorkersRegistry.onIdle(WorkersRegistry.java:233)
位于org.apache.ignite.internal.util.worker.GridWorker.onIdle(GridWorker.java:297)
位于org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor$TimeoutWorker.body(GridTimeoutProcessor.java:221)
位于org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
运行(Thread.java:748)
这类消息大约每10秒出现一次。我猜这可能与Vert.x的工作方式有关。
这些异常的原因是什么?您可以尝试在
IgniteConfiguration
上增加systemWorkerBlockedTimeout
以消除此消息。请参阅文档中的更多内容: