{"id":12699,"date":"2022-01-24T09:25:41","date_gmt":"2022-01-24T17:25:41","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=12699"},"modified":"2025-06-13T20:45:52","modified_gmt":"2025-06-14T03:45:52","slug":"deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/","title":{"rendered":"Deploying Couchbase for High-Availability in Google Cloud Platform &#8211; Part 2 &#8211; XDCR"},"content":{"rendered":"<p><span style=\"font-weight: 400\">This is Part 2 in a series focused on leveraging the high-availability architectural capabilities and features of Couchbase Server on the Google Cloud Platform (GCP). The Couchbase concepts discussed here can be universally applied to any cloud environment where you deploy your cluster but the steps and commands are specific to GCP.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><a href=\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-1\/\">Part 1<\/a> covered how to achieve Couchbase node and service (Query, Index, Data, Search, Eventing, Analytics, Backup) resiliency. We showed how to do this by allocating services to specific nodes spread across specific GCP availability zones within a Region.<\/span><span style=\"font-weight: 400\"> You can read that blog <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-1\/\"><span style=\"font-weight: 400\">here<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In this blog post, we enable <\/span><b>Cross <a href=\"https:\/\/www.couchbase.com\/products\/xdcr\/\">Data Center Replication <\/a><\/b><span style=\"font-weight: 400\">(XDCR) between two Couchbase clusters running in GCP across two different regions. This implements database <a href=\"https:\/\/www.couchbase.com\/blog\/combine-clusters-to-achieve-high-availability\/\">High Availability (HA)<\/a>, disaster recovery or geo-locality data enforcement. XDCR is not new to Couchbase and is available out of the box with every installed Couchbase cluster. XDCR can be used between any two versions of Couchbase Server (since version 2.5).<\/span><\/p>\n<h4><span style=\"font-weight: 400\">The five scenarios of data loss prevention<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Couchbase Server architecture provides data resiliency (e.g., data loss prevention) on several different levels \u2013 from the single data mutation level all the way up to the cluster level. These are five of those levels in more detail:<\/span><\/p>\n<p><b>Write Failure &amp; Durability Levels<\/b><\/p>\n<p><span style=\"font-weight: 400\">Data <\/span><i><span style=\"font-weight: 400\">Write <\/span><\/i><span style=\"font-weight: 400\">operations to Couchbase buckets can be assigned durability requirements. For example, Couchbase can be instructed to update the specified document on multiple nodes (in memory and\/or disk locations across the cluster) before considering the write to be committed. The greater the number of memory\/disk locations specified in the requirements, the greater the level of durability achieved. You can read more about setting these different levels in <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/data\/durability.html\"><span style=\"font-weight: 400\">this product documentation page<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><b>Node Failure &amp; Failover<\/b><\/p>\n<p><span style=\"font-weight: 400\">The Couchbase <\/span><i><span style=\"font-weight: 400\">Data<\/span><\/i><span style=\"font-weight: 400\">, <\/span><i><span style=\"font-weight: 400\">Index <\/span><\/i><span style=\"font-weight: 400\">and <\/span><i><span style=\"font-weight: 400\">Full Text Search<\/span><\/i><span style=\"font-weight: 400\"> services allow replicas to be created at the document and index levels so that when a node running one of these services fails another replicate can be used. For example, the existing replicas that live on the still running nodes for those services become available so that your applications can still fully function. You can read in detail on how Couchbase&#8217;s underlying architecture supports this ability in this blog, <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/distributed-databases-overview\/\"><span style=\"font-weight: 400\">Distributed Databases: An Overview<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><b>Cloud Availability &amp; Rack Zone Failures<\/b><\/p>\n<p><span style=\"font-weight: 400\">Leveraging <\/span><i><span style=\"font-weight: 400\">Multi-Dimensional Scaling <\/span><\/i><span style=\"font-weight: 400\">(MDS) and <\/span><i><span style=\"font-weight: 400\">Server Group Awareness <\/span><\/i><span style=\"font-weight: 400\">protects your applications from losing data access due to a physical <\/span><i><span style=\"font-weight: 400\">rack <\/span><\/i><span style=\"font-weight: 400\">or cloud <\/span><i><span style=\"font-weight: 400\">availability zone <\/span><\/i><span style=\"font-weight: 400\">failure. Part 1 of this blog series covered how to separate Couchbase services across independent nodes within a cluster that is running across different physical racks in a datacenter or across cloud provider availability zones.<\/span><\/p>\n<p><b>Cloud Region &amp; Datacenter Failures<\/b><\/p>\n<p><span style=\"font-weight: 400\">Replication is the key to providing high availability and fault tolerance at the cluster level. XDCR is a highly performant, memory-to-memory, replication technology used to replicate data between two Couchbase clusters. This is complementary to the intra-cluster replication behind our data auto sharding that is built into Couchbase&#8217;s architecture. XDCR provides asynchronous replication and maintains data consistency across sites via eventual consistency. We will walk through how to implement this capability between two separate Couchbase clusters in different GCP regions in this blog.<\/span><\/p>\n<p><b>\u201cYour World\u201d Failure<\/b><\/p>\n<p><span style=\"font-weight: 400\">Cluster Backups! Customers sometimes ask, \u201cWhy do I need to backup if I already have 100% availability?\u201d The best answer to this question is another question, \u201cWhat would you do if corrupt data is introduced into your cluster from an upstream system or application?\u201d This is one of the few downsides of memory-to-memory replication: corrupt data will likely infest other clusters quickly, so you will need to restore an uncorrupted point-in-time backup. This scenario is very rare and we hope it is never encountered by our customers, but you should evaluate your current Couchbase backup practices and schedules just in case. In Couchbase 7 we introduced the <\/span><i><span style=\"font-weight: 400\">Backup Service <\/span><\/i><span style=\"font-weight: 400\">to further facilitate the automation of your backup and restore strategy. You can read about that <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/introducing-couchbase-backup-service\/\"><span style=\"font-weight: 400\">here<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Five steps to implement cross datacenter replication (XDCR) with Couchbase on GCP<\/span><\/h4>\n<p><span style=\"font-weight: 400\">These are the high-level steps covered in this blog to implement XDCR between Regional GCP Couchbase clusters:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Setup 2 separate Couchbase clusters in different regions of GCE<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Enable the <\/span><i><span style=\"font-weight: 400\">travel-sample <\/span><\/i><span style=\"font-weight: 400\">dataset on Cluster 1 that will be the source data for a unidirectional replication<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Create an empty bucket on Cluster 2\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Create an XDCR stream from Cluster 1 to Cluster 2 for an active\/passive HA scenario<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Create an XDCR stream from Cluster 2 to Cluster 1 for an active\/active HA scenario or to enforce geo-locality of data<\/span><\/li>\n<\/ol>\n<p><b>Step 1<\/b><\/p>\n<p><span style=\"font-weight: 400\">Follow the instructions in<\/span> <a href=\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-1\/\"><span style=\"font-weight: 400\">Part 1<\/span><\/a> <span style=\"font-weight: 400\">to spin up two separate Couchbase clusters in different GCP Regions, such as <\/span><i><span style=\"font-weight: 400\">us-east1 <\/span><\/i><span style=\"font-weight: 400\">and <\/span><i><span style=\"font-weight: 400\">us-central1<\/span><\/i><span style=\"font-weight: 400\">. This is similar to deploying Couchbase in two different data centers in different geographic locations to protect your environments from geographical network infrastructure failure.<\/span><\/p>\n<p><b>Step 2<\/b><\/p>\n<p><span style=\"font-weight: 400\">In the Couchbase UI for the <\/span><i><span style=\"font-weight: 400\">GCP-WEST <\/span><\/i><span style=\"font-weight: 400\">cluster, go to the <\/span><i><span style=\"font-weight: 400\">Settings <\/span><\/i><span style=\"font-weight: 400\">section and click on the <\/span><i><span style=\"font-weight: 400\">Sample Buckets<\/span><\/i><span style=\"font-weight: 400\"> link in the top right corner of the screen:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12700\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/gcpwestsettings.png\" alt=\"\" width=\"1600\" height=\"514\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpwestsettings.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpwestsettings-300x96.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpwestsettings-1024x329.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpwestsettings-768x247.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpwestsettings-1536x493.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpwestsettings-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpwestsettings-1320x424.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Then check the box next to <\/span><i><span style=\"font-weight: 400\">travel-sample<\/span><\/i><span style=\"font-weight: 400\"> and click on <\/span><i><span style=\"font-weight: 400\">Load Sample Data:<\/span><\/i><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12701\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/gccpwestsettingsstep2.png\" alt=\"\" width=\"1146\" height=\"361\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gccpwestsettingsstep2.png 1146w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gccpwestsettingsstep2-300x95.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gccpwestsettingsstep2-1024x323.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gccpwestsettingsstep2-768x242.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gccpwestsettingsstep2-20x6.png 20w\" sizes=\"auto, (max-width: 1146px) 100vw, 1146px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Give this a couple of minutes to load the dataset, then click over to the <\/span><i><span style=\"font-weight: 400\">Buckets <\/span><\/i><span style=\"font-weight: 400\">area in the UI to see the new bucket called <\/span><i><span style=\"font-weight: 400\">travel-sample<\/span><\/i><span style=\"font-weight: 400\">. All of the data is loaded once you see the item count shown below (version 7.x):<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12702\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/buckets.png\" alt=\"\" width=\"1137\" height=\"208\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/buckets.png 1137w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/buckets-300x55.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/buckets-1024x187.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/buckets-768x140.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/buckets-20x4.png 20w\" sizes=\"auto, (max-width: 1137px) 100vw, 1137px\" \/><\/p>\n<p><span style=\"font-weight: 400\">This will be the <\/span><i><span style=\"font-weight: 400\">source <\/span><\/i><span style=\"font-weight: 400\">bucket for our XDCR stream between the <\/span><i><span style=\"font-weight: 400\">GCP East<\/span><\/i><span style=\"font-weight: 400\"> and <\/span><i><span style=\"font-weight: 400\">West <\/span><\/i><span style=\"font-weight: 400\">regional clusters. Before we can define and enable a stream to replicate this data we need to create a target empty bucket on the destination cluster to receive the data.<\/span><\/p>\n<p><b>Step 3<\/b><\/p>\n<p><span style=\"font-weight: 400\">On the second cluster, <\/span><i><span style=\"font-weight: 400\">GCP-EAST,<\/span><\/i><span style=\"font-weight: 400\"> in the Admin UI, go to the <\/span><i><span style=\"font-weight: 400\">Buckets<\/span><\/i><span style=\"font-weight: 400\"> area and click on <\/span><i><span style=\"font-weight: 400\">ADD BUCKET<\/span><\/i><span style=\"font-weight: 400\"> in the upper right hand corner:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12703\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/gcpeast.png\" alt=\"\" width=\"1600\" height=\"292\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeast.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeast-300x55.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeast-1024x187.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeast-768x140.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeast-1536x280.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeast-20x4.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeast-1320x241.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">You will then see this window and can fill in the required values to create an empty target bucket.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12704\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/databucket.png\" alt=\"\" width=\"1088\" height=\"906\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/databucket.png 1088w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/databucket-300x250.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/databucket-1024x853.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/databucket-768x640.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/databucket-20x17.png 20w\" sizes=\"auto, (max-width: 1088px) 100vw, 1088px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Once you click <\/span><i><span style=\"font-weight: 400\">Add Bucket<\/span><\/i><span style=\"font-weight: 400\"> you should see it listed immediately. I have named the bucket differently from the source bucket to assist in knowing which cluster the screenshots are from. In real life, you would likely want to name them the same so that your application&#8217;s string values will not have to change in the event that you are switching from one cluster to the other.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12705\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/gcpeastbuckets.png\" alt=\"\" width=\"1600\" height=\"270\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeastbuckets.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeastbuckets-300x51.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeastbuckets-1024x173.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeastbuckets-768x130.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeastbuckets-1536x259.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeastbuckets-20x3.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/gcpeastbuckets-1320x223.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><b>Step 4<\/b><\/p>\n<p><span style=\"font-weight: 400\">To implement an active\/passive cluster strategy we set up a unidirectional XDCR stream from our <\/span><i><span style=\"font-weight: 400\">GCP-WEST<\/span><\/i><span style=\"font-weight: 400\"> cluster <\/span><i><span style=\"font-weight: 400\">travel-sample <\/span><\/i><span style=\"font-weight: 400\">bucket to our <\/span><i><span style=\"font-weight: 400\">GCP-EAST<\/span><\/i><span style=\"font-weight: 400\"> cluster <\/span><i><span style=\"font-weight: 400\">east-travel-sample<\/span><\/i><span style=\"font-weight: 400\"> bucket. In the Admin UI for the <\/span><i><span style=\"font-weight: 400\">GCP-WEST <\/span><\/i><span style=\"font-weight: 400\">cluster in the <\/span><i><span style=\"font-weight: 400\">XDCR <\/span><\/i><span style=\"font-weight: 400\">section, click on <\/span><i><span style=\"font-weight: 400\">ADD REMOTE<\/span><\/i><span style=\"font-weight: 400\"> in the upper right corner. This will open another pop-up window.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12706\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/xdcr.png\" alt=\"\" width=\"1076\" height=\"291\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcr.png 1076w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcr-300x81.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcr-1024x277.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcr-768x208.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcr-20x5.png 20w\" sizes=\"auto, (max-width: 1076px) 100vw, 1076px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12707\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/addremotecluster.png\" alt=\"\" width=\"566\" height=\"490\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/addremotecluster.png 566w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/addremotecluster-300x260.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/addremotecluster-20x17.png 20w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Click <\/span><i><span style=\"font-weight: 400\">Save<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12708\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/xdcrwestreplications.png\" alt=\"\" width=\"1057\" height=\"311\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcrwestreplications.png 1057w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcrwestreplications-300x88.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcrwestreplications-1024x301.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcrwestreplications-768x226.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcrwestreplications-20x6.png 20w\" sizes=\"auto, (max-width: 1057px) 100vw, 1057px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Now click on <\/span><i><span style=\"font-weight: 400\">ADD REPLICATION<\/span><\/i><span style=\"font-weight: 400\"> to get to the screen where we can create a unidirectional stream from <\/span><i><span style=\"font-weight: 400\">GCP-WEST<\/span><\/i><span style=\"font-weight: 400\"> to <\/span><i><span style=\"font-weight: 400\">GCP-EAST<\/span><\/i><span style=\"font-weight: 400\">.\u00a0\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12709\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/xdcraddreplication.png\" alt=\"\" width=\"1112\" height=\"922\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcraddreplication.png 1112w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcraddreplication-300x249.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcraddreplication-1024x849.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcraddreplication-768x637.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/xdcraddreplication-20x17.png 20w\" sizes=\"auto, (max-width: 1112px) 100vw, 1112px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Once you enter in all of your stream customizations, click <\/span><i><span style=\"font-weight: 400\">Save Replication<\/span><\/i><span style=\"font-weight: 400\"> and the stream will start immediately moving data to the <\/span><i><span style=\"font-weight: 400\">GCP-EAST <\/span><\/i><span style=\"font-weight: 400\">cluster and will continue as mutations occur in the <\/span><i><span style=\"font-weight: 400\">travel-sample <\/span><\/i><span style=\"font-weight: 400\">bucket.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12710\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/westxdcrreplications.png\" alt=\"\" width=\"1314\" height=\"371\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/westxdcrreplications.png 1314w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/westxdcrreplications-300x85.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/westxdcrreplications-1024x289.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/westxdcrreplications-768x217.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/westxdcrreplications-20x6.png 20w\" sizes=\"auto, (max-width: 1314px) 100vw, 1314px\" \/><\/p>\n<p><span style=\"font-weight: 400\">I chose to only replicate the <\/span><i><span style=\"font-weight: 400\">default <\/span><\/i><span style=\"font-weight: 400\">scope in this stream so that you can see the different options now available in version 7 to split or combine scopes and collections as part of a replication stream. You can read in more detail about these options in this post: <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/\"><span style=\"font-weight: 400\">Introducing XDCR Support for Scopes and Collections in Couchbase 7.0<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12711\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/scopesandcollections.png\" alt=\"\" width=\"1335\" height=\"281\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/scopesandcollections.png 1335w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/scopesandcollections-300x63.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/scopesandcollections-1024x216.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/scopesandcollections-768x162.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/scopesandcollections-20x4.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/scopesandcollections-1320x278.png 1320w\" sizes=\"auto, (max-width: 1335px) 100vw, 1335px\" \/><\/p>\n<p><b>Step 5<\/b><\/p>\n<p><span style=\"font-weight: 400\">If you want to setup an active-active HA strategy for two or more Couchbase clusters you will need to create one unilateral XDCR stream going from Cluster 1 to Cluster 2 and then a parallel reverse stream from Cluster 2 to Cluster 1 for the same data set. For example as shown below, we have set up a unilateral stream on each cluster so that any mutations that hit one cluster are replicated to the other.\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12712\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/unnamed.png\" alt=\"\" width=\"1600\" height=\"363\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/unnamed.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/unnamed-300x68.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/unnamed-1024x232.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/unnamed-768x174.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/unnamed-1536x348.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/unnamed-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/unnamed-1320x299.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12713\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/easttravelsample.png\" alt=\"\" width=\"1600\" height=\"366\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/easttravelsample.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/easttravelsample-300x69.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/easttravelsample-1024x234.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/easttravelsample-768x176.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/easttravelsample-1536x351.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/easttravelsample-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/easttravelsample-1320x302.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">If you want to apply filtering rules to support data locality policies you can read about how to implement these capabilities <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/xdcr-filtering.html\"><span style=\"font-weight: 400\">here<\/span><\/a><span style=\"font-weight: 400\"> in this documentation page.\u00a0<\/span><\/p>\n<p><b>Conclusion<\/b><\/p>\n<p><span style=\"font-weight: 400\">You\u2019ve just seen how you can use XDCR to implement a key piece of your Couchbase Cluster HA strategy by protecting the applications using Couchbase from a Data Center or cloud network regional failure.<\/span><\/p>\n<p><span style=\"font-weight: 400\">You can learn more about XDCR from these sources:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/www.couchbase.com\/blog\/understanding-xdcr-part-1\/?ref=blog\"><span style=\"font-weight: 400\">Understanding Cross Data Center Replication (XDCR) Part 1<\/span><\/a><a href=\"https:\/\/www.couchbase.com\/blog\/deep-dive-cross-data-center-replication-xdcr\/\"><span style=\"font-weight: 400\">\u00a0<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/web.cvent.com\/hub\/events\/1dce8283-986d-4de9-8368-94c98f60df01\/sessions\/1476a1be-7293-4b50-b064-e932c8833525\"><span style=\"font-weight: 400\">XDCR: Replicate in Hybrid Cloud Deployments with Ease and Control<\/span><\/a><span style=\"font-weight: 400\"> is from our <\/span><b>Couchbase Connect21 User Conference<\/b><span style=\"font-weight: 400\">, covering tips and tricks (including new features for Scopes and Collections) for getting the most out of XDCR in Couchbase Server version 7, including new features included for Scopes &amp; Collections.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Follow up by reading these resources to get you started with Couchbase on GCP:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-1\/\"><span style=\"font-weight: 400\">Deploying Couchbase for High-Availability in Google Cloud Platform &#8211; Part 1 &#8211; Server Group Awareness<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/console.cloud.google.com\/marketplace\/partners\/couchbase-public?project=couchbase-se-east-us&amp;folder&amp;organizationId=430530022539\"><span style=\"font-weight: 400\">Couchbase offerings in GCP Marketplace<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/docs.couchbase.com\/server\/current\/cloud\/couchbase-gcp-cloud-launcher.html#topic_rfg_qjt_xs\"><span style=\"font-weight: 400\">Deploy Couchbase Server Using GCP Marketplace<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/docs.couchbase.com\/server\/current\/cloud\/couchbase-cloud-deployment.html#google-cloud-platform-gcp\"><span style=\"font-weight: 400\">Best Practices for Running Couchbase on Google Compute Engine<\/span><\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is Part 2 in a series focused on leveraging the high-availability architectural capabilities and features of Couchbase Server on the Google Cloud Platform (GCP). The Couchbase concepts discussed here can be universally applied to any cloud environment where you [&hellip;]<\/p>\n","protected":false},"author":79984,"featured_media":12294,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,9415],"tags":[1245,2101],"ppma_author":[9515],"class_list":["post-12699","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-xdcr","tag-cloud","tag-gcp"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deploying Couchbase for High-Availability in Google Cloud Platform - Part 2 - XDCR - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"The Couchbase concepts discussed here can be universally applied to any cloud environment where you deploy your cluster but the steps and commands are specific to GCP.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploying Couchbase for High-Availability in Google Cloud Platform - Part 2 - XDCR\" \/>\n<meta property=\"og:description\" content=\"The Couchbase concepts discussed here can be universally applied to any cloud environment where you deploy your cluster but the steps and commands are specific to GCP.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-24T17:25:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:45:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jenn Lewis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jenn Lewis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/\"},\"author\":{\"name\":\"Jenn Lewis\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7f48c26e7e2dfefbdeab06bd3fedbd59\"},\"headline\":\"Deploying Couchbase for High-Availability in Google Cloud Platform &#8211; Part 2 &#8211; XDCR\",\"datePublished\":\"2022-01-24T17:25:41+00:00\",\"dateModified\":\"2025-06-14T03:45:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/\"},\"wordCount\":1461,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg\",\"keywords\":[\"cloud\",\"gcp\"],\"articleSection\":[\"Couchbase Server\",\"Cross Data Center Replication (XDCR)\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/\",\"name\":\"Deploying Couchbase for High-Availability in Google Cloud Platform - Part 2 - XDCR - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg\",\"datePublished\":\"2022-01-24T17:25:41+00:00\",\"dateModified\":\"2025-06-14T03:45:52+00:00\",\"description\":\"The Couchbase concepts discussed here can be universally applied to any cloud environment where you deploy your cluster but the steps and commands are specific to GCP.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg\",\"width\":1200,\"height\":628,\"caption\":\"Sign up for Couchbase ConnectONLINE to hear first hand from Couchbase enterprise customers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploying Couchbase for High-Availability in Google Cloud Platform &#8211; Part 2 &#8211; XDCR\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7f48c26e7e2dfefbdeab06bd3fedbd59\",\"name\":\"Jenn Lewis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/dbc8af1f9835cffb79dc76d35912e2af\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/02\/JennProfile-Jan2020.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/02\/JennProfile-Jan2020.jpg\",\"caption\":\"Jenn Lewis\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/jenn-lewis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Deploying Couchbase for High-Availability in Google Cloud Platform - Part 2 - XDCR - The Couchbase Blog","description":"The Couchbase concepts discussed here can be universally applied to any cloud environment where you deploy your cluster but the steps and commands are specific to GCP.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/","og_locale":"en_US","og_type":"article","og_title":"Deploying Couchbase for High-Availability in Google Cloud Platform - Part 2 - XDCR","og_description":"The Couchbase concepts discussed here can be universally applied to any cloud environment where you deploy your cluster but the steps and commands are specific to GCP.","og_url":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/","og_site_name":"The Couchbase Blog","article_published_time":"2022-01-24T17:25:41+00:00","article_modified_time":"2025-06-14T03:45:52+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg","type":"image\/jpeg"}],"author":"Jenn Lewis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jenn Lewis","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/"},"author":{"name":"Jenn Lewis","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7f48c26e7e2dfefbdeab06bd3fedbd59"},"headline":"Deploying Couchbase for High-Availability in Google Cloud Platform &#8211; Part 2 &#8211; XDCR","datePublished":"2022-01-24T17:25:41+00:00","dateModified":"2025-06-14T03:45:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/"},"wordCount":1461,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg","keywords":["cloud","gcp"],"articleSection":["Couchbase Server","Cross Data Center Replication (XDCR)"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/","url":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/","name":"Deploying Couchbase for High-Availability in Google Cloud Platform - Part 2 - XDCR - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg","datePublished":"2022-01-24T17:25:41+00:00","dateModified":"2025-06-14T03:45:52+00:00","description":"The Couchbase concepts discussed here can be universally applied to any cloud environment where you deploy your cluster but the steps and commands are specific to GCP.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/couchbase-connect-tech-conference-customer-sessions.jpg","width":1200,"height":628,"caption":"Sign up for Couchbase ConnectONLINE to hear first hand from Couchbase enterprise customers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/deploying-couchbase-for-high-availability-in-google-cloud-platform-part-2-xdcr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Deploying Couchbase for High-Availability in Google Cloud Platform &#8211; Part 2 &#8211; XDCR"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7f48c26e7e2dfefbdeab06bd3fedbd59","name":"Jenn Lewis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/dbc8af1f9835cffb79dc76d35912e2af","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/02\/JennProfile-Jan2020.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/02\/JennProfile-Jan2020.jpg","caption":"Jenn Lewis"},"url":"https:\/\/www.couchbase.com\/blog\/author\/jenn-lewis\/"}]}},"authors":[{"term_id":9515,"user_id":79984,"is_guest":0,"slug":"jenn-lewis","display_name":"Jenn Lewis","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/02\/JennProfile-Jan2020.jpg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/02\/JennProfile-Jan2020.jpg"},"author_category":"","last_name":"Lewis","first_name":"Jenn","job_title":"","user_url":"","description":"Jenn, Lewis, Sr. Solutions Engineer at Couchbase in Eastern US"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/12699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/79984"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=12699"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/12699\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/12294"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=12699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=12699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=12699"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=12699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}