You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Joseph Wu (JIRA)" <ji...@apache.org> on 2018/11/02 19:07:00 UTC

[jira] [Commented] (MESOS-9258) Consider making Mesos subscribers send heartbeats

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