资讯专栏INFORMATION COLUMN

配置文件相关笔记

spademan / 2544人阅读

摘要:配置文件位置这里主要讲的是,配置文件不要跟源码放在一个目录。这样每次每次更新都不会覆盖配置文件,并且原来的配置文件可以作为配置模板,不负责配置实例。

配置文件位置

这里主要讲的是,配置文件不要跟源码放在一个目录。比如我新建了一个django project,然后用了里面的settings来作为我代码的配置。你项目目录可能是这样的

mysite/
├── apps
│   ├── account
│   │   ├── control.py
│   │   ├── __init__.py
│   │   ├── urls.py
│   │   └── views.py
├── settings.py

这里settings.py跟源码放在同一个目录。这样会很出这个问题,如果你每次更新线上环境的时候,都是把源码打成一个包(例如deb包),然后安装的时候,替换这个目录。这样你每次线上的配置都会给你覆盖掉。
例如我线上配置了每次登陆系统的用户是50,你这个新包里的配置是一个默认值,那这样就不一致了。

所以,代码还是代码,配置还是配置,不要混在一起,虽然很简单,但是很有必要考虑。

这里应该在project源码外面新建一个目录conf,来存放配置文件。

project/
├── conf
│   └── settings.py
├── mysite
│   └── apps
│       └── account
│           ├── control.py
│           ├── __init__.py
│           ├── urls.py
│           └── views.py

这样每次每次更新都不会覆盖配置文件,并且原来的配置文件可以作为配置模板,不负责配置实例。

配置本地化

对于前面的问题,你不打算新建一个目录存放配置的话,或许可以通过支持配置本地化来解决,也就是支持服务有自己的配置,不会因为配置文件更新而被覆盖,比如你在代码层面支持local_settings.py每次读取配置的时候,会先从local_settings.py里读取,然后再从settings.py里读取。

服务支持获取最新配置

如果你的配置文件经常修改,并且每次服务都需要用到最新配置,那么可能需要服务在代码层面支持检测配置文件是否被更新,更新了则使用最新配置。

如果你用服务线程定期去检测配置文件,然后更新自己内存里的值,这也可以,首先生产环境需要支持配置自动部署更新,比如我通过集群里一个节点推送到其他节点,实现全部更新。或者使用一些开源服务,由该基础配置服务提供统一接口,其他服务通过该接口读取配置,这样实现起来可能会更简单。总之,各取所需。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43386.html

相关文章

  • 《Spring实战》读书笔记——Spring简介

    摘要:如何降低开发的复杂性最小侵入编程通过面向接口和依赖注入实现松耦合基于编程惯例和切面进行声明式编程通过模板减少样板式代码容器在应用中,不再由对象自行创建或管理它们之间的依赖关系容器负责创建对象装配对象配置它们并管理它们的整个生命周期。 欢迎大家关注我的微信公众号,一起探讨Java相关技术 showImg(https://segmentfault.com/img/bVboaBO?w=129...

    CKJOKER 评论0 收藏0
  • webpack实践笔记(二)---添加 loaders

    摘要:实践笔记二源码地址本篇文章基于分支切换分支加载顺序分了三个级别,,分别代表前中后,三个处理状态。安装相关包创建文件,每个公司采用适合自己的规则。配置文件较大,可查看项目源码。 webpack实践笔记(二)--- add loaders [源码地址]:( https://github.com/silence717... ) 本篇文章基于分支step2,切换分支:git checkout ...

    cnsworder 评论0 收藏0
  • vue学习笔记(四)

    摘要:提供了两种向组件传递参数的方式。子路由项路径不要使用开头,以开头的嵌套路径会被当作根路径。路由实例的方法这里学习两个路由实例的方法和。实际上,是通过不同的将这些资源加载后打包,然后输出打包后文件。 一、vue-router 1、简介 我们经常使用vue开发单页面应用程序(SPA)。在开发SPA过程中,路由是必不可少的部分,vue的官方推荐是vue-router。单页面应用程序看起来好像...

    frank_fun 评论0 收藏0
  • vue学习笔记(四)

    摘要:提供了两种向组件传递参数的方式。子路由项路径不要使用开头,以开头的嵌套路径会被当作根路径。路由实例的方法这里学习两个路由实例的方法和。实际上,是通过不同的将这些资源加载后打包,然后输出打包后文件。 一、vue-router 1、简介 我们经常使用vue开发单页面应用程序(SPA)。在开发SPA过程中,路由是必不可少的部分,vue的官方推荐是vue-router。单页面应用程序看起来好像...

    lwx12525 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<