12.1.7 最大消息大小
这一节讨论了如何在Fast DDS中区分接收和发送的数据报的最大大小。这一功能尤其重要,尤其是在需要处理大型传入数据但又希望限制发送数据大小以避免网络资源过载或遵循网络流量政策的场景中。
maxMessageSize 属性
- maxMessageSize:此属性设置可以接收和发送的数据报的上限。
- fastdds.max_message_size:允许对发送数据报的大小进行限制,而不改变接收数据报的大小。通过配置这个属性,可以指定发送的数据报最大字节数。将该属性配置为低于所有传输中最小的 maxMessageSize 值,可以实现更低的发送限制,同时仍然能够接收较大的数据报。
属性及其值
PropertyPolicyQos 名称 | 描述 | 默认值 |
---|---|---|
"fastdds.max_message_size" |
uint32_t 类型,设置可接受或发送的数据包最大字节数。 | 4294967295 |
注意:如果
fastdds.max_message_size
的值无效,将记录错误,并使用默认值。
12.1.7.1 在参与者级别设置 fastdds.max_message_size
以下是如何在C++代码中设置参与者级别的 fastdds.max_message_size
的示例:
DomainParticipantQos pqos;
// 设置要发送的数据报文最大字节数
pqos.properties().properties().emplace_back(
"fastdds.max_message_size",
"1200");
这段代码将参与者可以发送的数据包最大限制设为1200字节。
12.1.7.2 在写入器级别设置 fastdds.max_message_size
同样,以下是如何在写入器(DataWriter)级别设置该属性的示例:
DataWriterQos wqos;
// 设置要发送的数据报文最大字节数
wqos.properties().properties().emplace_back(
"fastdds.max_message_size",
"1200");
这段代码将特定写入器可以发送的数据包最大限制设为1200字节。
总结
本节内容强调了在Fast DDS中控制数据包大小的重要性。通过合理配置 maxMessageSize
和 fastdds.max_message_size
属性,可以有效管理接收和发送的数据流,从而优化系统性能并防止网络资源过载。在多种不同传输方式下,这些参数提供了灵活性,确保应用程序能够根据实际需求进行调整。
内容由零声教学AI助手提供,问题来源于学员提问