Membase Node.IsAlive = False?
我们的 QA 环境中有 2 台 Web 服务器和 1 台应用程序服务器。每一个 他们托管 Membase 服务。 为简单起见,我们将 Web 服务器称为:web01 和 web02。两个都 运行 IIS。
要访问 Membase,我们使用 .Net 客户端: http://memcached.enyim.com/
我们的问题这里再次遇到的是web01可以访问Membase, 每次设置和获取值都没有任何问题。 然而,web02 似乎无法从我们的 Web 应用程序访问 Membase。
我们编写了一个测试控制台应用程序并从 web02 服务器运行它 工作得很好。
我们甚至尝试 Telnet 进入 web02 中的 url 和端口 配置并且有效。
Membase 配置值在 machine.config 中定义 文件。我们比较了 web01 和 web02 之间的 machine.config 文件 WinMerge 和它们是相同的。
然后我使用反射创建了 MembaseClient 对象的转储并 这是我们在 Web02 上得到的:
==============================================
Setting Value: 1337047585
On the Key: testPageKey_287945569
"Setting NOT successful!!"
*Membase Client dump:*
bucketName: OurBucketName
bucketPassword: ThisIsAPassword
poolUrls count: 3
Url_0: http://web01:8091/pools/OurBucketName
Url_1: http://web02:8091/pools/OurBucketName
Url_2: http://app01:8091/pools/OurBucketName
Node: 69.147.125.66:11210 is alive: False
Node: 69.147.125.67:11210 is alive: False
Node: 69.147.125.68:11210 is alive: False
============================================
请注意最后 3 行如何提及节点 IsAlive = False...这 让我很困惑,因为 web01 说所有节点都处于活动状态并且 Membase 管理控制台也是如此。 再次从我们的测试应用程序(从任何地方运行,包括 web02)中,我们可以在 QA Membase 集群中成功设置和获取值。
有人遇到过这个问题吗?或者知道我们在哪里 应该寻求解决吗?
谢谢。
We have 2 web servers and 1 app server in our QA environment. Each of
them hosts a Membase service.
For simplicity let's call the web servers: web01 and web02. Both
running IIS.
To access Membase we use the .Net client: http://memcached.enyim.com/
The problem we're encountering here is that web01 can access Membase,
set and get values without any issues, any and every time.
However web02 can't seem to access Membase from our web application.
We wrote a test console app and ran it from the web02 server and it
worked just fine.
We've even tried to Telnet into the url and port we have in the web02
config and that worked.
The Membase configuration values are definied in the machine.config
file. We compared our machine.config files between web01 and web02 w/
WinMerge and they're identical.
Then I created a dump of our MembaseClient object using reflection and
here is what we get on Web02:
==========================================
Setting Value: 1337047585
On the Key: testPageKey_287945569
"Setting NOT successful!!"
*Membase Client dump:*
bucketName: OurBucketName
bucketPassword: ThisIsAPassword
poolUrls count: 3
Url_0: http://web01:8091/pools/OurBucketName
Url_1: http://web02:8091/pools/OurBucketName
Url_2: http://app01:8091/pools/OurBucketName
Node: 69.147.125.66:11210 is alive: False
Node: 69.147.125.67:11210 is alive: False
Node: 69.147.125.68:11210 is alive: False
==========================================
Please note how the last 3 lines mention Node IsAlive = False... This
is very puzzling to me because web01 says all the nodes are alive and
so does the Membase Admin Console.
And again from our test app, running from anywhere, including web02, we can set and get values successfully in that QA Membase cluster.
Anyone has ever encountered this issue? Or has any idea about where we
should be looking to solve it?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
发现问题了。这与服务器上的 .Net 安装有关。并非所有人都安装了所需的 .Net 3.5 SP1。您需要 SP1 才能使 Enyim 库正常工作。
请参阅:http://www.couchbase.org/forums/thread/machine -无法连接集群
Found the issue. It was related to the .Net install on the servers. Not all of them had the required .Net 3.5 SP1 install. You need SP1 for the Enyim library to work properly.
See: http://www.couchbase.org/forums/thread/machine-cant-connect-cluster