TcpCommunicationSpi(CommunicationSpi) 和 TcpDiscoverySpi(DiscoverySpi) 的区别

Difference between TcpCommunicationSpi(CommunicationSpi) and TcpDiscoverySpi(DiscoverySpi)

在 ignite 文档中写道,TcpCommunicationSpi(CommunicationSpi) 使用 TCP/IP 与其他节点通信,而 TcpDiscoverySpi(DiscoverySpi) 使用 TCP/IP 进行节点发现。我认为2(交流和发现)的想法几乎相同。

请多肉告诉我TcpCommunicationSpi(CommunicationSpi)和TcpDiscoverySpi(DiscoverySpi)的区别和用法?

节点使用 TcpDiscoverySpi 来构建和维护它们的集群。通过此 SPI 发送的消息是 system/internal,它们从一个节点发送到另一个节点(左侧的邻居)。所以这意味着集群被组织成一个环,TcpDiscoverySpi 用于在节点之间交换内部信息。

另一方面,当一个节点需要直接向另一个节点(缓存 put/get、计算、事件等)发送消息时,它使用 TcpCommunicationSpi 打开与远程节点的直接连接。