[ 
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)

Reply via email to