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

背景

静态配置文件的问题:

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

介绍

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

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

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

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

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

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

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

配置中心与游戏服的交互

说明:

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

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

  • ConfigCenter 通过 ZK 存储数据

配置中心的操作

3.2 了解配置项的两种分类

配置项分为两类:

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

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

一个例子:

全局的配置中 cpploglevel 默认为 5

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

新增配置:

相关推荐
卷毛的技术笔记10 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
_codemonster10 小时前
30分钟快速搭建 Spring Cloud Alibaba 微服务实战(一)
微服务·架构·毕业设计·课程设计
会编程的土豆10 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
喵个咪10 小时前
GoWind Toolkit Go后端代码生成 完整全流程实战
后端·go·orm
basketball61611 小时前
Go 语言从入门到进阶:4. 数组和MAP使用方法总结
开发语言·后端·golang
qq_25183645711 小时前
SpringBoot+Vue 共享电池柜管理系统 完整实现 前后端分离项目实战 完整代码
vue.js·spring boot·后端
zhangxingchao11 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端
IT_陈寒12 小时前
Vite打包时遇到的坑,原来问题出在这里
前端·人工智能·后端
Dongwoo Jeong13 小时前
微服务架构(MSA)是如何诞生的?
微服务·云原生·架构
半旧夜夏13 小时前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器