微服务管理 | 配置中心的实现和使用

背景

静态配置文件的问题:

  • 配置文件分散,需要通过工具分发到分布式系统的多台机器上,比较麻烦
  • 配置生效不及时,各个程序需要支持配置热加载
  • 多环境配置,无法区分多个配置环境,比如开发的环境,测试的环境,预发布的环境,生产的环境
  • 各种配置信息多,难以管理,比如分布式限流的配置信息,各种监控的配置信息等等配置
  • 配置信息无法回滚,没有类似版本控制功能的话,就无法进行回滚

介绍

在项目中,配置中心是用来存放和拉取游戏服务器的动态配置的。

这里所说的动态配置,是相对于一些静态配置来说的。

  • 静态配置,是指随版本放出的配置,如策划的csv,也包括一些不太会变的服务器配置;

  • 静态配置,是指在游戏服务器运行期间,可以动态在线调整的配置,配置修改之后立即应用到服务器中,不需要重新更新版本

举个例子,我们登录系统中的排队功能,有个 login_limit 参数:

具体的配置内容为排队系统的一些参数:

我们可以根据 login 服务器的压力情况以及排队长度等信息,随时动态调整这些参数。这样会比较方便灵活。

配置中心与游戏服的交互

说明:

  • 服务集群中的服务从 ConfigCenter 拉取配置

  • GM管理员通过 GM web page 来新增或修改配置项,并请求 ConfigCenter 更新数据,修改成功后会通知其他所有 Service

  • ConfigCenter 通过 ZK 存储数据

配置中心的操作

3.2 了解配置项的两种分类

配置项分为两类:

a. 全局配置,默认配置值

b. 覆盖默认值,有集群/区服自己独立的配置值

一个例子:

全局的配置中 cpploglevel 默认为 5

如果2022服调整这个配置为 4

新增配置:

相关推荐
我叫黑大帅8 小时前
通过eino-ext如何正常indexer RAG?
后端·面试·go
Ava的硅谷新视界9 小时前
用了一天 Claude Opus 4.7,聊几点真实感受
开发语言·后端·编程
浪客川10 小时前
【百例RUST - 010】字符串
开发语言·后端·rust
无心水12 小时前
OpenClaw技术文档/代码评审/测试用例生成深度实战
网络·后端·架构·测试用例·openclaw·养龙虾
GetcharZp12 小时前
告别 CGO 噩梦!这款“纯 Go”神器让你不用 GCC 也能调 C 库,部署快到飞起!
后端
IT_陈寒12 小时前
Redis批量删除的大坑,差点让我加班到天亮
前端·人工智能·后端
lolo大魔王12 小时前
Go语言的反射机制
开发语言·后端·算法·golang
一个有温度的技术博主13 小时前
微服务4:Spring Cloud 微服务实战:如何实现跨服务数据组装?
spring cloud·微服务·架构
亚历克斯神13 小时前
Java 云原生开发最佳实践:构建现代化应用
java·spring·微服务
Postkarte不想说话14 小时前
使用vLLM本地部署大模型
后端