Previously, properties files have been used to manage configuration information. If it is a cluster, a copy must be made on each machine, and each modification needs to be modified in sequence. I have been looking for unified modifications that can take effect in real time, facilitate modifications, and configure management for different environments and systems. I am also sorting out the design. If I can’t find something I like, I will write one myself. I can slowly improve it according to my own needs. I learned about the configuration management of 360 through the open source Chinese Weibo. After looking at it, I didn’t understand it. It seemed that the management was not convenient. Anyway, it was not what I wanted. Later I learned about Baidu’s disconf and Taobao also has a configuration management. I first looked at Baidu's disconf. This is what I want, so I didn't look at Taobao's configuration management.
First of all, this is an open source project, hosted on github, address: https://github.com/knightliao/disconf, the official documentation is still very rich, address: https://github.com/ knightliao/disconf/wiki . It is recommended to read the official documentation first. The documentation is very practical and does not take much time. I will only talk about some of the common problems that are not mentioned in the official website, but are common among people who are new to this. Here is an operation rendering diagram.
To look at this project, you need knowledge: java related technologies, front-end, git, mysql, tomcat, redis, zookeper, nginx, you can get a general idea of the following few in a few simple steps .
- I won’t talk about installing the git client, downloading the code, importing eclipse, running redis, zookeper, and mysql.
- Tips on running sh scripts on Windows.
As soon as you look at the project content, you can tell that this should only consider the development of the Linux environment and only provide sh scripts, while many people use the windows development environment. In fact, after installing the git client, you can run sh scripts under windows. The picture below shows the sh software and operation effect under git. You need to configure the environment variables according to the official tutorial first. I changed the system so I did not configure it. I have configured it before.
- Can I not install nginx?
This is a question I just asked in the official discussion group. The answer I got was no. It mentioned the separation of movement and stillness, so Baidu took a look at it and got an understanding of the role nginx plays here. I know that it has done What, to know if he must. After understanding it, you will know that there should be multiple ways to achieve this without installing nginx. I implemented one as shown in the figure below. Other ways can be Baidu springMVC's processing of static files. The first screenshot is what I did in eclipse. The result of running with tomcat. This can facilitate development. For formal environments, it is recommended to use the official design method. nginx processes static files much faster than tomcat.
- Read the discussion in the exchange group and record the following points. You can study it to see how modifications can solve the problem, then push it to the official website and contribute your own share.
1) There seems to be a problem when using spring4.
2) Some people suggest adding configuration priority, reading environment variables first, then various configuration files, and providing default configuration when none is available.
Since the official documentation is relatively detailed, the purpose and usage of disconf itself are basically not mentioned here. It is recommended to read the official tutorial carefully before asking anyone around.