[ https://issues.apache.org/jira/browse/MESOS-9258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16673558#comment-16673558 ]
Joseph Wu commented on MESOS-9258: ---------------------------------- After some more investigation, requiring two-way streaming will not work for browsers (i.e. the WebUI) because two-way streaming requires websockets. And the load balancers that do not close connections (i.e. Elastic LB) do not support websockets. Now, we are considering two other workarounds: 1) Creating a separate {{HEARTBEAT}} API call and having the {{SUBSCRIBE}} return a stream ID. This has the downside of requiring (sometimes) significant client-side changes as they would need to parse an additional message type, maintain state, and keep a separate thread for heartbeating. This might also be harder to justify in a backport (if necessary) 2) Adding an optional field to the {{SUBSCRIBE}} call which lets the client set the maximum lifetime of a connection. The master would unilaterally close the connection after the specified duration. This change would require the client to have retry/reconnect logic (which would be expected anyway). > Consider making Mesos subscribers send heartbeats > ------------------------------------------------- > > Key: MESOS-9258 > URL: https://issues.apache.org/jira/browse/MESOS-9258 > Project: Mesos > Issue Type: Improvement > Components: HTTP API > Reporter: Gastón Kleiman > Assignee: Joseph Wu > Priority: Critical > Labels: mesosphere > > Some reverse proxies (e.g., ELB using an HTTP listener) won't close the > upstream connection to Mesos when they detect that their client is > disconnected. > This can make Mesos leak subscribers, which generates unnecessary > authorization requests and affects performance. > We should evaluate methods (e.g., heartbeats) to enable Mesos to detect that > a subscriber is gone, even if the TCP connection is still open. -- This message was sent by Atlassian JIRA (v7.6.3#76005)