All Projects → yu120 → Mconf

yu120 / Mconf

Licence: mit
微服务配置中心 mconf ,基于 Zookeeper和Redis实现的配置中心。提供拉取配置、订阅配置、新增配置、删除配置、修改配置等功能。支持多数据中心、多环境配置、配置分组、多版本配置等功能。

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Mconf

Javafamily
【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。
Stars: ✭ 28,668 (+25496.43%)
Mutual labels:  zookeeper, redis
Nagios Plugins
450+ AWS, Hadoop, Cloud, Kafka, Docker, Elasticsearch, RabbitMQ, Redis, HBase, Solr, Cassandra, ZooKeeper, HDFS, Yarn, Hive, Presto, Drill, Impala, Consul, Spark, Jenkins, Travis CI, Git, MySQL, Linux, DNS, Whois, SSL Certs, Yum Security Updates, Kubernetes, Cloudera etc...
Stars: ✭ 1,000 (+792.86%)
Mutual labels:  zookeeper, redis
Learning tools
Go 学习、Go 进阶、Go 实用工具类、Go-kit ,Go-Micro 微服务实践、Go 推送
Stars: ✭ 605 (+440.18%)
Mutual labels:  redis, micro
Cookbook
🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃
Stars: ✭ 428 (+282.14%)
Mutual labels:  zookeeper, redis
Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (-10.71%)
Mutual labels:  zookeeper, redis
Onemall
芋道 mall 商城,基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。
Stars: ✭ 5,312 (+4642.86%)
Mutual labels:  zookeeper, redis
Szt Bigdata
深圳地铁大数据客流分析系统🚇🚄🌟
Stars: ✭ 826 (+637.5%)
Mutual labels:  zookeeper, redis
Zenko
Zenko is the open source multi-cloud data controller: own and keep control of your data on any cloud.
Stars: ✭ 353 (+215.18%)
Mutual labels:  zookeeper, redis
Jeeplatform
一款企业信息化开发基础平台,拟集成OA(办公自动化)、CMS(内容管理系统)等企业系统的通用业务功能 JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,代码已经捐赠给开源中国社区
Stars: ✭ 1,285 (+1047.32%)
Mutual labels:  zookeeper, redis
Eshop Soa
EShop基于Dubbo实现SOA服务化拆分,并基于RocketMQ解决了分布式事务(新版SpringBootSOASkeleton)
Stars: ✭ 65 (-41.96%)
Mutual labels:  zookeeper, redis
Highdsa
2018年本科毕设项目,已更新所有开发和部署文档。基于Dubbo、SSM、Shiro、ELK、ActiveMQ、Redis等实现的一套高可用、高性能、高可扩展的分布式系统架构,实现可支持业务的基础公共服务,API使用Restful风格对外暴露。已经实现的包括:发送邮件服务、FastDFS文件存储服务、ELK实时日志查询服务、Redis缓存服务、Mybatis数据库、阿里短信推送、Goeasy消息推送、Druid监控、ActiveMQ消息队列、shiro权限认证、cas单点登录、权限配置web系统、移动端后台系统。持续更新中......
Stars: ✭ 385 (+243.75%)
Mutual labels:  zookeeper, redis
Superman
Superman是什么:构建Java 高级开发技术的知识体系,从基础不断打怪升级成为超人之路(更新中.......)
Stars: ✭ 106 (-5.36%)
Mutual labels:  zookeeper, redis
Aquarius
🔱 Nepxion Aquarius is a list of distribution components based on Redis + Zookeeper with Nepxion Matrix AOP framework, including distribution lock, cache, id generator, limitation 分布式锁、缓存、全局唯一主键、限流
Stars: ✭ 368 (+228.57%)
Mutual labels:  zookeeper, redis
Javakeeper
✍️ Java 工程师必备架构体系知识总结:涵盖分布式、微服务、RPC等互联网公司常用架构,以及数据存储、缓存、搜索等必备技能
Stars: ✭ 502 (+348.21%)
Mutual labels:  zookeeper, redis
Full Stack Notes
全栈工程师手册
Stars: ✭ 366 (+226.79%)
Mutual labels:  zookeeper, redis
Smartsql
SmartSql = MyBatis in C# + .NET Core+ Cache(Memory | Redis) + R/W Splitting + PropertyChangedTrack +Dynamic Repository + InvokeSync + Diagnostics
Stars: ✭ 775 (+591.96%)
Mutual labels:  zookeeper, redis
Surging
Surging is a micro-service engine that provides a lightweight, high-performance, modular RPC request pipeline. The service engine supports http, TCP, WS,Grpc, Thrift,Mqtt, UDP, and DNS protocols. It uses ZooKeeper and Consul as a registry, and integrates it. Hash, random, polling, Fair Polling as a load balancing algorithm, built-in service gove…
Stars: ✭ 3,088 (+2657.14%)
Mutual labels:  zookeeper, redis
Dis Seckill
👊SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统
Stars: ✭ 315 (+181.25%)
Mutual labels:  zookeeper, redis
Commonx
基础框架
Stars: ✭ 57 (-49.11%)
Mutual labels:  zookeeper, redis
Whatsmars
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)🔥🔥🔥🔥🔥
Stars: ✭ 1,389 (+1140.18%)
Mutual labels:  zookeeper, redis

配置中心(Mconf)

License PRs Welcome GitHub Watch GitHub Star GitHub Fork

,---.    ,---.     _______        ,-----.     ,---.   .--.  ________  
|    \  /    |    /   __  \     .'  .-,  '.   |    \  |  | |        | 
|  ,  \/  ,  |   | ,_/  \__)   / ,-.|  \ _ \  |  ,  \ |  | |   .----' 
|  |\_   /|  | ,-./  )        ;  \  '_ /  | : |  |\_ \|  | |  _|____  
|  _( )_/ |  | \  '_ '`)      |  _`,/ \ _/  | |  _( )_\  | |_( )_   | 
| (_ o _) |  |  > (_)  )  __  : (  '\_/ \   ; | (_ o _)  | (_ o._)__| 
|  (_,_)  |  | (  .  .-'_/  )  \ `"/  \  ) /  |  (_,_)\  | |(_,_)     
|  |      |  |  `-'`-'     /    '. \_/``".'   |  |    |  | |   |      
'--'      '--'    `._____.'       '-----'     '--'    '--' '---'      QQ:191958521

开源产品介绍(微服务基础设施QQ交流群:191958521)

  • 配置中心(mconf)
  1. GITHUB:https://github.com/yu120/mconf
  2. 码云:https://git.oschina.net/yu120/mconf
  • 微核心(micro)
  1. GITHUB:https://github.com/yu120/micro
  2. 码云:https://git.oschina.net/yu120/micro
  • 微服务神经元(neural)
  1. GITHUB:https://github.com/yu120/neural
  2. 码云:https://git.oschina.net/yu120/neural
  • 微序列(sequence)
  1. https://git.oschina.net/yu120/sequence

1 概述

在分布式微服务架构中,当应用数量和各个应用部署实例的数量较多时,如果还是手动去实现配置信息的修改或数据的迁移等,其效率是很低的。且认为手动操作的也有可能出现错误的情况,从而引发应用发布错地方、启动不了、发不通等情况。

为了解决以上问题,开发了基于Zookeeper的配置中心(微服务配置中心:mconf),用于解决以上问题。同时新引入了微服务配置中心也为架构带来了运维成本和故障风险。因此建议不要强制依赖mconf,即没有mconf也能正常使用,当然有了mconf更好,可以为我们解决很多繁琐的事情。mconf依赖的Zookeeper可以靠集群来实现高可用,但mconf本身的问题也是可能存在的,所以使用请慎重。

核心支持功能:

  • 支持精简版mconf:管理精简版的“app-conf”结构型配置
  • 支持多数据中心配置管理
  • 支持多环境配置原理
  • 支持配置文件分组管理
  • 支持配置文件多版本管理
  • 支持单个配置文件多数据项结构(List型)
  • 支持配置文件存储的高可靠(由Zookeeper和Redis保证)

2 配置接口

2.1 基本接口

void connect(URL url);//Connect configuration center
boolean available();//Configuration center status

2.2 操作接口

void addConf(Cmd cmd, Object obj);//The Add Configuration Data.
void delConf(Cmd cmd);//The Delete Configuration Data.
void upConf(Cmd cmd, Object obj);//The Update Configuration Data.
<T> T pull(Cmd cmd, Class<T> cls);//The Pull Configuration Data.
<T> List<T> pulls(Cmd cmd, Class<T> cls);//The Pulls Configuration Data.
<T> void push(Cmd cmd, Class<T> cls, Notify<T> notify);//The Push Configuration Data.
void unpush(Cmd cmd);//The UnPush Configuration Data.

2.3 统计接口

List<DataConf> getApps();//The Get Apps.
List<DataConf> getConfs();//The Get Confs.
List<DataConf> getDataBodys();//The Get Data Body.

3 数据结构

3.1 连接URL

连接配置中心的URL格式:

[zookeeper/redis] ://127.0.0.1:2181/mconf?node=[node]&app=[app]&env=[env]&conf=[conf]&category=[category]&version=[version]&data=[data]&……

####3.1.1 Zookeeper

  • timeout:连接超时时间,单位为ms,默认值60000ms
  • session:数据过期清理时间,单位为ms,默认值6000ms

####3.1.2 Redis

  • retryPeriod:数据变更探测周期,单位为ms,默认值10000ms

3.2 数据存储结构

3.2.1 Zookeeper

用curator来实现Zookeeper的操作。使用PATH节点来表示配置所属的相关信息,使用最后一层PATH的DATA区来存储JSON结构的配置数据。

第1层PATH:/mconf?……
第2层PATH:/[app]?node=[node]&……
第3层PATH:/[conf]?env=[env]&group=[group]&version=[version]&……
第4层PATH:/[data]?……
第4层DATA:{JSON Data String}

完整PATH格式:

/mconf?……/[app]?node=[node]&……/[conf]?env=[env]&group=[group]&version=[version]&……/[data]?……

3.2.2 Redis

Redis使用Map结构来存储配置信息。

Key:/mconf?……/[app]?node=[node]&……/[conf]?env=[env]&group=[group]&version=[version]&……
Field:[data]?……
Value:{JSON Data String}

4 可视化管理界面

docs/home.png

docs/apps.png

docs/confs.png

docs/datas.png

5 功能范围

  • mconf暂不支持本地缓存配置未离线文件,后期会考虑将拉下来的配置信息缓存到离线文件,解决对Zookeeper的强依赖问题。
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].