Use Couchbase hosted in Amazon from a client hosted in Azure, what can cause bad performance?

时光毁灭记忆、已成空白 提交于 2019-12-14 03:53:58

问题


I'm trying to use a Couchbase cluster hosted in Amazon EC2. The client I'm trying to use it from is hosted in Microsoft Azure.

The performance is terrible, in ~10% of the time opening a bucket takes a lot of time.
This is my configuration:

<couchbaseClients>
  <couchbase useSsl="false" operationLifespan="1000">
    <servers>
      <!-- Ip addresses obscured... -->
      <add uri="http://1.1.1.1:8091/pools"></add>
      <add uri="http://1.1.1.2:8091/pools"></add>
    </servers>
    <buckets>
      <add name="default" useSsl="false" operationLifespan="1000">
      </add>
    </buckets>
  </couchbase>
</couchbaseClients>

This is the code I'm testing with:

var cluster = new Cluster("couchbaseClients/couchbase");

using (var bucket = cluster.OpenBucket("bucketname")) // This sometimes takes 3-50 seconds.
{
    var obj = new TestClass { };

    // This is fast
   var result = bucket.Insert(new Document<TestClass> { Content = obj, Expiry = 300000, Id = Guid.NewGuid().ToString() });
}

Opening the Couchbase bucket sometimes (not always) takes a lot of time, anywhere between 3-50 seconds. It happens often enough that it makes it completely unusable.

When it happens, I can see the following error message in the Couchbase logs:

2015-12-10 14:18:57,644 [1] DEBUG Couchbase.Configuration.Server.Providers.ConfigProviderBase - Bootstrapping with 1.1.1.2:11210
2015-12-10 14:19:07,660 [1] INFO Couchbase.IO.ConnectionPool`1[[Couchbase.IO.Connection, Couchbase.NetClient, Version=2.2.2.0, Culture=neutral, PublicKeyToken=05e9c6b5a9ec94c2]] - Node 1.1.1.2:11210 failed to initialize, reason: System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
   at Couchbase.IO.DefaultConnectionFactory.<GetGeneric>b__0[T](IConnectionPool`1 p, IByteConverter c, BufferAllocator b)
   at Couchbase.IO.ConnectionPool`1.Initialize()

Note that 10 seconds are passed there. (I obscured the IP-addresses.)

What can cause this problem and how could I troubleshoot?
This seems to be Azure-specific, I could not reproduce this on my local dev machine or on a machine hosted in the Google cloud. However, it is consistently happening on two different Azure VMs.

来源:https://stackoverflow.com/questions/34204339/use-couchbase-hosted-in-amazon-from-a-client-hosted-in-azure-what-can-cause-bad

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!