当前位置: 首页 > 知识库问答 >
问题:

Apache Ignite客户端重启场景

华英睿
2023-03-14

这是场景

  1. 我启动了服务器节点。
  2. 我启动了Client Ignite节点,这将通过Java应用程序(例如“x”)来完成。
  3. 在visor中,当给定命令“node”时,我可以看到两个节点,一个是客户端,一个是服务器。
  4. 我通过执行“kill-9 pid”来杀死Java应用程序“X”。
  5. 现在,当我转到visor终端并输入“node”时,列表中仍然显示“client”和“server”节点。当询问客户机节点详细信息时,它显然会抛出错误。
  6. 现在,当我重新启动Java应用程序“X”时,在该Java代码中会再次尝试连接到Ignite Server。但是它没有连接,而是多次打印这些日志

“org.apache.ignite.logger.java.javalogger”info“info”284“接受传入通信连接[locaddr=/0:0:0:0:0:0:1:47101,rmtaddr=/0:0:0:0:0:0:1:1:62856]”1587013526124“”root“{”service“:”logger_name“:”org.apache.ignite.spi.communication.tcp.tcpCommunicationspi“}

[10:37:57]相应地抑制配置的处理程序可能出现的故障[hnd=stopnodeorhaltfailurehandler[trystop=false,timeout=0,super=abstractfailurehandler[ignoredfailuretypes=unmodifiableset[SYSTEM_WORKER_BLOCKED,SYSTEM_CRITICAL_OPERATION_TIMEOUT]]],failurectx=failurecontext[type=SYSTEM_CRITICAL_OPERATION_TIMEOUT,err=class[10:37:57,739][Serial][Exchange-Worker-#46][GridCacheDatabaseSharedManager]检查点读取锁获取已超时。类org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager$CheckPointReadLockTimeoutException:检查点读锁获取已超时。在org.apache.ignite.internal.processors.cache.persistence.gridcachedatabasesharedmanager.failcheckpointreadlock(gridcachedatabasesharedmanager.java:1708)在org.apache.ignite.internal.processors.cache.persistence.gridcachedatabasesharedmanager.checkpointreadlock(gridcachedatabasesharedmanager.java:1708)在.ignite.internal.processors.cache.distributed.dht.preloader.griddHtPartitionSexchangeFuture.init(GriddHtPartitionSexchangeFuture.java:944)在org.apache.ignite.internal.processors.cache.gridcachePartitionExchangeFuture.java:944)在org.apache.ignite.internal.processors.cache.gridcachePartitionExchangeFuture.body0在在Java上运行(gridworker.java:119)。检测到lang.thread.run(thread.java:748)[10:39:21,547][Sever][TCP-Disco-Msg-Worker-[693D29CD 0:0:0:0:0:0:0:0:1%LO0:47501 crd]-#2][G]阻塞的系统关键线程。这可能导致群集范围内的未定义行为[workername=db-checkpoint-thread-#59,blockedfor=209s]

我在这里假设,由于我强制关闭了启动Ignite Client node的Java应用程序,所以可能会发生一些拓扑不平衡。

有人可以建议一下,如果我强制关闭客户端应用程序,是否有正确的方法重新启动客户端应用程序,使其继续重新建立与Ignite服务器的连接并继续工作?

共有1个答案

唐炳
2023-03-14

当您有很长的超时时间时,这种情况是可能的。

在所有超时(如网络超时、套接字写入超时、故障检测超时)运行之前,您不应期望删除节点,并加入新节点。除非你做了优雅的关机。

 类似资料:
  • 启动客户端 需要启动一个以太坊客户端,当然如果你已经启动了就不需要再次启动。 如果是geth的话这么启动: $ geth --rpcapi personal,db,eth,net,web3 --rpc --rinkeby 如果是Parity启动: $ parity --chain testnet 如果使用Infura客户端提供的免费的云端服务,这么启动: Web3j web3 = Web3j.

  • 客户端跟服务端基本一样,也支持Web Host和Generic host 调用AddClient方法启用客户端 public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(Compatibility

  • 客户端播放:30秒示例 我当地的咖啡馆设有摇摇欲坠,不稳定的无线网络,并由市议会慷慨地赞助纳税人的钱。连接后,您将被重定向到一个受SSL保护的页面,提示您输入用户名和密码。输入详细信息后,您就可以自由地享受间歇性的辍学,类似难题的速度以及配置错误的透明代理。 我倾向于在第一时间使这种事情自动化,因为从长远来看,现在花费的时间将超过所花的时间。在这种情况下,我可能会使用Firebug来过滤表单发布参

  • 问题内容: 我正在创建一个在任何情况下都无法管理或修改的服务器上运行的Web应用程序。 在该应用程序中,我需要执行对其他服务器的AJAX调用。这将始终被“相同原产地政策”阻止。 其中server01.test.net是Web服务器,而mail.test.net是第二台服务器。 有没有一种方法可以通过任何方式在客户端启用CORS,因为我无法在服务器上添加“ Access-Control-Allow-

  • CORS在服务器上运行良好,并按预期工作。我尝试用angular HTTPClient向服务器的RESTAPI发送请求,但收到一个CORS错误。如果服务器上启用了CORS,为什么会出现此错误?这对客户来说不是很好吗?

  • 问题内容: 我有一个RMI服务器和一个桌面RMI客户端。重新启动服务器时,客户端出现错误。是否可以在不重新启动客户端的情况下重新启动RMI连接? [编辑]这是堆栈跟踪: 问题答案: 服务器终止后,您将收到一个ConnectException。之后,您可以使用Naming.lookup获取新的服务器对象。