【问题标题】:How does the server node restart the client node after receiving the message (Apache Ignite .Net 2.8.1)服务器节点收到消息后如何重启客户端节点(Apache Ignite .Net 2.8.1)
【发布时间】:2020-09-14 08:41:45
【问题描述】:

我在代码中启动了一个Ignite Server项目和一个Ignite Client项目,现在需要在Server收到Client消息时重启对应的Ignite Client节点。有人做过吗?我看看Ignite GitHub源码。 Net没有restartNodes方法,但是Java有java doc link,怎么办?目前服务器可以从客户端获取IClusterNode信息。 这是我的服务器监听消息代码:

        public class RestartNodeMessageListener : IMessageListener<string>
        {
            private readonly IIgnite server;
            public RestartNodeMessageListener(IIgnite server)
            {
                this.server = server;
            }
            
            public bool Invoke(Guid nodeId, string message)
            {
                var clientNodeInfo = server.GetCluster().GetNode(nodeId);
                return true;
             }
        }

【问题讨论】:

    标签: .net ignite


    【解决方案1】:

    似乎是真的,.NET 端没有内置的#restartNodes 方法。

    您可以投票支持IGNITE-3881 以更快地实施。

    同时,也可以采用java版本。 基本上,cluster#restartNodes 只是在给定节点上执行一个killing Compute调用:

    ctx.grid().compute(forNodeIds(ids)).execute(IgniteKillTask.class, true);
    

    IgniteKillTask 的源代码非常简单,将其遍历到 C# 版本应该不会有太多困难。 G.restartG.kill 的 Java API 可以替换为 Ignition.StopIgnition.Start 方法。

    【讨论】:

    • 非常感谢。因为是.net Core项目,无法使用Java API。我就按你说的方法试试吧。
    • 也许我的方法有问题。我还没有解决。
    • 可以使用C#的compute API在C#中实现IgniteKillTask​​,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2015-12-09
    • 2014-02-13
    相关资源
    最近更新 更多