AWS IoT Core MQTT飞行中消息限制默认值及修改可能性问询
关于AWS IoT Core MQTT飞行中消息限制的问题解答
1. 默认值
在Python AWS SDK v2(基于AWS CRT Python)中,MQTT连接的默认最大飞行中消息数为10。同时AWS IoT Core服务端的默认限制为100,但客户端侧的限制会优先生效——如果客户端设为10,即使服务端允许100,最多也只会有10条消息处于飞行状态。
2. 是否可以修改
可以修改。在创建MQTT连接时,通过指定max_inflight_messages参数即可调整该限制。
代码示例(使用awsiotsdk)
from awsiot import mqtt_connection_builder mqtt_connection = mqtt_connection_builder.mtls_from_path( endpoint="your-iot-endpoint", cert_filepath="path/to/cert.pem", pri_key_filepath="path/to/private.key", ca_filepath="path/to/root-CA.crt", client_id="your-client-id", max_inflight_messages=1 # 设置飞行中消息数为1,确保消息按序发送 )
补充说明
将max_inflight_messages设为1后,客户端会在收到前一条QoS1消息的确认(ACK)后,再发送下一条消息,以此确保AWS IoT Core按序接收数据包。这是QoS2不可用场景下,保障消息顺序的有效方案。
内容的提问来源于stack exchange,提问作者edcloudcycle
相关产品推荐
相关产品推荐

