【FastDDS】Discovery ( 05-Discovery Server Settings)

发现服务器设置

这种机制基于客户端-服务器发现模式,即元流量(域参与者之间用于识别彼此的消息交换)由一个或多个服务器域参与者管理(左图),而在简单发现(右图)中,元流量通过IP多播协议等消息广播机制进行交换。有一款发现服务器工具可简化发现服务器的设置和测试。

注意:启用默认发现服务器机制时,DDS域概念不适用,但在使用ROS2_EASY_MODE时适用。

1. 关键概念

在该架构中,有几个关键概念需要理解:

  • 发现服务器机制复用RTPS发现消息结构,以及标准的DDS数据写入器(DataWriters)和数据读取器(DataReaders)。
  • 发现服务器域参与者可以是客户端或服务器。它们之间的唯一区别在于处理发现流量的方式。用户流量(即它们创建的数据写入器和数据读取器之间的流量)与角色无关。
  • SERVER(服务器)是客户端(可能还有其他服务器)向其发送发现信息的参与者。
  • 服务器的作用是将其客户端的发现信息重新分发给已知的客户端和服务器。
  • 服务器还会向已知服务器公告新服务器的存在,反之亦然。这样,新服务器只需知道网络中一个现有服务器的存在,就能连接到其他所有现有服务器,从而以最少的配置形成服务器之间的网状拓扑。
  • 重新分发的发现信息可能来自直接连接到该SERVER的客户端,也可能来自正在转发其客户端发现数据的其他服务器。
  • 已知服务器将接收该服务器已知的直接客户端的所有信息以及其他服务器的参与者信息(用于公告新服
### Fast DDSDiscovery Server 的配置与使用指南 在分布式系统中,Discovery ServerFast DDS 的一项重要功能,用于支持大规模、复杂的网络拓扑结构。通过 Discovery Server,可以实现跨子网的参与者发现,从而确保不同子网中的发布者和订阅者能够正确通信[^1]。 #### 1. Discovery Server 的基本概念 Fast DDS 使用 Participant Discovery Protocol (PDP) 和 EDP (Endpoint Discovery Protocol) 来发现网络中的参与者和数据端点。然而,在多子网环境中,默认的基于 UDP 的发现机制可能无法正常工作。为了解决这一问题,Discovery Server 提供了一种集中式的发现机制,允许所有参与者通过服务器进行相互发现[^2]。 #### 2. 配置 Discovery Server 为了启用 Discovery Server 功能,需要对 Fast DDS 进行适当的配置。以下是配置的关键步骤: - **安装 Discovery Server** Discovery Server 可以作为独立的服务运行。确保在目标机器上安装了 Fast DDS,并且 Discovery Server 已经正确部署。可以通过以下命令启动 Discovery Server: ```bash FastDDSDiscoveryServer <server_id> ``` 其中 `<server_id>` 是一个唯一的标识符,用于区分不同的 Discovery Server 实例[^3]。 - **修改 XML 配置文件** 在 Fast DDS 的 XML 配置文件中,需要指定参与者使用 Discovery Server。以下是一个示例配置: ```xml <participant profile_name="discovery_server_profile"> <rtps> <participantID>1</participantID> <domainId>0</domainId> <discovery> <discoveryProtocol>SERVER_CLIENT</discoveryProtocol> <serverAddress> <address>192.168.1.100</address> <port>11811</port> </serverAddress> </discovery> </rtps> </participant> ``` - `discoveryProtocol` 设置为 `SERVER_CLIENT`,表示参与者将使用 Discovery Server- `serverAddress` 指定了 Discovery Server 的 IP 地址和端口号[^4]。 #### 3. 启用安全功能(可选) 如果需要在 Discovery Server 中启用安全性功能,可以参考 eProsima Fast DDS 提供的安全性配置指南[^5]。例如,可以通过以下方式配置加密和访问控制: - 使用 XML 文件定义安全配置。 - 生成必要的密钥和证书。 - 将安全配置应用到 Discovery Server 和客户端参与者。 #### 4. 测试 Discovery Server 完成配置后,可以通过以下步骤测试 Discovery Server 是否正常工作: - 启动 Discovery Server- 启动多个使用 Discovery ServerFast DDS 应用程序。 - 确保所有应用程序能够正确发现彼此,并建立通信连接。 --- ### 示例代码:启动 Discovery Server 以下是一个简单的 Bash 脚本,用于启动 Discovery Server: ```bash #!/bin/bash FastDDSDiscoveryServer 1 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ray.so

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值