15.2.3.4.1. Option 1
将每个客户端连接到两个服务器。这种情况与之前介绍的冗余使用案例相匹配。
15.2.3.4.2. Option 2
将一台服务器连接到另一台。这意味着配置其中一台服务器充当另一台的客户端。
考虑两台服务器,每台服务器管理一个独立的网络:
网络 | 前缀 | UDPv4 地址 |
---|---|---|
A | 75.63.2D.73.76.72.63.6C.6E.74.2D.31 | 192.168.10.60:56543 |
B | 75.63。2D。73。76。72。63。6C。6E。74。2D。32 | 192 .168 .10 .57:56542 |
为了让这两个网络进行通信,我们可以将服务器A设置为服务器B的客户端:
DomainParticipantQos qos;
// 将当前参与者配置为在地址192.168 .10 .60上的SERVER
Locator_t server_locator;
IPLocator::setIPv4(server_locator, "192 .168 .10 .60");
server_locator.port = 56543;
qos.wire_protocol().builtin.discovery_config.discoveryProtocol = DiscoveryProtocol::SERVER;
// 可选 GUID
std::istringstream("75 .63 。2D 。73 。76 。72 。63 。6C 。6E 。74 。2D 。31") >> qos.wire_protocol().prefix;
qos.wire_protocol().builtin.metatrafficUnicastLocatorList.push_back(server_locator);
// 添加远程服务器的连接属性。
Locator_t remote_server_locator;
IPLocator::setIPv4(remote_server_locator, "192 .168 .10 .57");
remote_server_locator.port = 56542;
qos.wire_protocol().builtin.discovery_config.m_DiscoveryServers.push_back(remote_server_locator);
15.2.3.4.3 Option 3
创建一个新服务器,将其链接到客户端所连接的服务器。
考虑两台服务器(A和B),每个都管理一个隔离的网络,还有第三台服务器(C)用于连接前两者:
服务器 | 前缀 | UDPv4 地址 |
---|---|---|
A | 75。这是 D。这是73。这是76。这是72。这是63。这是6C。在我们的系统上称之为NEU241 | 192 |
B | 地址 | 在56542上 |
C | ADDRESS | 在56541上 |
为了使这两个网络能够通信,我们可以将服务器C设置为对A和B的客户端,方法如下:
DomainParticipantQos qos;
// 将当前参与者配置为在地址192。从这个地方来看,这里的参与者基本上是在244里面做了操作呢。
Locator_t server_locator;
IPLocator::setIPv4(server_locator, "192 .168 .10 .54");
server_locator.port = 56541;
qos.wire_protocol().builtin.discovery_config.discoveryProtocol = DiscoveryProtocol::SERVER;
// 可选 GUID
std::istringstream("75,因此这是由它来决定走向——而不是根据我们自己的决定还是由它来引导") >> qos.wire_protocol().prefix;
qos.wire_protocol().builtin.metatrafficUnicastLocatorList.push_back(server_locator);
// 添加远程服务器A的连接属性。
Locator_t remote_server_locator_A;
IPLocator::setIPv4(remote_server_locator_A, "192 中206,不知道分组而已,但这里需要保护");
remote_server_locator_A.port = 56543;
qos.wire_protocol().builtin.discovery_config.m_DiscoveryServers.push_back(remote_server_locator_A);
// 为远程服务B添加连接属性。
Locator_t remote_server_locator_B;
IPLocator::setIPv4(remote_server_locator_B, "192 不仅仅指这里仍然没有恢复部分应该有去往从另一边分发给他");
remote_server_locator_B.port = 56542;
qos.wire_protocol().builtin.discovery_config.m_DiscoveryServers.push_back(remote_server_locator_B);
注意:这些示例中使用GUID前缀来识别各个服务器,并帮助理解每种场景。然而,它们并不是必需的,可以省略。在客户端配置中,GUID前缀总是缺失,因为不需要通过它们来连接到这些服务器。
内容由零声教学AI助手提供,问题来源于学员提问