首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kubenetes中通过mcrouter从Rails访问Memcached

在Kubenetes中通过mcrouter从Rails访问Memcached
EN

Stack Overflow用户
提问于 2020-01-09 02:09:26
回答 1查看 136关注 0票数 0

我有一个在Google Kubernetes引擎中运行的Rails 6应用程序,我正在尝试使用Memcached启用分布式缓存。

我严格遵循these instructions将Memcached部署到使用mcrouter的Kubernetes集群中。没有任何错误,使用Python脚本的最终测试运行良好。

然后在我的Rails应用程序中,我想我只需要添加"dalli“gem,并像这样使用MemCacheStore

代码语言:javascript
复制
cache = ActiveSupport::Cache::MemCacheStore.new("#{ENV['NODE_NAME']}:5000")
cache.write('key', 'value')

此代码应连接到本地节点上的mcrouter的5000端口,并写入缓存( NODE_NAME环境变量保存本地节点的名称)。

cache.write命令返回false并将以下内容打印到日志:

代码语言:javascript
复制
D, [2020-01-08T18:02:30.233119 #215] DEBUG -- : Dalli::Server#connect gke-rev79-cluster-phat-pool-41a53de4-rfz3:5000
W, [2020-01-08T18:02:30.258514 #215]  WARN -- : gke-rev79-cluster-phat-pool-41a53de4-rfz3:5000 failed (count: 0) EOFError: end of file reached

"gke-rev79-cluster-phat-pool-41a53de4-rfz3“是本地节点名称

这是我从cache.inspect得到的

代码语言:javascript
复制
"#<ActiveSupport::Cache::MemCacheStore:0x0000000004087cb8 @options={}, @data=#<Dalli::Client:0x0000000004087498 @servers=[\"gke-rev79-cluster-phat-pool-41a53de4-rfz3:5000\"], @options={}, @ring=nil>>"

如何连接到缓存?也许我需要在Rails缓存存储的选项中添加一些东西?

EN

回答 1

Stack Overflow用户

发布于 2020-02-12 12:32:01

看起来Dalli不支持Mcrouter,因为它使用Memcached二进制协议,而Memcached不支持Memcached二进制协议。

https://github.com/facebook/mcrouter/issues/56

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59651553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档