在介绍过监控、yaml 控管、网路的端点暴露与附载平衡後,官方有给我们一些在,生产环境部署的建议。透过调整这些设定与部署方式,应可以使我们的 Open-Match 在水平拓展性、稳定性与可用性有更好的表现。
这项设定的主要目的在於,我们使用 kubernetes 做水平拓展时,部分 pods 结束导致 gRPC 连线中断,此时透过此设置,可以依据设置的检查时间,适时地清除一些没有反应的连线。以下为 client side & server side 的设置范例。
client side (参考 demo client 调整)
conn, err = grpc.Dial("open-match-frontend.open-match.svc.cluster.local:50504", grpc.WithKeepaliveParams(
keepalive.ClientParameters{
Time: 20 * time.Second,
Timeout: 10* time.Second,
PermitWithoutStream: true,
},
))
server side (参考 soloduel 调整)
server := grpc.NewServer(
grpc.KeepaliveEnforcementPolicy(
keepalive.EnforcementPolicy{
MinTime: 10 * time.Second,
PermitWithoutStream: true,
},
),
)
这部分个人认为是必须的,所以先前已经先透过 istio 做掉了,可以参考先前的介绍 Day23 Load balance with Istio。也可以参考官方提出的,使用 gRPC DNS resolver 解法试试。
如果是采用 helm 部署 Op-Match 的话,预设 values sentinel 就已经是启用的了,哨兵模式可以提供高可用性的 redis 服务,让 Open-Match 有更稳定的表现,但同时启用哨兵模式时,会消耗更多的资源,这点需要依自身使用的需求评估使否开启。更多哨兵模式相关知识。
如同我们在 Day23 做过的,bitnami/redis 提供了我们高可用,且可自定义的 redis chart,通过 helm 指定参数部署,可以客制化自己想要的 redis,与 Open-Match 的沟通只需记得,部署核心时给定 redis host 即可。
helm install open-match --create-namespace --namespace open-match open-match/open-match \
--set open-match-customize.enabled=true \
--set open-match-customize.evaluator.enabled=true \
--set open-match-override.enabled=true \
--set open-match-core.redis.enabled=false \
--set open-match-core.redis.hostname= # Your redis server address
<<: 威胁猎捕篇(Cyber Threat Hunting)
天啊.怎麽做啊? 同事用了一个聪明的作法, XD 这麽简单,怎麽没想到呢?脑袋卡卡! 我们先来做一下...
开始绘图吧! 有了基础场景後,就可以开始画图了,首先使用new建构出PIXI.Graphics()图...
本篇重点 建立Index,加快SQLite存取速率 产生日K线资料 产生周K线资料 产生月K线资料 ...
分领域後 除了每周二的课程 每周四也会有老师指定的演示 本周我是负责jQuery 以下是我的不专业整...
壹、Python 创建字典(dictionary)的方式有两种: 1.使用 {} [In] pric...