首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有一个redis节点处理所有的负载。

只有一个redis节点处理所有的负载。
EN

Stack Overflow用户
提问于 2021-07-14 14:28:15
回答 1查看 412关注 0票数 0

我有一个golang服务(2个荚),使用部署在kubernetes中的redis集群(每个主服务器3个主服务器和1个从服务器),所有的redis节点都隐藏在kubernetes的集群ip后面。当对我的golang服务进行负载测试时,我发现所有的redis请求都只会发送到一个节点(不确定为什么会发生这种情况,根据文档副本,还将使用它从redis读取数据,而且由于服务上有2个豆荚在任何时候都在运行,所以我们应该能够从2个副本读取数据)。

用于golang服务的上下文

Golang服务在应用程序开始时只打开一个连接,并使用它从redis获取数据。

EN

回答 1

Stack Overflow用户

发布于 2021-07-14 14:33:29

Golang服务在应用程序开始时只打开一个连接,它正在使用该连接从redis获取数据。

这就是为什么。当应用程序打开连接时,它当然会被路由到副本之一。在保持连接打开之前,您将对所有请求使用相同的副本。这与kubernetes服务的工作方式无关。

一个简单的解决方案是每次您需要redis客户端时打开一个新连接,但这当然会带来性能损失。

另一种选择是在客户端打开一个连接池并使用所有这些连接。每个连接都应该在一个不同的副本中结束,这样,您应该更好地分散负载。

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

https://stackoverflow.com/questions/68379958

复制
相关文章

相似问题

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