You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zeppelin.apache.org by "liuxun (JIRA)" <ji...@apache.org> on 2018/07/11 11:14:00 UTC

[jira] [Created] (ZEPPELIN-3612) Cluster High availability module design

liuxun created ZEPPELIN-3612:
--------------------------------

             Summary: Cluster High availability module design
                 Key: ZEPPELIN-3612
                 URL: https://issues.apache.org/jira/browse/ZEPPELIN-3612
             Project: Zeppelin
          Issue Type: Sub-task
          Components: zeppelin-server
    Affects Versions: 0.9.0
            Reporter: liuxun
             Fix For: 0.9.0


h3. In the case of a partial Zeppelin-Server service process or server exception, the service can continue to be served; the Zeppelin-Server service can sense the availability of all Interpreter processes in the server cluster;
 # *Raft protocol*

The Raft protocol ensures that only N/2+1 servers in the cluster need to be in a normal state without affecting the service.

 # *Interpreter process monitoring*

The Interpreter process creates a process heartbeat thread through the ClusterMonitor class, and periodically sends the Interpreter process heartbeat information and the IP and port information of the Thrift interface to the cluster.

When the Interpreter process is closed, the process of deleting the process metadata is sent to the cluster.

The process health check thread is created in the Zeppelin-Server through the ClusterMonitor class. The heartbeat of all Interpreter processes in the Cluster MetaData is periodically checked. If the timeout expires, the process metadata is deleted to prevent the Interpreter process from being abnormal.

 # *Interpreter process rebuild*

When the interpreter process is created, the Zeppelin-Server detects the session information of the Interpreter process. First, it checks whether the process is valid. If it is not available, the corresponding session is cleared and the Interpreter process is re-created. Preventing an Interpreter process from being abnormal or a server exception on the process causes Interpreter to be unavailable.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)