[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [OASIS Issue Tracker] (MQTT-257) Flow Control
[ https://issues.oasis-open.org/browse/MQTT-257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=59220#comment-59220 ] Raphael Cohen commented on MQTT-257: ------------------------------------ I've certainly seen real-world problems over the years with brokers sending more messages than a client can accept (mostly due to shockingly naive client code, eg logging every message with a naff library like log4j that uses to sync on every log call)! That said, flow control is difficult for most middle-ground developers to understand and manage, and it's not striaghtforward to implement. If we adopt shared subscriptions, then the problem is very much mitigated - a consumer can just add another processor connection for messages. I do think we need to say something about the inflight window. It confuses a lot of people. > Flow Control > ------------ > > Key: MQTT-257 > URL: https://issues.oasis-open.org/browse/MQTT-257 > Project: OASIS Message Queuing Telemetry Transport (MQTT) TC > Issue Type: Bug > Components: futures > Reporter: Peter Niblett > > Developers sometimes ask if there's a way to slow down an MQTT message sender to stop it sending PUBLISH packets faster than the receiver (be it a server or client) is able to process them. > The receiver can apply back pressure at the TCP/IP level (if it's a TCP/IP transport) or - for QOS 1 and QOS2 - it can delay sending acks so that eventually the sender's inflight message window will fill up, but these mechanisms are a bit crude, and the receiver has no in-band way of letting the sender know what rate is acceptable to it. > We need to decide whether this is a problem that affects a significant number of existing or envisaged real-life applications (as opposed to performance and stress tests) -- This message was sent by Atlassian JIRA (v6.2.2#6258)
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]