Flying
Cloud-native microservices multi-environment configuration center. (云原生微服务多环境配置中心)
Install / Use
/learn @ZhangChengJi/FlyingREADME

Flying is a microservice multi-environment cloud native configuration center

English | Chinese
Introduction
At present, the direction of microservice architecture is gradually moving closer to the grid of kubernetes services, and the concept of multi-environment and multi-cluster appears. Flying can realize the unified management of multi-cluster microservice configuration.
Services are divided into:
-
flying-admin management terminal: The management interface is used to manage the configuration of multiple flying-config servers. It is mainly for adding and modifying
environment,application projectmanagement,namespacepublishing and other functions. -
flying-config server: The real configuration center server, responsible for configuring information storage, pushing client notifications, etc. Can be deployed in multiple environments.
-
flying-client client: Configuration receiving function, real-time update configuration and other functions. At present, only the Java client connection is implemented, and more language clients will appear in the future.
Demo Environment:
Function description
-
Unified management of multi-environment and multi-cluster configuration server
- One-click configuration of multiple environment servers for management directly through the management interface
- No need to restart the management end to configure the server
-
Multi-server running status monitoring
- When connecting to servers in multiple environments, the connection status will be displayed in real time
-
Configure hot reload
- After the configuration is modified and released, the client receives the newly released configuration within 300 milliseconds
-
High remote connection efficiency
- The remote communication of the whole structure adopts grpc connection and tls encryption, which is efficient and safe. You can customize the encryption certificate.
Quick start
deploy
-
Clone the code repository
$ git clone https://github.com/ZhangChengJi/flying.git -
Start the service
In the root directory of flying, create a service through docker-compose
$ cd flying $ docker-compose -f ./deployments/docker-compose/docker-compose.yml up
Through the above command, you can access from http://localhost:8888/, the default account: admin/123456
After startup, configure the environment to connect to the server through the graphical interface of the management terminal. Note that the default network of docker is bridge, and you cannot connect directly with the localhost:8881 address. Access directly by name in the docker0 bridge of the bridge, Please use flying-config:8881 or {local ip}:8881 connection.
When connecting to the management server, the environment name should be defined as follows.
-
DEV
- Development environment
-
FAT
- Test environment, equivalent to alpha environment (functional test)
-
UAT
- Integrated environment, equivalent to beta environment (regression testing)
-
PRO
- Production Environment
Note: The docker-compose deployment method is only suitable for testing. For real production use, please use the HA database.
It is recommended that the management end and the server end use containers for convenient and efficient deployment. The deployment scripts of docker-compase and kubernetes can be found in the /deployments directory. Of course, it can also be deployed via binary.
SDK docking
-
Java client
-
Add the flying-client maven package file to your springboot project:
<dependency> <groupId>com.github.zhangchengji</groupId> <artifactId>flying-client</artifactId> <version>1.0.0</version> </dependency>Imported successfully
-
Change application.yml to bootstrap.yml in springboot
-
Add configuration in the bootstrap.yml file:
spring: profiles: active: ${ACTIVE:dev} # Configure the startup environment, if the environment variable $ACTIVE is configured with the environment name, then the $ACTIVE will be used by default flying: bootstrap: app-id: scaffold-user #Current own project name enabled: true # Whether to open the flying configuration center, the default is false refresh-enabled: true # Whether to enable real-time configuration update, default is false namespace: default # The namespace name of the current project configuration information configured on the server side, there can be multiple, separated by multiple commas address: # Configure multiple environments, the environment loading configuration will be selected according to the spring.profiles.active environment name at startup - name: uat # environment name url: flying-config.flying.svc:8881 #Environment address (server address)
Please view the flying example: https://github.com/ZhangChengJi/flying-example
-
-
golang client
Undeveloped.....
kubernetes multiple environments
- When using the flying configuration center in multiple kubernetes clusters, it is recommended to only establish the flying-admin management terminal in the internal network/test environment, and then expose the grpc encrypted connection address of the flying-config server in each cluster through the dedicated line or external network ip.
- When the microservices in each cluster connect to flying-config, it is recommended to use the kubernetes service attribute name to connect, for example:
flying-config.flying.svc:8881
License
This project has obtained Apache 2 License.
User registration
Users are welcome to register in https://github.com/ZhangChengJi/flying/issues/1
| | | | | | ---- | ---- | ---- | ---- | | | | | | | | | | | | | | | |
contact us
Email 380702562@qq.com
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
344.1kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
