Apache Ignite 节点失败:无法读取魔术头

Posted

技术标签:

【中文标题】Apache Ignite 节点失败:无法读取魔术头【英文标题】:Apache Ignite nodes fail: Failed to read magic header 【发布时间】:2017-12-16 14:18:32 【问题描述】:

部署在两台机器上的 Apache Ignite 服务器自动关闭。日志中没有具体的线索。我可以在日志文件中看到以下警告消息:

[00:35:14,047][WARNING][tcp-disco-sock-reader-#86379%null%][TcpDiscoverySpi] Failed to read magic header (too few bytes received) [rmtAddr=/10.96.36.48:47830, locAddr=/10.96.36.48:47500]

我该如何调试和解决这个问题?

配置:

    <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
                <property name="peerClassLoadingEnabled" value="true"/>
                <property name="cacheConfiguration">
                                <list>
                                        <bean class="org.apache.ignite.configuration.CacheConfiguration">
                                                <property name="name" value="xyxCache" />
                                                <property name="writeSynchronizationMode" value="FULL_SYNC" />
                                                <property name="cacheMode" value="REPLICATED" />
                                                <property name="rebalanceMode" value="SYNC" />
                                                <property name="readFromBackup" value="true" />
                                                <property name="startSize" value="150000" />
                                                <property name="evictionPolicy">
                                                        <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                                                                <property name="maxSize" value="1000000" />
                                                        </bean>
                                                </property>
                                        </bean>
                                </list>
                        </property>
<property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="ipFinder">
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                        <property name="addresses">
                            <list>
                                <value>10.96.36.48:47500</value>
                                <value>10.96.36.214:47500</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

【问题讨论】:

【参考方案1】:

检查 10.96.36.48 机器上的哪个进程绑定到端口 47830。 例如,netstat -lnp 将在每个侦听端口旁边列出 pid 和进程名称。这将在 Linux 下运行。

【讨论】:

【参考方案2】:

如果其他应用程序(如 telnet)连接到端口,通常会发生这种情况。

请分享您的配置和设置详细信息,否则无法进一步回答。

【讨论】:

配置细节附加在问题本身。

以上是关于Apache Ignite 节点失败:无法读取魔术头的主要内容,如果未能解决你的问题,请参考以下文章

无法在现有Apache Ignite单节点集群中创建缓存

在命令行上运行 Apache Ignite 时创建 Ignite 组件失败

Apache Ignite 学习

Apache Ignite 容错

apache ignite系列:分布式计算

在一个 Apache Ignite 节点中支持多个环境