.. _multi_dc: Multi-Datacenter Replication ============================ |cp| can be deployed in multiple datacenters. Multi datacenter deployments enable use-cases such as: * Active-active geo-localized deployments: allows users to access a near-by data center to optimize their architecture for low latency and high performance * Active-passive disaster recover (DR) deployments: in an event of a partial or complete datacenter disaster, allow failing over applications to use |cp| in a different datacenter. * Centralized analytics: Aggregate data from multiple Kafka clusters into one location for organization-wide analytics * Cloud migration: Use Kafka to synchronize data between on-prem applications and cloud deployments Replication of events in Apache Kafka topics from one cluster to another is the foundation of Confluent's multi datacenter architecture. Replication can be done with Confluent Enterprise Replicator or using the open source |mmaker|. Confluent Replicator allows you to easily and reliably replicate topics from one Kafka cluster to another. In addition to copying the messages, Replicator will create topics as needed preserving the topic configuration in the source cluster. This includes preserving the number of partitions, the replication factor, and any configuration overrides specified for individual topics. The diagram below shows the Replicator architecture. Notice how Replicator uses the Kafka Connect APIs and Workers to provide high availability, load-balancing and centralized management. .. figure:: replicator_components.png :align: center Replicator Architecture |mmaker| is a stand-alone tool for copying data between two Apache Kafka clusters. Confluent's Replicator is a more complete solution that handles topic configuration as well as data and integrates with Kafka Connect and |c3| to improve availability, scalability and ease of use. See the section on :ref:`comparing MirrorMaker to Confluent Replicator` for more detail. Follow these guidelines for configuring a multi datacenter deployment: 1. Use the :ref:`Replicator quick start` to set up replication between two Kafka clusters. 2. Learn how to :ref:`install and configure` Replicator and other |cp| components in multi datacenter environments. 3. Before running Replicator in production, make sure you read the :ref:`monitoring and tuning guide`. 4. Review the Confluent Replicator example in the :ref:`Confluent Platform demo`. The demo shows users how to deploy a Kafka streaming ETL using KSQL for stream processing and |c3| for monitoring, along with Replicator to replicate data. 5. For a practical guide to designing and configuring multiple Apache Kafka clusters to be resilient in case of a disaster scenario, see the `Disaster Recovery `_ white paper. This white paper provides a plan for failover, failback, and ultimately successful recovery. .. toctree:: :maxdepth: 3 replicator-quickstart replicator-install replicator-tuning replicator-failover replicator-executable mirrormaker migrate-replicator