From 7b230de4d22c8acd41f57337ba7a404c409b2b2e Mon Sep 17 00:00:00 2001 From: Patrick Kuo Date: Tue, 2 Oct 2018 13:22:38 +0100 Subject: [PATCH] ENT-2492 - Test and document configuration for 'shareable' datacenter-wide Zookeeper deployment (#1429) * zookeeper doc * explicitly mention hot/hot is not supported * change zookeeper to ZooKeeper * change doc link to v3.5.3 * add note stating only zookeeper v3.5.3-beta is compatible --- docs/source/corda-firewall-component.rst | 29 ++++++++++++++++++-- docs/source/firewall-configuration-file.rst | 2 +- docs/source/resources/bridge/zookeeper.png | Bin 0 -> 49616 bytes 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 docs/source/resources/bridge/zookeeper.png diff --git a/docs/source/corda-firewall-component.rst b/docs/source/corda-firewall-component.rst index 584f9e89ad..d1e66ad7e1 100644 --- a/docs/source/corda-firewall-component.rst +++ b/docs/source/corda-firewall-component.rst @@ -1,5 +1,5 @@ Firewall Component Overview -=============================== +=========================== .. contents:: @@ -175,7 +175,7 @@ to highlight the option: Full production HA DMZ ready mode (hot/cold node, hot/warm bridge) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Finally, we show a full HA solution as recommended for production. This does require adding an external Zookeeper +Finally, we show a full HA solution as recommended for production. This does require adding an external ZooKeeper cluster to provide bridge master selection and extra instances of the bridge and float. This allows hot-warm operation of all the bridge and float instances. The Corda Enterprise node should be run as hot-cold HA too. Highlighted in the diagram is the addition of the ``haConfig`` section to point at ``zookeeper`` and also the use of secondary @@ -186,3 +186,28 @@ pool of DMZ float processes.: :scale: 100% :align: center +Apache ZooKeeper +---------------- +Apache ZooKeeper is used in Corda firewall to manage the hot/warm bridge clusters, because hot/hot is not supported, ZooKeeper is used to ensure only 1 instance of the bridge is active at all time. +ZooKeeper instance is also used for signals failover when the active bridge is disconnected. + +Setting up ZooKeeper cluster +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +ZooKeeper can be deployed in single-server, or multi-server setup. A clustered (multi-Server) setup is recommended for production use, for added fault tolerance and reliability. + +Detailed setup instruction can be found in `Apache ZooKeeper documentation `_. + +.. note:: Only Apache ZooKeeper version 3.5.3-beta is compatible due to Apache Curator v4.0.1 dependencies. + +Sharing ZooKeeper +^^^^^^^^^^^^^^^^^ +A single ZooKeeper cluster instance can be shared between multiple bridge clusters to reduce infrastructure cost, the ``haConfig.haTopic`` can be configured to allow each bridge cluster accessing different ZooKeeper path. + +.. image:: resources/bridge/zookeeper.png +:scale: 100% + :align: center + +The above example shows multiple Corda bridges (NodeA and NodeB) connecting to the same ZooKeeper server. +Node A and B have their own namespaces in ZooKeeper, which allow them to operate in the same ZooKeeper without interfering each other. + +This setup can be configured by setting NodeA and B's ``haConfig.haTopic`` to ``/corda/bridge/NodeA`` and ``/coda/bridge/NodeB`` respectively, the parent nodes (/corda and /corda/bridge) will be created automatically upon connection. diff --git a/docs/source/firewall-configuration-file.rst b/docs/source/firewall-configuration-file.rst index 2c1e2c2767..787f801871 100644 --- a/docs/source/firewall-configuration-file.rst +++ b/docs/source/firewall-configuration-file.rst @@ -1,5 +1,5 @@ Firewall configuration -==================== +====================== .. contents:: diff --git a/docs/source/resources/bridge/zookeeper.png b/docs/source/resources/bridge/zookeeper.png new file mode 100644 index 0000000000000000000000000000000000000000..7646c38f5897f1edd4931a7cbd9d2fcc64a75270 GIT binary patch literal 49616 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