From 78484c9dfa3341ab8f868dce6b5561d22342c22e Mon Sep 17 00:00:00 2001 From: Jason Song Date: Tue, 6 Sep 2016 15:04:56 +0800 Subject: [PATCH 1/4] add plexus.xml for apollo-biz --- .../test/resources/META-INF/plexus/plexus.xml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 apollo-biz/src/test/resources/META-INF/plexus/plexus.xml diff --git a/apollo-biz/src/test/resources/META-INF/plexus/plexus.xml b/apollo-biz/src/test/resources/META-INF/plexus/plexus.xml new file mode 100644 index 000000000..b4530cd3d --- /dev/null +++ b/apollo-biz/src/test/resources/META-INF/plexus/plexus.xml @@ -0,0 +1,42 @@ + + + + com.dianping.cat.configuration.ClientConfigManager + com.ctrip.framework.apollo.cat.NullClientConfigManager + + + + com.dianping.cat.message.io.TransportManager + com.ctrip.framework.apollo.cat.NullTransportManager + + + + com.dianping.cat.message.spi.MessageManager + com.ctrip.framework.apollo.cat.NullMessageManager + + + + com.dianping.cat.message.internal.MessageIdFactory + + + + + com.dianping.cat.message.MessageProducer + com.ctrip.framework.apollo.cat.NullMessageProducer + + + + com.dianping.cat.message.spi.MessageManager + + + com.dianping.cat.message.internal.MessageIdFactory + + + + + org.codehaus.plexus.logging.LoggerManager + com.ctrip.framework.apollo.cat.NullLoggerManager + + + + -- Gitee From 7dc75d9c83e6fe377606853a20b7ebee229a8e2c Mon Sep 17 00:00:00 2001 From: zhangle Date: Fri, 2 Sep 2016 14:11:58 +0800 Subject: [PATCH 2/4] readme.md --- README.md | 39 +-------------------------------------- 1 file changed, 1 insertion(+), 38 deletions(-) diff --git a/README.md b/README.md index 2778908bd..ad0e360f7 100644 --- a/README.md +++ b/README.md @@ -1,38 +1 @@ -Apollo -================ - -[![Build Status](https://travis-ci.org/ctripcorp/apollo.svg?branch=master)](https://travis-ci.org/ctripcorp/apollo) -[![GitHub release](https://img.shields.io/github/release/ctripcorp/apollo.svg)](https://github.com/ctripcorp/apollo/releases) -[![Coverage Status](https://coveralls.io/repos/github/ctripcorp/apollo/badge.svg?branch=master)](https://coveralls.io/github/ctripcorp/apollo?branch=master) -[![Dependency Status](https://www.versioneye.com/user/projects/56e3ce40df573d0043113a24/badge.svg)](https://www.versioneye.com/user/projects/56e3ce40df573d0043113a24) -[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) - - Coverity Scan Build Status - -[![codecov.io](https://codecov.io/github/ctripcorp/apollo/coverage.svg?branch=master)](https://codecov.io/github/ctripcorp/apollo?branch=master) - -[Project Site](http://ctripcorp.github.io/apollo/) - -Quickstart ----------- - -Installation ------------- - -Deployment ----------- - -Development ------------ - -Contribute ----------- - -- Source Code: https://github.com/ctripcorp/apollo -- Issue Tracker: https://github.com/ctripcorp/apollo/issues - -License -------- - -The project is licensed under the Apache 2 license. \ No newline at end of file + -- Gitee From 4f6c7c6efdc0b5fa2ddc5084b98ecb6dbb6ce13f Mon Sep 17 00:00:00 2001 From: zhangle Date: Sat, 3 Sep 2016 12:53:32 +0800 Subject: [PATCH 3/4] wiki: function list --- README.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/README.md b/README.md index ad0e360f7..78be58a6a 100644 --- a/README.md +++ b/README.md @@ -1 +1,74 @@ +## 基础核心功能 + ### 配置类型 + * properties + * file(xml,json, yml, yaml) + +#### properties +* portal + * 支持单条配置项编辑 + * 支持以file级别编辑(迁移老项目properties,直接copy) + * 可以查看每一个配置项的更改历史(追责,查问题等) + * 配置需要发布才能生效(类似于code发布),发布时可以查看所有的配置修改 + * 记录发布历史 + * 配置发布后,所有的的client在1ms内,更新配置并回调监听事件 +* client + * 通过 apollo-client API获取配置项 + * client api强制用户传入default值,作为最后一层保险(config cache layer) + 1. client memory cache + 2. client file cache + 3. config server file cache + 4. db + * 通过http restful api获取properties文件 + * client可以监听每一个key的change事件 + +### file +* protal + * 文本直接编辑 + * 发布时,显示 diff + * 记录修改、发布历史 +* client + * 以String返回file + * 可以监听change事件 + +## 高级进阶功能 +以上功能是配置中心的核心功能,后台修改配置及时通知到客户端,以及客户端可以监听change事件。如果只支持这些,那么就没必要拿出来卖了~ + +###高级功能1 --- 配置回滚 +配置只有发布后才会生效,有发布当然有回滚啦,虽然功能不大,但是实用价值明显。在发布历史页面可以明确看到那一份是最新配置,哪些是回滚作废了配置。 +### 高级功能2 --- 配置分集群 +同一份代码,同一个包在多个DC,或者在不同的cluster配置可能不一致。比如主DC的机器性能更好,可以提供更强大的服务,所以设置的路由优先级高。 + +### 高级功能3 --- 配置有继承关系 +场景:业务依赖某公共组件,公共组件配置默认值,业务方可以自定义配置且覆盖公共配置。但是不支持多层继承,最多两层。因为考虑多层继承会导致模型复杂度大大提升,犯错的几率也相应的提高。 +配置有继承关系,虽然简单,但可以有无限的想象空间,应用空间。 + +### 高级功能4 --- 配置可以分组 +一个app下面可以有多种类型的配置,配置分组便于管理和维护。一个组是一个namespace + +### 高级功能5 --- 配置支持file +是不是很多老项目的配置是xml?完美支持~ + +### 高级功能6 --- 权限控制 +所有的项目都有权限,现有的权限包括,namespace级别的编辑,发布权。项目级别的管理权限,包括创建cluster,创建namespace,分配namespace权限等。以及:namespace一次发布过程中编辑和发布不能为同一个人,强制增加review过程。我们的权限有何特殊之处呢?权限模型非常易于扩展~ + +### 高级功能7 --- http restful api +我们内部client端已支持java和.net版本,但是还有很多其他语言未支持。同时,在推广过程中发现很多团队自己搞过简易版的“配置中心”,不想接入client,而是为其提供restful,便于迁移。 + +###高级功能8 --- open api +传统的配置中心,client端只有查询配置的功能。携程内部推广的过程中用户有以下两点需求: + 1. 用户的用户是运营同学,不应该让他们直接使用配置中心的后台,而是用户自己封装业务场景,然后调用我们的存储配置api + 2. 我们的portal支持绝大部分使用场景,但是有些部门的配置需要做比如校验、预处理等操作 + +针对第二种场景,如果我们为其开发校验、预处理功能,那么我们的portal将会被污染且不可控。这部分功能应由用户自己去开发,然后调用我们的open api。 +开放那些接口以及做到那种程度的auth,我们都经过深入的考虑。 + +###高级功能9 --- 可以查看配置实例信息 +portal能看到配置信息,但是对于client 实例一无所知?那些应用,哪些机器用了我的配置?每台机器都用了哪份配置?某台机器是不是用了最新的配置?所有信息一览无余~ + +###高级功能10 --- 配置灰度发布 | ABTest +场景:调整某个配置参数,先看一下某台机器的效果,而不是全部的机器。跟应用的灰度发布场景一致 + + +## 附:portal项目主页(更多设计以及portal交互请查看附件) + -- Gitee From 29218d514ac12141ca505cf3c76907c765bb6065 Mon Sep 17 00:00:00 2001 From: zhangle Date: Mon, 5 Sep 2016 10:06:39 +0800 Subject: [PATCH 4/4] update function list wiki --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 78be58a6a..78c4311fe 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,10 @@ * client * 通过 apollo-client API获取配置项 * client api强制用户传入default值,作为最后一层保险(config cache layer) - 1. client memory cache - 2. client file cache - 3. config server file cache - 4. db + 1. client memory cache + 2. client file cache + 3. config server file cache + 4. db * 通过http restful api获取properties文件 * client可以监听每一个key的change事件 -- Gitee