过去专门做了一篇文档来构建配置中心,基于 zookeeper 的配置中心。

环境要求及构建步骤可参考: QConf搭建配置中心

随着业务增长,部署的机器可能会随着增长,增加配置难度和维护难度。配置会因为机器的增多而变得更加容易出错,为了解决这个问题,于是我们引入了 360 开发的 Qconf 来解决这个问题,目前已经稳定用于线上环境当中。

安装 qconf 扩展包

composer require fastd/qconf-service-provider -vvv

扩展包有点特殊,不需要任何的注册操作,当执行完 composer 依赖之后,会自动加载辅助函数,仅需对配置中心进行读取配置即可。

提供两个函数:

qconf_get_value 获取对应节点值

qconf_get_values 获取对应节点值数组

修改配置文件

config/config.php

<?phpreturn ['demo' => qconf_get_value('/demo/test', null, null, 'abc')
];

值得注意的是,如果万一不小心,qconf 出现错误或者异常无法运行的时候,则需要保留一个默认配置项,这个小动作可能会在你系统出现异常的时候救你一命。

测试配置中心

完成基础配置后,需要对配置中心进行简单的测试。

php bin/console config:dump config

结果会将配置文件进行输出,来确认是否可用。

最终架构图如下:

无论扩展多少个业务应用,仅需要一个配置中心即可完成多处配置修改。

FastD 最佳实践二: 构建配置中心相关推荐

  1. LINQ快速开发设计最佳实践(二) 构建Model模型

    一.摘要 第一篇文章我简要介绍了项目的设计框架和LINQ实现思想. 本篇文章将是最实际和具有技巧性的地方, 就是如何创建LINQ TO SQL 的模型对象. 二.前言 1.LINQ与LINQ TO S ...

  2. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

    原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二) Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 ...

  3. SOLR7实践(二)--DIH配置及使用

    DIH配置及使用@SOLR7实践(二) DIH配置及使用 网上已经有很多相关文章了,但是实践中还是遇到了些问题,备忘一下. 一.配置solrconfig.xml 编辑/var/solr/data/ne ...

  4. 最佳实践丨构建云上私有池(虚拟IDC)的5种方案详解

    简介:云上私有池系列终篇终于来了,本文将重点介绍构建云上的私有池(虚拟IDC)的多种方案和各自的优缺点,并给出相关的性价比优化建议. 本文作者:阿里云技术专家李雨前 摘要 围绕私有池(虚拟IDC)的价 ...

  5. Dotnet core使用JWT认证授权最佳实践(二)

    最近,团队的小伙伴们在做项目时,需要用到JWT认证.遂根据自己的经验,整理成了这篇文章,用来帮助理清JWT认证的原理和代码编写操作. 第一部分:Dotnet core使用JWT认证授权最佳实践(一) ...

  6. 分布式部署携程Apollo构建配置中心

    一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...

  7. k8s停止服务_Kubernetes 服务部署最佳实践(二) 如何提高服务可用性

    引言 上一篇 文章我们围绕如何合理利用资源的主题做了一些最佳实践的分享,这一次我们就如何提高服务可用性的主题来展开探讨. 怎样提高我们部署服务的可用性呢?K8S 设计本身就考虑到了各种故障的可能性,并 ...

  8. .Net Core 商城微服务项目系列(十四):分布式部署携程Apollo构建配置中心

    一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...

  9. 一部分 数据 迁移_11项最佳实践,每次数据中心迁移都必不可少

    随着企业业务和应用的发展,现有基础架构已经无法保障时,数据中心迁移无法避免,企业可能需要迁移来增加容量或推出新功能和服务. 基础架构要求可能会随时间变化,并且可能会考虑使用托管服务提供商或云服务的选项 ...

最新文章

  1. ffmpeg api的应用——提取视频图片
  2. mybatis框架使用generator的快速搭建
  3. 【VMCloud云平台】SCCM(五)创建第一个集合
  4. 5学习周报_你做好周报的“闭环管理”了吗?——“周报管理知多少”
  5. 神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python语句)
  6. 持久层和数据访问层_什么是持久层? JDBC 演变的 Mybatis 架构分析
  7. SciPy教程 - 常数constants和特殊函数库special
  8. 用Python快速实现图片的风格迁移
  9. ubuntu安装gcc和g++
  10. cloudera-scm-agent 已死,但 pid 文件存在
  11. PHP刷步数,微信支付宝修改步数刷步源码/带卡密功能PHP程序
  12. 一叶落而知天下秋暨“今目标”反思
  13. Use SageMath with PyCharm/PyDev (Use PyCharm/PyDev to run and debug SageMath scripts)
  14. 手绘漫画学习 素描自学视频
  15. java报500算什么错误_jsp中500是什么错误
  16. IE浏览器版本切换解决的问题
  17. 线性表 :: 顺序存储结构的实现
  18. 示波器电源测试交流耦合的陷阱
  19. 深入理解Java虚拟机 笔记
  20. verilog能直接用c语言编程软件,verilog语言编程

热门文章

  1. 大数据之Linux早课9.11
  2. svn无法cleanup常见解决方案
  3. mac下宿主机与virtualbox中的Ubuntu建立ssh连接
  4. 光热发电成千亿元市场 加速产业布局
  5. Greenplum installation guide
  6. 从零开始学 Java - Spring MVC 实现跨域资源 CORS 请求
  7. mysql update case when和where之间的注意事项
  8. 要获取NAT之后的外网IP地址
  9. mysql+join+合计_图解MySQL里的各种 JOIN,看完不懂来找我!
  10. 大数据技术应用有哪些特点