15. Typical Use-Cases
Fast DDS 是一个高度可配置的中间件,适用于多种场景。本节提供了与分布式系统相关的一些典型用例的配置示例:
Large Data mode and Fast DDS over TCP
描述了如何配置 Fast DDS 使用 LARGE_DATA 内置传输模式。该模式使得在部署变更时无需不断重新配置即可高效利用 TCP 传输。它通过结合使用 UDP 和 TCP/SHM 传输,在丢包网络上优化大数据样本的通信性能。
Fast DDS over WIFI
展示了在多播通信面临挑战的情况下如何处理发现问题。本示例显示了如何:
- 配置初始对等体列表,包含远程参与者的地址-端口对(请参见配置初始对等体)。
- 禁用多播发现机制(请参见禁用多播发现)。
- 配置服务器发现机制(请参见发现服务器)。
Well Known Network Deployments
描述了一种情况下,整个实体网络拓扑(参与者、发布者、订阅者及其地址和端口)事先已知。在这些环境中,通过配置静态发现机制,可以完全避免发现阶段。
Topics with many subscribers
在许多数据读取器订阅同一主题的情况下,使用多播传递可以帮助减少网络和 CPU 的开销。
Large Data Rates
呈现了一些可以提高发布者和订阅者之间交换大量数据性能的配置选项,这些数据可能因为大小或消息速率而显得庞大。示例说明了如何:
- 使用基于 TCP 的通信(请参见 Large Data mode and Fast DDS over TCP)。
- 配置套接字缓冲区大小(请参见增加缓冲区大小)。
- 限制出版速率(请参见流控制器)。
- 调整套接字缓冲区大小(请参见增大套接字缓冲区大小)。
- 调整心跳周期(请参见调整心跳周期)。
- 配置非严格可靠模式(请参见使用非严格可靠性)。
Real-time behavior
描述允许在实时场景下使用 Fast DDS 的配置选项。示例说明了如何:
- 配置内存管理以避免动态内存分配(请参见调整分配)。
- 限制 API 函数的阻塞时间,以获得可预测的响应时间(请参见非阻塞调用)。
Reduce memory usage
对于有内存消耗限制的用例,可以通过调整不同 QoS 策略将 Fast DDS 的内存占用降到最低。
Zero-Copy communication
在某些约束条件下,Fast DDS 可以提供应用程序级别的通信,在发布和订阅节点之间避免任何数据复制。
Unique network flows
此用例说明允许请求唯一网络流以及识别正在使用中的流的 API。
Dynamic network interfaces
如果预计网络接口会在应用程序运行时发生变化,Fast DDS 提供了一种简单的方法来重新扫描可用接口并将其包含进来。
Statistics module
此用例解释了如何在被监控应用程序中启用统计模块,以及如何创建统计监测应用程序。
ROS 2 using Fast DDS middleware
由于 Fast DDS 是每个 OSRF Robot Operating System 2 (ROS 2) 长期支持 (LTS) 发布版及大多数非 LTS 发布版中的默认中间件实现,本文件包含一个独立部分,以展示如何在 ROS 2 项目中使用该库,并充分利用 Fast DDS 的广泛功能集。
How to use eProsima DDS Record and Replay
有关如何调整应用程序以能够记录和重放您的DDS消息的信息。
Request-Reply communication
尽管 Fast DDS 提供的是发布者-订阅者通信协议,但它也提供了一种机制以进行请求-回复通信。此用例解释了如何使用 API 在两个应用程序之间进行请求回复通信。
Remote type discovery and endpoint matching
此用例利用远程数据类型发现来创建端点,并开始与之前未知的数据类型远程发现端点进行通信。
内容由零声教学AI助手提供,问题来源于学员提问