Grid Ops Java-NodeContainer
时间:2020-01-09 10:35:45 来源:igfitidea点击:
Grid Ops函数中的NodeContainer类可以将传入消息路由到要处理它们的组件。 NodeContainer将查看传入消息中的节点ID,并将消息转发到相应的NodeReactor。 NodeReactor将查看语义协议ID +版本,并将消息转发到相应的协议反应器。协议反应器将查看传入消息的消息类型,并将消息转发到相应的消息反应器。
消息路由如下所示:
消息通常是通过TcpServer和TcpSocketsPort从外部接收的,然后传递给NodeContainer,后者在内部将消息路由到正确的MessageReactor(通过NodeReactor和ProtocolReactor实例) )。
必需的IAP消息字段
为了使此路由起作用,每个传入消息必须至少包含以下字段:
- 接收节点ID
- 语义协议ID
- 语义协议版本
- 讯息类型
这四个字段是所有语义协议的IAP消息应包含的IAP消息的一些核心字段。
创建一个NodeContainer
要使用NodeContainer
,必须首先创建并配置它。这是一个创建和配置NodeContainer的示例:
byte[] messageType = new byte[]{11}; MessageReactor messageReactor = new MessageReactor(messageType) { @Override public void react(IonReader ionReader, IapMessage iapMessage) { System.out.println("Reacting to message"); } }; byte[] protocolId = new byte[]{99}; ProtocolReactor protocolReactor = new ProtocolReactor(protocolId, messageReactor); byte[] nodeId = new byte[]{123}; NodeReactor nodeReactor = GridOps.nodeReactor(nodeId, protocolReactor); NodeContainer nodeContainer = GridOps.nodeContainer();
注意示例如何创建MessageReactor,ProtocolReactor,NodeReactor和NodeContainer的实例。现在," NodeContainer"已准备好接收传入的消息。