Day24 生产环境需要注意的部分

在介绍过监控、yaml 控管、网路的端点暴露与附载平衡後,官方有给我们一些在,生产环境部署的建议。透过调整这些设定与部署方式,应可以使我们的 Open-Match 在水平拓展性、稳定性与可用性有更好的表现。

Setup grpc.KeepaliveEnforcementPolicy

这项设定的主要目的在於,我们使用 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,
    			},
    		),
    	)
    

提供 client-side gRPC 附载平衡的能力

这部分个人认为是必须的,所以先前已经先透过 istio 做掉了,可以参考先前的介绍 Day23 Load balance with Istio。也可以参考官方提出的,使用 gRPC DNS resolver 解法试试。

启用 Redis 哨兵模式

如果是采用 helm 部署 Op-Match 的话,预设 values sentinel 就已经是启用的了,哨兵模式可以提供高可用性的 redis 服务,让 Open-Match 有更稳定的表现,但同时启用哨兵模式时,会消耗更多的资源,这点需要依自身使用的需求评估使否开启。更多哨兵模式相关知识

抽换 Redis 时建议使用 bitnami 提供的 image

如同我们在 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)

>>:  Day26 订单 -- 重新付款2

[SQL]取20天的平均

天啊.怎麽做啊? 同事用了一个聪明的作法, XD 这麽简单,怎麽没想到呢?脑袋卡卡! 我们先来做一下...

学习笔记:一起进入 PixiJS 的世界 (二)

开始绘图吧! 有了基础场景後,就可以开始画图了,首先使用new建构出PIXI.Graphics()图...

Day 28 - 建立自己的K线资料库 (下)

本篇重点 建立Index,加快SQLite存取速率 产生日K线资料 产生周K线资料 产生月K线资料 ...

CMoney软件工程师战斗营_jQuery_Week 14

分领域後 除了每周二的课程 每周四也会有老师指定的演示 本周我是负责jQuery 以下是我的不专业整...

Day12:字典(dictionary)

壹、Python 创建字典(dictionary)的方式有两种: 1.使用 {} [In] pric...