From 24be3c23608baebb6b146de7dbf7479b3a12d1e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E5=94=81?= <52o@qq52o.cn> Date: Wed, 27 Oct 2021 08:26:07 +0800 Subject: [PATCH 1/4] docs: Optimize search and logo click, Update image links, navbar and sidebar links (#4061) * docs: Optimize search and logo click * docs: Update image links, navbar and sidebar links * docs: Update other links --- CONTRIBUTING.md | 2 +- README.md | 584 +++++++++--------- docs/_coverpage.md | 2 +- docs/en/README.md | 14 +- docs/en/_navbar.md | 4 +- docs/en/_sidebar.md | 10 +- docs/en/community/team.md | 8 +- docs/index.html | 16 +- docs/zh/README.md | 29 +- docs/zh/_navbar.md | 4 +- docs/zh/_sidebar.md | 10 +- docs/zh/community/team.md | 10 +- docs/zh/deployment/deployment-architecture.md | 4 +- .../distributed-deployment-guide.md | 44 +- docs/zh/deployment/quick-start-docker.md | 2 +- docs/zh/deployment/quick-start.md | 16 +- .../design/apollo-core-concept-namespace.md | 2 +- docs/zh/design/apollo-design.md | 30 +- docs/zh/design/apollo-introduction.md | 40 +- .../development/apollo-development-guide.md | 36 +- docs/zh/development/apollo-release-guide.md | 62 +- .../portal-how-to-enable-email-service.md | 18 +- ...al-how-to-implement-user-login-function.md | 16 +- ...ues-in-deployment-and-development-phase.md | 20 +- docs/zh/faq/faq.md | 2 +- docs/zh/usage/apollo-open-api-platform.md | 4 +- docs/zh/usage/apollo-user-guide.md | 132 ++-- docs/zh/usage/dotnet-sdk-user-guide.md | 6 +- docs/zh/usage/java-sdk-user-guide.md | 32 +- .../usage/other-language-client-user-guide.md | 4 +- 30 files changed, 600 insertions(+), 563 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4dadc8243fe..dc30073ba5d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ ## Contributing to apollo -Apollo is released under the non-restrictive Apache 2.0 license, and follows a very standard Github development process, using Github tracker for issues and merging pull requests into master. If you want to contribute even something trivial please do not hesitate, but follow the guidelines below. +Apollo is released under the non-restrictive Apache 2.0 license, and follows a very standard GitHub development process, using GitHub tracker for issues and merging pull requests into master. If you want to contribute even something trivial please do not hesitate, but follow the guidelines below. ### Sign the Contributor License Agreement diff --git a/README.md b/README.md index d40da9448c4..ef2ca7adef2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -apollo-logo +apollo-logo English | [中文](https://www.apolloconfig.com/#/zh/README) @@ -27,7 +27,7 @@ Demo Environment: - User/Password: apollo/admin # Screenshots -![Screenshot](https://raw.githubusercontent.com/apolloconfig/apollo/master/docs/en/images/apollo-home-screenshot.jpg) +![Screenshot](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/docs/en/images/apollo-home-screenshot.jpg) # Features * **Unified management of the configurations of different environments and different clusters** @@ -128,416 +128,416 @@ The project is licensed under the [Apache 2 license](https://github.com/apolloco - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + +
携程青石证券沙绿航旅纵横58转转携程青石证券沙绿航旅纵横58转转
蜂助手海南航空CVTE明博教育麻袋理财蜂助手海南航空CVTE明博教育麻袋理财
美行科技首展科技易微行人才加凯京集团美行科技首展科技易微行人才加凯京集团
乐刻运动大疆快看漫画我来贷虚实软件乐刻运动大疆快看漫画我来贷虚实软件
网易严选视觉中国资产360亿咖通5173网易严选视觉中国资产360亿咖通5173
沪江网易云基础服务现金巴士锤子科技头等仓沪江网易云基础服务现金巴士锤子科技头等仓
吉祥航空263移动通信投投金融每天健康麦芽金服吉祥航空263移动通信投投金融每天健康麦芽金服
蜂向科技即科金融贝壳网有赞云集汇通蜂向科技即科金融贝壳网有赞云集汇通
犀牛瀚海科技农信互联蘑菇租房狐狸金服漫道集团犀牛瀚海科技农信互联蘑菇租房狐狸金服漫道集团
怪兽充电南瓜租房石投金融土巴兔平安银行怪兽充电南瓜租房石投金融土巴兔平安银行
新新贷中国华戎科技集团涂鸦智能立创商城乐赚金服新新贷中国华戎科技集团涂鸦智能立创商城乐赚金服
开心汽车乐赚金服普元信息医帮管家付啦信用卡管家开心汽车乐赚金服普元信息医帮管家付啦信用卡管家
悠哉网梧桐诚选拍拍贷信用飞丁香园悠哉网梧桐诚选拍拍贷信用飞丁香园
国槐科技亲宝宝华为视频直播微播易欧飞国槐科技亲宝宝华为视频直播微播易欧飞
迷说一下科技DaoCloud汽摩交易所好未来教育集团迷说一下科技DaoCloud汽摩交易所好未来教育集团
猎户星空卓健科技银江股份途虎养车河姆渡猎户星空卓健科技银江股份途虎养车河姆渡
新网银行中旅安信云贷美柚震坤行万谷盛世新网银行中旅安信云贷美柚震坤行万谷盛世
铂涛旅行乐心亿投传媒股先生财学堂铂涛旅行乐心亿投传媒股先生财学堂
4399汽车之家面包财经虎扑搜狐汽车4399汽车之家面包财经虎扑搜狐汽车
量富征信卖好车中移物联网易车网一药网量富征信卖好车中移物联网易车网一药网
小影彩贝壳YEELIGHT积目极致医疗小影彩贝壳YEELIGHT积目极致医疗
金汇金融久柏易游小麦铺搜款网米庄理财金汇金融久柏易游小麦铺搜款网米庄理财
贝吉塔网络科技微盟网易卡搭股书聚贸贝吉塔网络科技微盟网易卡搭股书聚贸
广联达bimface环球易购浙江执御二维火上品广联达bimface环球易购浙江执御二维火上品
浪潮集团纳里健康橙红科技龙腾出行荔枝浪潮集团纳里健康橙红科技龙腾出行荔枝
汇通达云融金科天生掌柜容联光辉云天励飞汇通达云融金科天生掌柜容联光辉云天励飞
嘉云数据中泰证券网络金融部网易易盾享物说申通嘉云数据中泰证券网络金融部网易易盾享物说申通
金和网络二三四五恒天财富沐雪微信温州医科大学附属眼视光医院金和网络二三四五恒天财富沐雪微信温州医科大学附属眼视光医院
联通支付杉数科技分利宝核桃编程小红书联通支付杉数科技分利宝核桃编程小红书
幸福西饼跨越速运OYO叮咚买菜智道网联幸福西饼跨越速运OYO叮咚买菜智道网联
雪球车通云哒哒英语小E微店达令家雪球车通云哒哒英语小E微店达令家
人力窝嘉美在线极易付智慧开源车仕库人力窝嘉美在线极易付智慧开源车仕库
太美医疗科技亿联百汇舟谱数据芙蓉兴盛野兽派太美医疗科技亿联百汇舟谱数据芙蓉兴盛野兽派
凯叔讲故事好大夫在线云幂信息技术兑吧九机网凯叔讲故事好大夫在线云幂信息技术兑吧九机网
随手科技万谷盛世云账房浙江远图互联青客公寓随手科技万谷盛世云账房浙江远图互联青客公寓
东方财富极客修美市科技中通快递易流科技东方财富极客修美市科技中通快递易流科技
实习僧达令家寺库连连支付众安保险实习僧达令家寺库连连支付众安保险
360金融中航服商旅贝壳Yeahmobi易点天下北京登云美业网络科技有限公司360金融中航服商旅贝壳Yeahmobi易点天下北京登云美业网络科技有限公司
金和网络中移(杭州)信息技术有限公司北森合肥维天运通北京蜜步科技有限公司金和网络中移(杭州)信息技术有限公司北森合肥维天运通北京蜜步科技有限公司
术康富力集团天府行八商山中原地产术康富力集团天府行八商山中原地产
智科云达中原730百果园波罗蜜Xignite智科云达中原730百果园波罗蜜Xignite
杭州有云科技有限公司成都书声科技有限公司斯维登集团广东快乐种子科技有限公司上海盈翼文化传播有限公司杭州有云科技有限公司成都书声科技有限公司斯维登集团广东快乐种子科技有限公司上海盈翼文化传播有限公司
上海尚诚消费金融股份有限公司自如网京东兔展智能竹贝上海尚诚消费金融股份有限公司自如网京东兔展智能竹贝
iMile(中东)哈罗出行智联招聘阿卡索妙知旅iMile(中东)哈罗出行智联招聘阿卡索妙知旅
程多多上汽通用五菱乐言科技樊登读书找一找教程网程多多上汽通用五菱乐言科技樊登读书找一找教程网
中油碧辟石油有限公司四川商旅无忧科技服务有限公司懿鸢网络科技(上海)有限公司稿定科技搵樓 - 利嘉閣中油碧辟石油有限公司四川商旅无忧科技服务有限公司懿鸢网络科技(上海)有限公司稿定科技搵樓 - 利嘉閣
南京领行科技股份有限公司北京希瑞亚斯科技有限公司印彩虹印刷公司Million Tech果果科技南京领行科技股份有限公司北京希瑞亚斯科技有限公司印彩虹印刷公司Million Tech果果科技
昆明航空我爱我家国金证券不亦乐乎惠农网昆明航空我爱我家国金证券不亦乐乎惠农网
成都道壳澳优乳业河南有态度信息科技有限公司智阳第一人力上海保险交易所成都道壳澳优乳业河南有态度信息科技有限公司智阳第一人力上海保险交易所
万顺叫车收钱吧宝尊电商喜百年供应链南京观为智慧软件科技有限公司万顺叫车收钱吧宝尊电商喜百年供应链南京观为智慧软件科技有限公司
在途商旅哗啦啦优信二手车每刻科技杭州蛮牛在途商旅哗啦啦优信二手车每刻科技杭州蛮牛
翼支付魔筷科技畅唐网络准时达早道网校翼支付魔筷科技畅唐网络准时达早道网校
万店掌推文科技Lemonbox保利票务芯翼科技万店掌推文科技Lemonbox保利票务芯翼科技
浙商银行易企银科技上海云盾苏州盖雅信息技术有限公司爱库存浙商银行易企银科技上海云盾苏州盖雅信息技术有限公司爱库存
极豆车联网伴鱼少儿英语锐达科技新东方在线金康高科极豆车联网伴鱼少儿英语锐达科技新东方在线金康高科
soul驿氪慧聪中塑在线甄云科技soul驿氪慧聪中塑在线甄云科技
追溯科技玩吧广州卡桑信息技术有限公司水滴酷我音乐追溯科技玩吧广州卡桑信息技术有限公司水滴酷我音乐
小米今典签宝科技广州趣米网络科技有限公司小米今典签宝科技广州趣米网络科技有限公司 More...
# Awards -The most popular Chinese open source software in 2018 +The most popular Chinese open source software in 2018 # Stargazers over time diff --git a/docs/_coverpage.md b/docs/_coverpage.md index 746776f99e0..552dfa34499 100644 --- a/docs/_coverpage.md +++ b/docs/_coverpage.md @@ -1,4 +1,4 @@ -apollo-logo +apollo-logo > A reliable configuration management system diff --git a/docs/en/README.md b/docs/en/README.md index e2c5d34a237..c975bce8767 100644 --- a/docs/en/README.md +++ b/docs/en/README.md @@ -1,4 +1,4 @@ -apollo-logo +apollo-logo # Introduction @@ -82,15 +82,15 @@ Demo Environment: # Development * [Apollo Development Guide](zh/development/apollo-development-guide) * Code Styles - * [Eclipse Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml) - * [Intellij Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml) + * [Eclipse Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml) + * [Intellij Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml) # Deployment * [Quick Start](zh/deployment/quick-start) * [Distributed Deployment Guide](zh/deployment/distributed-deployment-guide) # Release Notes -* [Releases](https://github.com/ctripcorp/apollo/releases) +* [Releases](https://github.com/apolloconfig/apollo/releases) # FAQ * [FAQ](zh/faq/faq) @@ -108,8 +108,8 @@ Demo Environment: # Community * [Apollo Team](en/community/team) - * [Community Governance](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md) - * [Contributing Guide](https://github.com/ctripcorp/apollo/blob/master/CONTRIBUTING.md) + * [Community Governance](https://github.com/apolloconfig/apollo/blob/master/GOVERNANCE.md) + * [Contributing Guide](https://github.com/apolloconfig/apollo/blob/master/CONTRIBUTING.md) # License -The project is licensed under the [Apache 2 license](https://github.com/ctripcorp/apollo/blob/master/LICENSE). +The project is licensed under the [Apache 2 license](https://github.com/apolloconfig/apollo/blob/master/LICENSE). diff --git a/docs/en/_navbar.md b/docs/en/_navbar.md index 5cef9d8f88b..3f4f06b237e 100644 --- a/docs/en/_navbar.md +++ b/docs/en/_navbar.md @@ -1,7 +1,7 @@ - Community - [Team](en/community/team.md) - - [Community Governance](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md) - - [Contributing Guide](https://github.com/ctripcorp/apollo/blob/master/CONTRIBUTING.md) + - [Community Governance](en/governance.md) + - [Contributing Guide](en/contributing.md) - [Acknowledgements](en/community/thank-you.md) - Translations diff --git a/docs/en/_sidebar.md b/docs/en/_sidebar.md index c7d0caedc8d..6844a03b675 100644 --- a/docs/en/_sidebar.md +++ b/docs/en/_sidebar.md @@ -16,8 +16,8 @@ - Development Document - [Apollo Development Guide](en/development/apollo-development-guide.md) - Code Styles - - [Eclipse Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml) - - [Intellij Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml) + - [Eclipse Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml) + - [Intellij Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml) - [Portal Implement User Login Function](en/development/portal-how-to-implement-user-login-function.md) - [Portal Enable Email Service](en/development/portal-how-to-enable-email-service.md) - [Portal Enable Session Store](en/development/portal-how-to-enable-session-store.md) @@ -39,11 +39,11 @@ - [Common Issues In Deployment & Development Phase](en/faq/common-issues-in-deployment-and-development-phase.md) - Other - - [Release History](https://github.com/ctripcorp/apollo/releases) + - [Release History](https://github.com/apolloconfig/apollo/releases) - [Apollo Benchmark](en/misc/apollo-benchmark.md) - Community - [Team](en/community/team.md) - - [Community Governance](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md) - - [Contributing Guide](https://github.com/ctripcorp/apollo/blob/master/CONTRIBUTING.md) + - [Community Governance](en/governance.md) + - [Contributing Guide](en/contributing.md) - [Acknowledgements](en/community/thank-you.md) diff --git a/docs/en/community/team.md b/docs/en/community/team.md index 3afb9221583..a5d2fc5fe25 100644 --- a/docs/en/community/team.md +++ b/docs/en/community/team.md @@ -2,7 +2,7 @@ The Apollo team is comprised of Members and Contributors. Members have direct access to the source of Apollo project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. All contributions to Apollo are greatly appreciated, whether for trivial cleanups, big new features or other material rewards. -For more information about the community governance model, please refer [GOVERNANCE.md](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md). +For more information about the community governance model, please refer [GOVERNANCE.md](https://github.com/apolloconfig/apollo/blob/master/GOVERNANCE.md). ## Members @@ -10,7 +10,7 @@ Members include Project Management Committee members and committers. The list is ### Project Management Committee -| Github ID | Name | Organization | +| GitHub ID | Name | Organization | | ---------- | ---------- | ------------ | | JaredTan95 | Jared Tan | DaoCloud | | kezhenxu94 | Zhenxu Ke | Tetrate | @@ -18,7 +18,7 @@ Members include Project Management Committee members and committers. The list is | zouyx | Joe Zou | Shein | ### Committer -| Github ID | Name | Organization | +| GitHub ID | Name | Organization | | ----------- | ------------- | ------------ | | Anilople | Xiaoquan Wang | Some Bank | | Accelerater | Zhuohao Li | Daocloud | @@ -38,4 +38,4 @@ Members include Project Management Committee members and committers. The list is ## Becoming a Committer -Please refer [How to become a Committer](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md#how-to-become-a-committer). +Please refer [How to become a Committer](https://github.com/apolloconfig/apollo/blob/master/GOVERNANCE.md#how-to-become-a-committer). diff --git a/docs/index.html b/docs/index.html index 367de5db66f..47bc531ef2f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -67,6 +67,15 @@ '/en/.*/_navbar.md': '/en/_navbar.md', '/zh/(.*)': 'zh/$1', '/en/(.*)': 'en/$1', + '.*?/governance': + 'https://raw.githubusercontent.com/apolloconfig/apollo/master/GOVERNANCE.md', + '.*?/contributing': + 'https://raw.githubusercontent.com/apolloconfig/apollo/master/CONTRIBUTING.md', + }, + nameLink: { + '/zh/': '#/zh/', + '/en/': '#/en/', + '/': '#/', }, auto2top: true, // Only coverpage is loaded when visiting the home page. @@ -78,7 +87,7 @@ maxLevel: 6, subMaxLevel: 5, name: 'Apollo', - repo: 'https://github.com/ctripcorp/apollo/', + repo: 'https://github.com/apolloconfig/apollo/', search: { noData: { '/zh/': '没有结果!', @@ -91,6 +100,7 @@ '/en/': 'Search', '/': '搜索', }, + pathNamespaces: ['/zh', '/en'] }, // click to copy. copyCode: { @@ -136,7 +146,7 @@ .replace('raw.githubusercontent.com', 'github.com') .replace(/\/master/, '/blob/master') } else { - url = 'https://github.com/ctripcorp/apollo/blob/master/docs/' + vm.route.file + url = 'https://github.com/apolloconfig/apollo/blob/master/docs/' + vm.route.file } var editHtml = '[:memo: Edit Document](' + url + ')\n\n' @@ -162,7 +172,7 @@ - + diff --git a/docs/zh/README.md b/docs/zh/README.md index 0668a5eec3c..06679d263ec 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -1,4 +1,4 @@ -apollo-logo +apollo-logo # Introduction @@ -15,13 +15,14 @@ Java客户端不依赖任何框架,能够运行于所有Java运行时环境, 本地快速部署请参见[Quick Start](zh/deployment/quick-start) 演示环境(Demo): + - [http://106.54.227.205](http://106.54.227.205/) - 账号/密码:apollo/admin -> 如访问github速度缓慢,可以访问[gitee镜像](https://gitee.com/nobodyiam/apollo),不定期同步 +> 如访问GitHub速度缓慢,可以访问[Gitee镜像](https://gitee.com/apolloconfig/apollo),不定期同步 # Screenshots -![配置界面](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-home-screenshot.jpg) +![配置界面](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-home-screenshot.jpg) # Features * **统一管理不同环境、不同集群的配置** @@ -83,8 +84,8 @@ Java客户端不依赖任何框架,能够运行于所有Java运行时环境, # Development - [Apollo开发指南](zh/development/apollo-development-guide.md) - Code Styles - - [Eclipse Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml) - - [Intellij Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml) + - [Eclipse Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml) + - [Intellij Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml) - [Portal实现用户登录功能](zh/development/portal-how-to-implement-user-login-function.md) - [Portal接入邮件服务](zh/development/portal-how-to-enable-email-service.md) - [Portal启用webhook通知](zh/development/portal-how-to-enable-webhook-notification.md) @@ -96,7 +97,7 @@ Java客户端不依赖任何框架,能够运行于所有Java运行时环境, - [分布式部署指南](zh/deployment/distributed-deployment-guide.md) # Release Notes - * [版本发布历史](https://github.com/ctripcorp/apollo/releases) + * [版本发布历史](https://github.com/apolloconfig/apollo/releases) # FAQ * [常见问题回答](zh/faq/faq.md) @@ -123,19 +124,19 @@ Java客户端不依赖任何框架,能够运行于所有Java运行时环境, - tech-support-qq-2 - tech-support-qq-5 - tech-support-qq-4 - tech-support-qq-3 - tech-support-qq-1 + tech-support-qq-2 + tech-support-qq-5 + tech-support-qq-4 + tech-support-qq-3 + tech-support-qq-1 # 社区 * [团队](zh/community/team) - * [社区治理](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md) - * [贡献指南](https://github.com/ctripcorp/apollo/blob/master/CONTRIBUTING.md) + * [社区治理](https://github.com/apolloconfig/apollo/blob/master/GOVERNANCE.md) + * [贡献指南](https://github.com/apolloconfig/apollo/blob/master/CONTRIBUTING.md) # License -The project is licensed under the [Apache 2 license](https://github.com/ctripcorp/apollo/blob/master/LICENSE). +The project is licensed under the [Apache 2 license](https://github.com/apolloconfig/apollo/blob/master/LICENSE). diff --git a/docs/zh/_navbar.md b/docs/zh/_navbar.md index 46ce2454743..a103513a7b5 100644 --- a/docs/zh/_navbar.md +++ b/docs/zh/_navbar.md @@ -1,7 +1,7 @@ - 社区 - [团队](zh/community/team.md) - - [社区治理](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md) - - [贡献指南](https://github.com/ctripcorp/apollo/blob/master/CONTRIBUTING.md) + - [社区治理](zh/governance.md) + - [贡献指南](zh/contributing.md) - [致谢](zh/community/thank-you.md) - Translations diff --git a/docs/zh/_sidebar.md b/docs/zh/_sidebar.md index bc05f43bb2e..83b4af0f741 100644 --- a/docs/zh/_sidebar.md +++ b/docs/zh/_sidebar.md @@ -15,8 +15,8 @@ - 开发文档 - [Apollo开发指南](zh/development/apollo-development-guide.md) - Code Styles - - [Eclipse Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml) - - [Intellij Code Style](https://github.com/ctripcorp/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml) + - [Eclipse Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/eclipse-java-google-style.xml) + - [Intellij Code Style](https://github.com/apolloconfig/apollo/blob/master/apollo-buildtools/style/intellij-java-google-style.xml) - [Portal实现用户登录功能](zh/development/portal-how-to-implement-user-login-function.md) - [Portal接入邮件服务](zh/development/portal-how-to-enable-email-service.md) - [Portal 共享 session](zh/development/portal-how-to-enable-session-store.md) @@ -39,12 +39,12 @@ - [部署&开发遇到的常见问题](zh/faq/common-issues-in-deployment-and-development-phase.md) - 其它 - - [版本历史](https://github.com/ctripcorp/apollo/releases) + - [版本历史](https://github.com/apolloconfig/apollo/releases) - [Apollo性能测试报告](zh/misc/apollo-benchmark.md) - 社区 - [团队](zh/community/team.md) - - [社区治理](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md) - - [贡献指南](https://github.com/ctripcorp/apollo/blob/master/CONTRIBUTING.md) + - [社区治理](zh/governance.md) + - [贡献指南](zh/contributing.md) - [致谢](zh/community/thank-you.md) diff --git a/docs/zh/community/team.md b/docs/zh/community/team.md index 8c9e1eab334..3cc55184f5a 100644 --- a/docs/zh/community/team.md +++ b/docs/zh/community/team.md @@ -2,7 +2,7 @@ Apollo 团队由 Member 和 Contributor 组成。Member 可以直接访问 Apollo 项目的源代码并基于代码库积极演进。Contributor 通过向 Member 提交补丁和建议来改善项目,项目的贡献者数量是没有限制的。无论是进行小规模的清理,提交新的功能或其它形式的贡献,都将受到极大的赞赏。 -有关社区治理模型的更多信息,请参考[GOVERNANCE.md](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md)。 +有关社区治理模型的更多信息,请参考[GOVERNANCE.md](https://github.com/apolloconfig/apollo/blob/master/GOVERNANCE.md)。 ## Member @@ -10,7 +10,7 @@ Member 包括 PMC 成员和 Committer,该列表按字母顺序排列。 ### Project Management Committee(PMC) -| Github ID | Name | Organization | +| GitHub ID | Name | Organization | | ---------- | ---------- | ------------ | | JaredTan95 | Jared Tan | DaoCloud | | kezhenxu94 | Zhenxu Ke | Tetrate | @@ -18,7 +18,7 @@ Member 包括 PMC 成员和 Committer,该列表按字母顺序排列。 | zouyx | Joe Zou | Shein | ### Committer -| Github ID | Name | Organization | +| GitHub ID | Name | Organization | | ----------- | ------------- | ------------ | | Anilople | Xiaoquan Wang | Some Bank | | Accelerater | Zhuohao Li | Daocloud | @@ -32,7 +32,7 @@ Member 包括 PMC 成员和 Committer,该列表按字母顺序排列。 ### Apollo 主仓库 - + ### apollo.net @@ -40,4 +40,4 @@ Member 包括 PMC 成员和 Committer,该列表按字母顺序排列。 ## **如何成为提交者** -请参考 [How to become a Committer](https://github.com/ctripcorp/apollo/blob/master/GOVERNANCE.md#how-to-become-a-committer). +请参考 [How to become a Committer](https://github.com/apolloconfig/apollo/blob/master/GOVERNANCE.md#how-to-become-a-committer). diff --git a/docs/zh/deployment/deployment-architecture.md b/docs/zh/deployment/deployment-architecture.md index 1bc3cca5f3d..13f39553e0f 100644 --- a/docs/zh/deployment/deployment-architecture.md +++ b/docs/zh/deployment/deployment-architecture.md @@ -910,7 +910,7 @@ ConfigDB和PortalDB在图中没有放入idc1或者idc2,需要自行选用合 ## 4.1 ctrip 以ctrip为例,我们的部署策略如下: -![Deployment](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-deployment.png) +![Deployment](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-deployment.png) * Portal部署在生产环境的机房,通过它来直接管理FAT、UAT、PRO等环境的配置 * Meta Server、Config Service和Admin Service在每个环境都单独部署,使用独立的数据库 @@ -921,4 +921,4 @@ ConfigDB和PortalDB在图中没有放入idc1或者idc2,需要自行选用合 [@lyliyongblue](https://github.com/lyliyongblue) 贡献的样例部署图(建议右键新窗口打开看大图): -![Deployment](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/lyliyongblue-apollo-deployment.png) +![Deployment](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/lyliyongblue-apollo-deployment.png) diff --git a/docs/zh/deployment/distributed-deployment-guide.md b/docs/zh/deployment/distributed-deployment-guide.md index c7f12c157d0..7e6a52a80a6 100644 --- a/docs/zh/deployment/distributed-deployment-guide.md +++ b/docs/zh/deployment/distributed-deployment-guide.md @@ -44,11 +44,11 @@ SHOW VARIABLES WHERE Variable_name = 'version'; |---------------|--------| | version | 5.7.11 | -> 注1:MySQL版本可以降级到5.5,详见[mysql 依赖降级讨论](https://github.com/ctripcorp/apollo/issues/481)。 +> 注1:MySQL版本可以降级到5.5,详见[mysql 依赖降级讨论](https://github.com/apolloconfig/apollo/issues/481)。 -> 注2:如果希望使用Oracle的话,可以参考[vanpersl](https://github.com/vanpersl)在Apollo 0.8.0基础上开发的[Oracle适配代码](https://github.com/ctripcorp/apollo/compare/v0.8.0...vanpersl:db-oracle),Oracle版本为10.2.0.1.0。 +> 注2:如果希望使用Oracle的话,可以参考[vanpersl](https://github.com/vanpersl)在Apollo 0.8.0基础上开发的[Oracle适配代码](https://github.com/apolloconfig/apollo/compare/v0.8.0...vanpersl:db-oracle),Oracle版本为10.2.0.1.0。 -> 注3:如果希望使用Postgres的话,可以参考[oaksharks](https://github.com/oaksharks)在Apollo 0.9.1基础上开发的[Pg适配代码](https://github.com/oaksharks/apollo/compare/ac10768ee2e11c488523ca0e845984f6f71499ac...oaksharks:pg),Postgres的版本为9.3.20,也可以参考[xiao0yy](https://github.com/xiao0yy)在Apollo 0.10.2基础上开发的[Pg适配代码](https://github.com/ctripcorp/apollo/issues/1293),Postgres的版本为9.5。 +> 注3:如果希望使用Postgres的话,可以参考[oaksharks](https://github.com/oaksharks)在Apollo 0.9.1基础上开发的[Pg适配代码](https://github.com/oaksharks/apollo/compare/ac10768ee2e11c488523ca0e845984f6f71499ac...oaksharks:pg),Postgres的版本为9.3.20,也可以参考[xiao0yy](https://github.com/xiao0yy)在Apollo 0.10.2基础上开发的[Pg适配代码](https://github.com/apolloconfig/apollo/issues/1293),Postgres的版本为9.5。 ## 1.3 环境 @@ -215,7 +215,7 @@ Apollo服务端共需要两个数据库:`ApolloPortalDB`和`ApolloConfigDB`, #### 2.1.1.1 手动导入SQL创建 -通过各种MySQL客户端导入[apolloportaldb.sql](https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloportaldb.sql)即可。 +通过各种MySQL客户端导入[apolloportaldb.sql](https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloportaldb.sql)即可。 以MySQL原生客户端为例: ```sql @@ -226,7 +226,7 @@ source /your_local_path/scripts/sql/apolloportaldb.sql > 需要1.3.0及以上版本 -1. 根据实际情况修改[flyway-portaldb.properties](https://github.com/ctripcorp/apollo/blob/master/scripts/flyway/flyway-portaldb.properties)中的`flyway.user`、`flyway.password`和`flyway.url`配置 +1. 根据实际情况修改[flyway-portaldb.properties](https://github.com/apolloconfig/apollo/blob/master/scripts/flyway/flyway-portaldb.properties)中的`flyway.user`、`flyway.password`和`flyway.url`配置 2. 在apollo项目根目录下执行`mvn -N -Pportaldb flyway:migrate` #### 2.1.1.3 验证 @@ -248,7 +248,7 @@ select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limi #### 2.1.2.1 手动导入SQL -通过各种MySQL客户端导入[apolloconfigdb.sql](https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloconfigdb.sql)即可。 +通过各种MySQL客户端导入[apolloconfigdb.sql](https://github.com/apolloconfig/apollo/blob/master/scripts/sql/apolloconfigdb.sql)即可。 以MySQL原生客户端为例: ```sql @@ -259,7 +259,7 @@ source /your_local_path/scripts/sql/apolloconfigdb.sql > 需要1.3.0及以上版本 -1. 根据实际情况修改[flyway-configdb.properties](https://github.com/ctripcorp/apollo/blob/master/scripts/flyway/flyway-configdb.properties)中的`flyway.user`、`flyway.password`和`flyway.url`配置 +1. 根据实际情况修改[flyway-configdb.properties](https://github.com/apolloconfig/apollo/blob/master/scripts/flyway/flyway-configdb.properties)中的`flyway.user`、`flyway.password`和`flyway.url`配置 2. 在apollo项目根目录下执行`mvn -N -Pconfigdb flyway:migrate` #### 2.1.2.3 验证 @@ -310,17 +310,17 @@ Apollo自身的一些配置是放在数据库里面的,所以需要针对实 可以通过两种方式获取安装包: 1. 直接下载安装包 - * 从[GitHub Release](https://github.com/ctripcorp/apollo/releases)页面下载预先打好的安装包 + * 从[GitHub Release](https://github.com/apolloconfig/apollo/releases)页面下载预先打好的安装包 * 如果对Apollo的代码没有定制需求,建议使用这种方式,可以省去本地打包的过程 2. 通过源码构建 - * 从[GitHub Release](https://github.com/ctripcorp/apollo/releases)页面下载Source code包或直接clone[源码](https://github.com/ctripcorp/apollo)后在本地构建 + * 从[GitHub Release](https://github.com/apolloconfig/apollo/releases)页面下载Source code包或直接clone[源码](https://github.com/ctripcorp/apollo)后在本地构建 * 如果需要对Apollo的做定制开发,需要使用这种方式 #### 2.2.1.1 直接下载安装包 ##### 2.2.1.1.1 获取apollo-configservice、apollo-adminservice、apollo-portal安装包 -从[GitHub Release](https://github.com/ctripcorp/apollo/releases)页面下载最新版本的`apollo-configservice-x.x.x-github.zip`、`apollo-adminservice-x.x.x-github.zip`和`apollo-portal-x.x.x-github.zip`即可。 +从[GitHub Release](https://github.com/apolloconfig/apollo/releases)页面下载最新版本的`apollo-configservice-x.x.x-github.zip`、`apollo-adminservice-x.x.x-github.zip`和`apollo-portal-x.x.x-github.zip`即可。 ##### 2.2.1.1.2 配置数据库连接信息 @@ -397,12 +397,12 @@ pro.meta=http://apollo.xxx.com >注1: 为了实现meta service的高可用,推荐通过SLB(Software Load Balancer)做动态负载均衡 ->注2: meta service地址也可以填入IP,0.11.0版本之前只支持填入一个IP。从0.11.0版本开始支持填入以逗号分隔的多个地址([PR #1214](https://github.com/ctripcorp/apollo/pull/1214)),如`http://1.1.1.1:8080,http://2.2.2.2:8080`,不过生产环境还是建议使用域名(走slb),因为机器扩容、缩容等都可能导致IP列表的变化。 +>注2: meta service地址也可以填入IP,0.11.0版本之前只支持填入一个IP。从0.11.0版本开始支持填入以逗号分隔的多个地址([PR #1214](https://github.com/apolloconfig/apollo/pull/1214)),如`http://1.1.1.1:8080,http://2.2.2.2:8080`,不过生产环境还是建议使用域名(走slb),因为机器扩容、缩容等都可能导致IP列表的变化。 #### 2.2.1.2 通过源码构建 ##### 2.2.1.2.1 配置数据库连接信息 -Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑[scripts/build.sh](https://github.com/ctripcorp/apollo/blob/master/scripts/build.sh),修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。 +Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑[scripts/build.sh](https://github.com/apolloconfig/apollo/blob/master/scripts/build.sh),修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。 > 注意:填入的用户需要具备对ApolloPortalDB和ApolloConfigDB数据的读写权限。 @@ -420,14 +420,14 @@ apollo_portal_db_password=密码(如果没有密码,留空即可) > 注1:由于ApolloConfigDB在每个环境都有部署,所以对不同的环境config-service和admin-service需要使用不同的数据库参数打不同的包,portal只需要打一次包即可 -> 注2:如果不想config-service和admin-service每个环境打一个包的话,也可以通过运行时传入数据库连接串信息实现,具体可以参考 [Issue 869](https://github.com/ctripcorp/apollo/issues/869) +> 注2:如果不想config-service和admin-service每个环境打一个包的话,也可以通过运行时传入数据库连接串信息实现,具体可以参考 [Issue 869](https://github.com/apolloconfig/apollo/issues/869) > 注3:每个环境都需要独立部署一套config-service、admin-service和ApolloConfigDB ##### 2.2.1.2.2 配置各环境meta service地址 Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以需要在打包时提供这些信息。 -假设DEV的apollo-configservice未绑定域名,地址是1.1.1.1:8080,FAT的apollo-configservice绑定了域名apollo.fat.xxx.com,UAT的apollo-configservice绑定了域名apollo.uat.xxx.com,PRO的apollo-configservice绑定了域名apollo.xxx.com,那么编辑[scripts/build.sh](https://github.com/ctripcorp/apollo/blob/master/scripts/build.sh),如下修改各环境meta service服务地址,格式为`${env}_meta=http://${config-service-url:port}`,如果某个环境不需要,也可以直接删除对应的配置项: +假设DEV的apollo-configservice未绑定域名,地址是1.1.1.1:8080,FAT的apollo-configservice绑定了域名apollo.fat.xxx.com,UAT的apollo-configservice绑定了域名apollo.uat.xxx.com,PRO的apollo-configservice绑定了域名apollo.xxx.com,那么编辑[scripts/build.sh](https://github.com/apolloconfig/apollo/blob/master/scripts/build.sh),如下修改各环境meta service服务地址,格式为`${env}_meta=http://${config-service-url:port}`,如果某个环境不需要,也可以直接删除对应的配置项: ```sh dev_meta=http://1.1.1.1:8080 @@ -449,7 +449,7 @@ META_SERVERS_OPTS="-Ddev_meta=$dev_meta -Dfat_meta=$fat_meta -Duat_meta=$uat_met >注1: 为了实现meta service的高可用,推荐通过SLB(Software Load Balancer)做动态负载均衡 ->注2: meta service地址也可以填入IP,0.11.0版本之前只支持填入一个IP。从0.11.0版本开始支持填入以逗号分隔的多个地址([PR #1214](https://github.com/ctripcorp/apollo/pull/1214)),如`http://1.1.1.1:8080,http://2.2.2.2:8080`,不过生产环境还是建议使用域名(走slb),因为机器扩容、缩容等都可能导致IP列表的变化。 +>注2: meta service地址也可以填入IP,0.11.0版本之前只支持填入一个IP。从0.11.0版本开始支持填入以逗号分隔的多个地址([PR #1214](https://github.com/apolloconfig/apollo/pull/1214)),如`http://1.1.1.1:8080,http://2.2.2.2:8080`,不过生产环境还是建议使用域名(走slb),因为机器扩容、缩容等都可能导致IP列表的变化。 ##### 2.2.1.2.3 执行编译、打包 做完上述配置后,就可以执行编译和打包了。 @@ -530,7 +530,7 @@ export JAVA_OPTS="-server -Xms6144m -Xmx6144m -Xss256k -XX:MetaspaceSize=128m -X > 注4:如果ApolloConfigDB.ServerConfig的eureka.service.url只配了当前正在启动的机器的话,在启动apollo-configservice的过程中会在日志中输出eureka注册失败的信息,如`com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused`。需要注意的是,这个是预期的情况,因为apollo-configservice需要向Meta Server(它自己)注册服务,但是因为在启动过程中,自己还没起来,所以会报这个错。后面会进行重试的动作,所以等自己服务起来后就会注册正常了。 -> 注5:如果你看到了这里,相信你一定是一个细心阅读文档的人,而且离成功就差一点点了,继续加油,应该很快就能完成Apollo的分布式部署了!不过你是否有感觉Apollo的分布式部署步骤有点繁琐?是否有啥建议想要和作者说?如果答案是肯定的话,请移步 [#1424](https://github.com/ctripcorp/apollo/issues/1424),期待你的建议! +> 注5:如果你看到了这里,相信你一定是一个细心阅读文档的人,而且离成功就差一点点了,继续加油,应该很快就能完成Apollo的分布式部署了!不过你是否有感觉Apollo的分布式部署步骤有点繁琐?是否有啥建议想要和作者说?如果答案是肯定的话,请移步 [#1424](https://github.com/apolloconfig/apollo/issues/1424),期待你的建议! #### 2.2.2.2 部署apollo-adminservice 将对应环境的`apollo-adminservice-x.x.x-github.zip`上传到服务器上,解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh. @@ -651,9 +651,9 @@ docker run -p 8070:8070 \ Apollo项目已经自带了Docker file,可以参照[2.2.1 获取安装包](#_221-获取安装包)配置好安装包后通过下面的文件来打Docker镜像: -1. [apollo-configservice](https://github.com/ctripcorp/apollo/blob/master/apollo-configservice/src/main/docker/Dockerfile) -2. [apollo-adminservice](https://github.com/ctripcorp/apollo/blob/master/apollo-adminservice/src/main/docker/Dockerfile) -3. [apollo-portal](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/docker/Dockerfile) +1. [apollo-configservice](https://github.com/apolloconfig/apollo/blob/master/apollo-configservice/src/main/docker/Dockerfile) +2. [apollo-adminservice](https://github.com/apolloconfig/apollo/blob/master/apollo-adminservice/src/main/docker/Dockerfile) +3. [apollo-portal](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/docker/Dockerfile) 也可以参考Apollo用户[@kulovecc](https://github.com/kulovecc)的[docker-apollo](https://github.com/kulovecc/docker-apollo)项目和[@idoop](https://github.com/idoop)的[docker-apollo](https://github.com/idoop/docker-apollo)项目。 @@ -662,7 +662,7 @@ Apollo项目已经自带了Docker file,可以参照[2.2.1 获取安装包](#_2 Apollo 1.7.0版本增加了基于Kubernetes原生服务发现的部署模式,由于不再使用内置的Eureka,所以在整体部署上有很大简化,同时也提供了Helm Charts,便于部署。 -> 更多设计说明可以参考[#3054](https://github.com/ctripcorp/apollo/issues/3054)。 +> 更多设计说明可以参考[#3054](https://github.com/apolloconfig/apollo/issues/3054)。 #### 2.4.1.1 环境要求 @@ -1096,7 +1096,7 @@ config: ### 2.4.2 基于内置的Eureka服务发现 -感谢[AiotCEO](https://github.com/AiotCEO)提供了k8s的部署支持,使用说明可以参考[apollo-on-kubernetes](https://github.com/ctripcorp/apollo/blob/master/scripts/apollo-on-kubernetes/README.md)。 +感谢[AiotCEO](https://github.com/AiotCEO)提供了k8s的部署支持,使用说明可以参考[apollo-on-kubernetes](https://github.com/apolloconfig/apollo/blob/master/scripts/apollo-on-kubernetes/README.md)。 感谢[qct](https://github.com/qct)提供的Helm Chart部署支持,使用说明可以参考[qct/apollo-helm](https://github.com/qct/apollo-helm)。 @@ -1181,7 +1181,7 @@ portal上“帮助”链接的地址,默认是Apollo github的wiki首页,可 对设定了只对项目成员显示配置信息的环境,只有该项目的管理员或拥有该namespace的编辑或发布权限的用户才能看到该私有namespace的配置信息和发布历史。公共namespace始终对所有用户可见。 -> 从1.1.0版本开始支持,详见[PR 1531](https://github.com/ctripcorp/apollo/pull/1531) +> 从1.1.0版本开始支持,详见[PR 1531](https://github.com/apolloconfig/apollo/pull/1531) ### 3.1.10 role.create-application.enabled - 是否开启创建项目权限控制 diff --git a/docs/zh/deployment/quick-start-docker.md b/docs/zh/deployment/quick-start-docker.md index eec4d2e90ef..0f32fff18ef 100644 --- a/docs/zh/deployment/quick-start-docker.md +++ b/docs/zh/deployment/quick-start-docker.md @@ -16,7 +16,7 @@ docker -v ### 1.2 下载Docker Quick Start配置文件 -确保[docker-quick-start](https://github.com/ctripcorp/apollo/tree/master/scripts/docker-quick-start)文件夹已经在本地存在,如果本地已经clone过Apollo的代码,则可以跳过此步骤。 +确保[docker-quick-start](https://github.com/apolloconfig/apollo/tree/master/scripts/docker-quick-start)文件夹已经在本地存在,如果本地已经clone过Apollo的代码,则可以跳过此步骤。 ## 二、启动Apollo配置中心 diff --git a/docs/zh/deployment/quick-start.md b/docs/zh/deployment/quick-start.md index b66ca18e4d1..610e1d20cfe 100644 --- a/docs/zh/deployment/quick-start.md +++ b/docs/zh/deployment/quick-start.md @@ -48,7 +48,7 @@ SHOW VARIABLES WHERE Variable_name = 'version'; 安装包共50M,如果访问github网速不给力的话,可以从百度网盘下载。 -1. 从Github下载 +1. 从GitHub下载 * checkout或下载[apollo-build-scripts项目](https://github.com/nobodyiam/apollo-build-scripts) * **由于Quick Start项目比较大,所以放在了另外的repository,请注意项目地址** * https://github.com/nobodyiam/apollo-build-scripts @@ -176,15 +176,15 @@ Quick Start只是用来帮助大家快速体验Apollo项目,具体实际使用 2. 输入用户名apollo,密码admin后登录 -![首页](https://raw.githubusercontent.com/nobodyiam/apollo-build-scripts/master/images/apollo-sample-home.png) +![首页](https://cdn.jsdelivr.net/gh/apolloconfig/apollo-build-scripts@master/images/apollo-sample-home.png) 3. 点击SampleApp进入配置界面,可以看到当前有一个配置timeout=100 -![配置界面](https://raw.githubusercontent.com/nobodyiam/apollo-build-scripts/master/images/sample-app-config.png) +![配置界面](https://cdn.jsdelivr.net/gh/apolloconfig/apollo-build-scripts@master/images/sample-app-config.png) > 如果提示`系统出错,请重试或联系系统负责人`,请稍后几秒钟重试一下,因为通过Eureka注册的服务有一个刷新的延时。 ### 4.1.2 运行客户端程序 -我们准备了一个简单的[Demo客户端](https://github.com/ctripcorp/apollo/blob/master/apollo-demo/src/main/java/com/ctrip/framework/apollo/demo/api/SimpleApolloConfigDemo.java)来演示从Apollo配置中心获取配置。 +我们准备了一个简单的[Demo客户端](https://github.com/apolloconfig/apollo/blob/master/apollo-demo/src/main/java/com/ctrip/framework/apollo/demo/api/SimpleApolloConfigDemo.java)来演示从Apollo配置中心获取配置。 程序很简单,就是用户输入一个key的名字,程序会输出这个key对应的值。 @@ -213,15 +213,15 @@ Apollo Config Demo. Please input key to get the value. Input quit to exit. ### 4.1.3 修改配置并发布 1. 在配置界面点击timeout这一项的编辑按钮 -![编辑配置](https://raw.githubusercontent.com/nobodyiam/apollo-build-scripts/master/images/sample-app-modify-config.png) +![编辑配置](https://cdn.jsdelivr.net/gh/apolloconfig/apollo-build-scripts@master/images/sample-app-modify-config.png) 2. 在弹出框中把值改成200并提交 -![配置修改](https://raw.githubusercontent.com/nobodyiam/apollo-build-scripts/master/images/sample-app-submit-config.png) +![配置修改](https://cdn.jsdelivr.net/gh/apolloconfig/apollo-build-scripts@master/images/sample-app-submit-config.png) 3. 点击发布按钮,并填写发布信息 -![发布](https://raw.githubusercontent.com/nobodyiam/apollo-build-scripts/master/images/sample-app-release-config.png) +![发布](https://cdn.jsdelivr.net/gh/apolloconfig/apollo-build-scripts@master/images/sample-app-release-config.png) -![发布信息](https://raw.githubusercontent.com/nobodyiam/apollo-build-scripts/master/images/sample-app-release-detail.png) +![发布信息](https://cdn.jsdelivr.net/gh/apolloconfig/apollo-build-scripts@master/images/sample-app-release-detail.png) ### 4.1.4 客户端查看修改后的值 如果客户端一直在运行的话,在配置发布后就会监听到配置变化,并输出修改的配置信息: diff --git a/docs/zh/design/apollo-core-concept-namespace.md b/docs/zh/design/apollo-core-concept-namespace.md index baaa9c38279..63e3a3d0fbd 100644 --- a/docs/zh/design/apollo-core-concept-namespace.md +++ b/docs/zh/design/apollo-core-concept-namespace.md @@ -94,7 +94,7 @@ k2 = v2 * 应用B有一个私有类型的Namespace:application,以及一个公共类型的Namespace:NS-Public。 * 应用C只有一个私有类型的Namespace:application -![Namespace例子](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/namespace-model-example.png) +![Namespace例子](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-model-example.png) ##### 5.4.1 应用A获取Apollo配置 ```java diff --git a/docs/zh/design/apollo-design.md b/docs/zh/design/apollo-design.md index a6e925b19ef..6adec45586d 100644 --- a/docs/zh/design/apollo-design.md +++ b/docs/zh/design/apollo-design.md @@ -9,12 +9,12 @@ 2. 配置中心通知Apollo客户端有配置更新 3. Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用 -![basic-architecture](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/basic-architecture.png) +![basic-architecture](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/basic-architecture.png) ## 1.2 架构模块 下图是Apollo架构模块的概览,详细说明可以参考[Apollo配置中心架构剖析](https://mp.weixin.qq.com/s/-hUaQPzfsl9Lm3IqQW3VDQ)。 -![overall-architecture](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/overall-architecture.png) +![overall-architecture](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/overall-architecture.png) 上图简要描述了Apollo的总体设计,我们可以从下往上看: @@ -168,7 +168,7 @@ sequenceDiagram ## 1.4 E-R Diagram ### 1.4.1 主体E-R Diagram -![apollo-erd](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-erd.png) +![apollo-erd](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-erd.png) * **App** * App信息 @@ -188,7 +188,7 @@ sequenceDiagram * 审计信息,记录用户在何时使用何种方式操作了哪个实体。 ### 1.4.2 权限相关E-R Diagram -![apollo-erd-role-permission](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-erd-role-permission.png) +![apollo-erd-role-permission](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-erd-role-permission.png) * **User** * Apollo portal用户 @@ -216,7 +216,7 @@ sequenceDiagram 在配置中心中,一个重要的功能就是配置发布后实时推送到客户端。下面我们简要看一下这块是怎么设计实现的。 -![release-message-notification-design](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/release-message-notification-design.png) +![release-message-notification-design](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/release-message-notification-design.png) 上图简要描述了配置发布的大致过程: @@ -235,14 +235,14 @@ Admin Service在配置发布后,需要通知所有的Config Service有配置 实现方式如下: -1. Admin Service在配置发布后会往ReleaseMessage表插入一条消息记录,消息内容就是配置发布的AppId+Cluster+Namespace,参见[DatabaseMessageSender](https://github.com/ctripcorp/apollo/blob/master/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/message/DatabaseMessageSender.java) -2. Config Service有一个线程会每秒扫描一次ReleaseMessage表,看看是否有新的消息记录,参见[ReleaseMessageScanner](https://github.com/ctripcorp/apollo/blob/master/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/message/ReleaseMessageScanner.java) -3. Config Service如果发现有新的消息记录,那么就会通知到所有的消息监听器([ReleaseMessageListener](https://github.com/ctripcorp/apollo/blob/master/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/message/ReleaseMessageListener.java)),如[NotificationControllerV2](https://github.com/ctripcorp/apollo/blob/master/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/controller/NotificationControllerV2.java),消息监听器的注册过程参见[ConfigServiceAutoConfiguration](https://github.com/ctripcorp/apollo/blob/master/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/ConfigServiceAutoConfiguration.java) +1. Admin Service在配置发布后会往ReleaseMessage表插入一条消息记录,消息内容就是配置发布的AppId+Cluster+Namespace,参见[DatabaseMessageSender](https://github.com/apolloconfig/apollo/blob/master/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/message/DatabaseMessageSender.java) +2. Config Service有一个线程会每秒扫描一次ReleaseMessage表,看看是否有新的消息记录,参见[ReleaseMessageScanner](https://github.com/apolloconfig/apollo/blob/master/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/message/ReleaseMessageScanner.java) +3. Config Service如果发现有新的消息记录,那么就会通知到所有的消息监听器([ReleaseMessageListener](https://github.com/apolloconfig/apollo/blob/master/apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/message/ReleaseMessageListener.java)),如[NotificationControllerV2](https://github.com/apolloconfig/apollo/blob/master/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/controller/NotificationControllerV2.java),消息监听器的注册过程参见[ConfigServiceAutoConfiguration](https://github.com/apolloconfig/apollo/blob/master/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/ConfigServiceAutoConfiguration.java) 4. NotificationControllerV2得到配置发布的AppId+Cluster+Namespace后,会通知对应的客户端 示意图如下: -release-message-design +release-message-design ### 2.1.2 Config Service通知客户端的实现方式 @@ -250,13 +250,13 @@ Admin Service在配置发布后,需要通知所有的Config Service有配置 实现方式如下: -1. 客户端会发起一个Http请求到Config Service的`notifications/v2`接口,也就是[NotificationControllerV2](https://github.com/ctripcorp/apollo/blob/master/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/controller/NotificationControllerV2.java),参见[RemoteConfigLongPollService](https://github.com/ctripcorp/apollo/blob/master/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigLongPollService.java) +1. 客户端会发起一个Http请求到Config Service的`notifications/v2`接口,也就是[NotificationControllerV2](https://github.com/apolloconfig/apollo/blob/master/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/controller/NotificationControllerV2.java),参见[RemoteConfigLongPollService](https://github.com/apolloconfig/apollo/blob/master/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigLongPollService.java) 2. NotificationControllerV2不会立即返回结果,而是通过[Spring DeferredResult](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html)把请求挂起 3. 如果在60秒内没有该客户端关心的配置发布,那么会返回Http状态码304给客户端 4. 如果有该客户端关心的配置发布,NotificationControllerV2会调用DeferredResult的[setResult](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html#setResult-T-)方法,传入有配置变化的namespace信息,同时该请求会立即返回。客户端从返回的结果中获取到配置变化的namespace后,会立即请求Config Service获取该namespace的最新配置。 # 三、客户端设计 -![client-architecture](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/client-architecture.png) +![client-architecture](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/client-architecture.png) 上图简要描述了Apollo客户端的实现原理: @@ -284,7 +284,7 @@ Spring从3.1版本开始增加了`ConfigurableEnvironment`和`PropertySource`: * 可以理解为很多个Key - Value的属性配置 在运行时的结构形如: -![Overview](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/environment.png) +![Overview](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/environment.png) 需要注意的是,PropertySource之间是有优先级顺序的,如果有一个Key在多个property source中都存在,那么在前面的property source优先。 @@ -296,9 +296,9 @@ Spring从3.1版本开始增加了`ConfigurableEnvironment`和`PropertySource`: 在理解了上述原理后,Apollo和Spring/Spring Boot集成的手段就呼之欲出了:在应用启动阶段,Apollo从远端获取配置,然后组装成PropertySource并插入到第一个即可,如下图所示: -![Overview](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/environment-remote-source.png) +![Overview](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/environment-remote-source.png) -相关代码可以参考[PropertySourcesProcessor](https://github.com/ctripcorp/apollo/blob/master/apollo-client/src/main/java/com/ctrip/framework/apollo/spring/config/PropertySourcesProcessor.java) +相关代码可以参考[PropertySourcesProcessor](https://github.com/apolloconfig/apollo/blob/master/apollo-client/src/main/java/com/ctrip/framework/apollo/spring/config/PropertySourcesProcessor.java) # 四、可用性考虑 @@ -375,7 +375,7 @@ Apollo客户端和服务端目前支持[CAT](https://github.com/dianping/cat)自 Apollo也提供了Tracer相关的SPI,可以方便地对接自己公司的监控系统。 -更多信息,可以参考[v0.4.0 Release Note](https://github.com/ctripcorp/apollo/releases/tag/v0.4.0) +更多信息,可以参考[v0.4.0 Release Note](https://github.com/apolloconfig/apollo/releases/tag/v0.4.0) ### 5.1.2 SkyWalking diff --git a/docs/zh/design/apollo-introduction.md b/docs/zh/design/apollo-introduction.md index 866488c19a1..c3a23f9d08b 100644 --- a/docs/zh/design/apollo-introduction.md +++ b/docs/zh/design/apollo-introduction.md @@ -100,11 +100,11 @@ Apollo支持4个维度管理Key-Value格式的配置: 2. 配置中心通知Apollo客户端有配置更新 3. Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用 -![basic-architecture](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/basic-architecture.png) +![basic-architecture](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/basic-architecture.png) ## 3.2 界面概览 -![apollo-home-screenshot](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-home-screenshot.jpg) +![apollo-home-screenshot](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-home-screenshot.jpg) 上图是Apollo配置中心中一个项目的配置首页 @@ -116,21 +116,21 @@ Apollo支持4个维度管理Key-Value格式的配置: 用户可以通过配置中心界面方便的添加/修改配置项,更多使用说明请参见[应用接入指南](zh/usage/apollo-user-guide) -![edit-item-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/edit-item-entry.png) +![edit-item-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/edit-item-entry.png) 输入配置信息: -![edit-item](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/edit-item.png) +![edit-item](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/edit-item.png) ## 3.4 发布配置 通过配置中心发布配置: -![publish-items](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/publish-items-entry.png) +![publish-items](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/publish-items-entry.png) 填写发布信息: -![publish-items](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/publish-items.png) +![publish-items](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/publish-items.png) ## 3.5 客户端获取配置(Java API样例) @@ -221,19 +221,19 @@ public class SomeBean { 新建Cluster只有项目的管理员才有权限,管理员可以在页面左侧看到“添加集群”按钮。 -![create-cluster](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-cluster.png) +![create-cluster](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-cluster.png) 点击后就进入到集群添加页面,一般情况下可以按照数据中心来划分集群,如SHAJQ、SHAOY等。 不过也支持自定义集群,比如可以为A机房的某一台机器和B机房的某一台机创建一个集群,使用一套配置。 -![create-cluster-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-cluster-detail.png) +![create-cluster-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-cluster-detail.png) ### 4.2.2 在Cluster中添加配置并发布 集群添加成功后,就可以为该集群添加配置了,首先需要按照下图所示切换到SHAJQ集群,之后配置添加流程和[3.3 添加/修改配置项](#_33-添加修改配置项)一样,这里就不再赘述了。 -![cluster-created](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/cluster-created.png) +![cluster-created](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/cluster-created.png) ### 4.2.3 指定应用实例所属的Cluster @@ -253,31 +253,31 @@ Apollo会默认使用应用实例所在的数据中心作为cluster,所以如 以hermes-producer为例,需要先新建一个namespace,新建namespace只有项目的管理员才有权限,管理员可以在页面左侧看到“添加Namespace”按钮。 -![create-namespace](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-namespace.png) +![create-namespace](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-namespace.png) 点击后就进入namespace添加页面,Apollo会把应用所属的部门作为namespace的前缀,如FX。 -![create-namespace-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-namespace-detail.png) +![create-namespace-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-namespace-detail.png) ### 4.3.2 关联到环境和集群 Namespace创建完,需要选择在哪些环境和集群下使用 -![link-namespace-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/link-namespace-detail.png) +![link-namespace-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/link-namespace-detail.png) ### 4.3.3 在Namespace中添加配置项 接下来在这个新建的namespace下添加配置项 -![add-item-in-new-namespace](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/add-item-in-new-namespace.png) +![add-item-in-new-namespace](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/add-item-in-new-namespace.png) 添加完成后就能在FX.Hermes.Producer的namespace中看到配置。 -![item-created-in-new-namespace](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/item-created-in-new-namespace.png) +![item-created-in-new-namespace](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/item-created-in-new-namespace.png) ### 4.3.4 发布namespace的配置 -![publish-items-in-new-namespace](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/publish-items-in-new-namespace.png) +![publish-items-in-new-namespace](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/publish-items-in-new-namespace.png) ### 4.3.5 客户端获取Namespace配置 @@ -352,7 +352,7 @@ Config config = ConfigService.getAppConfig(); 图示如下: -![application-config-precedence](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/application-config-precedence.png) +![application-config-precedence](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/application-config-precedence.png) 所以如果应用部署在A数据中心,但是用户没有在Apollo创建cluster,那么获取的配置就是默认cluster(default)的。 @@ -374,13 +374,13 @@ Config config = ConfigService.getConfig("FX.Hermes.Producer"); 图示如下: -![public-namespace-config-precedence](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/public-namespace-config-precedence.png) +![public-namespace-config-precedence](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/public-namespace-config-precedence.png) 通过这种方式,就实现了对框架类组件的配置管理,框架组件提供方提供配置的默认值,应用如果有特殊需求,可以自行覆盖。 ## 4.5 总体设计 -![overall-architecture](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/overall-architecture.png) +![overall-architecture](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/overall-architecture.png) 上图简要描述了Apollo的总体设计,我们可以从下往上看: @@ -407,7 +407,7 @@ Config config = ConfigService.getConfig("FX.Hermes.Producer"); ## 4.6 客户端设计 -![client-architecture](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/client-architecture.png) +![client-architecture](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/client-architecture.png) 上图简要描述了Apollo客户端的实现原理: @@ -455,6 +455,6 @@ Apollo从开发之初就是以开源模式开发的,所以也非常欢迎有 服务端开发使用的是Java,基于Spring Cloud和Spring Boot框架。客户端目前提供了Java和.Net两种实现。 -Github地址:https://github.com/ctripcorp/apollo +GitHub地址:https://github.com/ctripcorp/apollo 欢迎大家发起Pull Request! diff --git a/docs/zh/development/apollo-development-guide.md b/docs/zh/development/apollo-development-guide.md index 8d43d1153f5..290e5f6ae9d 100644 --- a/docs/zh/development/apollo-development-guide.md +++ b/docs/zh/development/apollo-development-guide.md @@ -24,10 +24,10 @@ Apollo本地开发需要以下组件: 下面以Intellij Community 2016.2版本为例来说明如何在本地启动`apollo-configservice`和`apollo-adminservice`。 -![ConfigAdminApplication-Overview](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/ConfigAdminApplication-Overview.png) +![ConfigAdminApplication-Overview](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/ConfigAdminApplication-Overview.png) ### 2.1.1 新建运行配置 -![NewConfiguration-Application](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/NewConfiguration-Application.png) +![NewConfiguration-Application](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/NewConfiguration-Application.png) ### 2.1.2 Main class配置 `com.ctrip.framework.apollo.assembly.ApolloApplication` @@ -37,7 +37,7 @@ Apollo本地开发需要以下组件: > `com.ctrip.framework.apollo.adminservice.AdminServiceApplication` ### 2.1.3 VM options配置 -![ConfigAdminApplication-VM-Options](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/ConfigAdminApplication-VM-Options.png) +![ConfigAdminApplication-VM-Options](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/ConfigAdminApplication-VM-Options.png) -Dapollo_profile=github -Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 @@ -56,11 +56,11 @@ Apollo本地开发需要以下组件: ### 2.1.5 运行 对新建的运行配置点击Run或Debug皆可。 -![ConfigAdminApplication-Run](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/ConfigAdminApplication-Run.png) +![ConfigAdminApplication-Run](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/ConfigAdminApplication-Run.png) 启动完后,打开[http://localhost:8080](http://localhost:8080)可以看到`apollo-configservice`和`apollo-adminservice`都已经启动完成并注册到Eureka。 -![ConfigAdminApplication-Eureka](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/ConfigAdminApplication-Eureka.png) +![ConfigAdminApplication-Eureka](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/ConfigAdminApplication-Eureka.png) > 注:除了在Eureka确认服务状态外,还可以通过健康检查接口确认服务健康状况: > @@ -81,16 +81,16 @@ Apollo本地开发需要以下组件: 下面以Intellij Community 2016.2版本为例来说明如何在本地启动`apollo-portal`。 -![PortalApplication-Overview](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/PortalApplication-Overview.png) +![PortalApplication-Overview](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/PortalApplication-Overview.png) ### 2.2.1 新建运行配置 -![NewConfiguration-Application](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/NewConfiguration-Application.png) +![NewConfiguration-Application](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/NewConfiguration-Application.png) ### 2.2.2 Main class配置 `com.ctrip.framework.apollo.portal.PortalApplication` ### 2.2.3 VM options配置 -![PortalApplication-VM-Options](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/PortalApplication-VM-Options.png) +![PortalApplication-VM-Options](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/PortalApplication-VM-Options.png) -Dapollo_profile=github,auth -Ddev_meta=http://localhost:8080/ @@ -114,11 +114,11 @@ Apollo本地开发需要以下组件: ### 2.2.4 运行 对新建的运行配置点击Run或Debug皆可。 -![PortalApplication-Run](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/PortalApplication-Run.png) +![PortalApplication-Run](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/PortalApplication-Run.png) 启动完后,打开[http://localhost:8070](http://localhost:8070)就可以看到Apollo配置中心界面了。 -![PortalApplication-Home](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/PortalApplication-Home.png) +![PortalApplication-Home](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/PortalApplication-Home.png) >注:如果启用了`auth` profile的话,默认的用户名是apollo,密码是admin @@ -135,7 +135,7 @@ Apollo本地开发需要以下组件: ### 2.3.1 配置项目AppId 在`2.2.5 Demo应用接入`中创建Demo项目时,系统会要求填入一个全局唯一的AppId,我们需要把这个AppId配置到`apollo-demo`项目的app.properties文件中:`apollo-demo/src/main/resources/META-INF/app.properties`。 -![apollo-demo-app-properties](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/apollo-demo-app-properties.png) +![apollo-demo-app-properties](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/apollo-demo-app-properties.png) 如我们自己的demo项目使用的AppId是100004458,那么文件内容就是: @@ -148,13 +148,13 @@ Apollo本地开发需要以下组件: > 更多配置AppId的方式可以参考[1.2.1 AppId](zh/usage/java-sdk-user-guide#_121-appid) ### 2.3.2 新建运行配置 -![NewConfiguration-Application](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/NewConfiguration-Application.png) +![NewConfiguration-Application](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/NewConfiguration-Application.png) ### 2.3.3 Main class配置 `com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo` ### 2.3.4 VM options配置 -![apollo-demo-vm-options](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/apollo-demo-vm-options.png) +![apollo-demo-vm-options](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/apollo-demo-vm-options.png) -Dapollo.meta=http://localhost:8080 @@ -164,12 +164,12 @@ Apollo本地开发需要以下组件: ### 2.3.5 概览 -![apollo-demo-overview](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/apollo-demo-overview.png) +![apollo-demo-overview](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/apollo-demo-overview.png) ### 2.3.6 运行 对新建的运行配置点击Run或Debug皆可。 -![apollo-demo-run](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/apollo-demo-run.png) +![apollo-demo-run](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/apollo-demo-run.png) 启动完后,忽略前面的调试信息,可以看到如下提示: @@ -195,7 +195,7 @@ Apollo本地开发需要以下组件: ### 2.4.1 配置项目AppId 在`2.2.5 Demo应用接入`中创建Demo项目时,系统会要求填入一个全局唯一的AppId,我们需要把这个AppId配置到`ApolloDemo`项目的APP.config文件中:`apollo.net\ApolloDemo\App.config`。 -![apollo-demo-app-config](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-net-app-config.png) +![apollo-demo-app-config](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-net-app-config.png) 如我们自己的demo项目使用的AppId是100004458,那么文件内容就是: ```xml @@ -209,7 +209,7 @@ Apollo本地开发需要以下组件: ### 2.4.2 配置服务地址 Apollo客户端针对不同的环境会从不同的服务器获取配置,所以我们需要在app.config或web.config配置服务器地址(Apollo.{ENV}.Meta)。假设DEV环境的配置服务(apollo-configservice)地址是11.22.33.44,那么我们就做如下配置: -![apollo-net-server-url-config](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-net-server-url-config.png) +![apollo-net-server-url-config](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-net-server-url-config.png) ### 2.4.3 运行 运行`ApolloConfigDemo.cs`即可。 @@ -230,7 +230,7 @@ Apollo客户端针对不同的环境会从不同的服务器获取配置,所 # 三、开发 ## 模块依赖图 -![模块依赖图](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/module-dependency.png) +![模块依赖图](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/module-dependency.png) ## 3.1 Portal 实现用户登录功能 diff --git a/docs/zh/development/apollo-release-guide.md b/docs/zh/development/apollo-release-guide.md index 592158266d9..5a7a4fa4833 100644 --- a/docs/zh/development/apollo-release-guide.md +++ b/docs/zh/development/apollo-release-guide.md @@ -1,19 +1,21 @@ # 1. 升级版本 + 在 Apollo 工程下全文替换版本号,例如 1.9.1-SNAPSHOT 升级到 1.9.1。替换过程中,一定要注意非版本号的地方替换。 + # 2. 撰写发布报告 -两个版本之间每一个 PR 都会记录在 [https://github.com/ctripcorp/apollo/blob/master/CHANGES.md](https://github.com/ctripcorp/apollo/blob/master/CHANGES.md) 里,所以撰写发布报告只需要从 CHANGES.md 里提取即可。发布报告参考:[https://github.com/ctripcorp/apollo/releases/tag/v1.8.0](https://github.com/ctripcorp/apollo/releases/tag/v1.8.0) -​ + +两个版本之间每一个 PR 都会记录在 [https://github.com/apolloconfig/apollo/blob/master/CHANGES.md](https://github.com/apolloconfig/apollo/blob/master/CHANGES.md) 里,所以撰写发布报告只需要从 CHANGES.md 里提取即可。发布报告参考:[https://github.com/apolloconfig/apollo/releases/tag/v1.8.0](https://github.com/apolloconfig/apollo/releases/tag/v1.8.0) # 3. 版本验证 + 版本验证主要包含三方面的验证: 1. 新引入的代码变更验证,例如新功能、bugfix 1. Apollo 核心主流程验证,包括:配置发布,动态推送,灰度推送等 1. 升级过程验证,包括:经典部署模式、docker 模式、k8s 模式 - - # 4. 版本发布 + ## 4.1 打 tag 1. 拉取 master 最新代码 @@ -22,9 +24,13 @@ 1. git tag ${new-version} 3. push tag 1. git push origin tag ${new-version} + ## 4.2 打包 + ### 4.2.1 前置检查 + 在打包之前检查本地环境, mvn -v 确保 java 版本是 1.8, 例如以下输出: + > mvn -v > Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)Maven home: /usr/local/Cellar/maven/3.8.1/libexec > Java version: 1.8.0_301, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/jre @@ -32,77 +38,97 @@ > OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac" ### 4.2.2 打包 + 在 ${apollo_home}/scripts/ 目录下执行: + > ./build.sh 如果报以下错误: + > zsh: ./build.sh: bad interpreter: /bin/sh^M: no such file or directory 则需要执行以下命令转换成 unix + > brew install dos2unix > dos2unix build.sh ### 4.2.3 计算构建包的 checksum 计算 configservice checksum + >在 ${apollo_home}/apollo-configservice/target/ 目录下执行: > >shasum apollo-configservice-${new-version}-github.zip > apollo-configservice-${new-version}-github.zip.sha1 计算 adminservice checksum + >在 ${apollo_home}/apollo-adminservice/target/ 目录下执行: > >shasum apollo-adminservice-${new-version}-github.zip > apollo-adminservice-${new-version}-github.zip.sha1 计算 portal checksum + >在 ${apollo_home}/apollo-portal/target/ 目录下执行: > > shasum apollo-portal-${new-version}-github.zip > apollo-portal-${new-version}-github.zip.sha1 ## 4.3 创建 pre-release + github 创建 pre-release -![image.png](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/create-release.png) + +![image.png](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/create-release.png) 填写 Release Note & 上传包 -![image.png](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/fill-release-form.png) + +![image.png](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/fill-release-form.png) ## 4.4 预发布 Apollo-Client Jar 包 + 通过 github workflow 来发布。 -[https://github.com/ctripcorp/apollo/actions/workflows/release.yml](https://github.com/ctripcorp/apollo/actions/workflows/release.yml) -![image.png](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/publish-sdk.png) +[https://github.com/apolloconfig/apollo/actions/workflows/release.yml](https://github.com/apolloconfig/apollo/actions/workflows/release.yml) + +![image.png](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/publish-sdk.png) > 注意:如果发布的是 SNAPSHOT 版本,使用默认值 snapshots 即可,如果发布的是正式版本(不带 SNAPSHOT),则需要修改为 releases 才可以正常发布。 + ## 4.5 版本发布 PMC 投票 投票是为了让各个 PMC 成员协作验证版本的内容,防止发布有问题的版本。 -投票具体的形式为在 Discussions 发起一个帖子,可参考:[https://github.com/ctripcorp/apollo/discussions/3899](https://github.com/ctripcorp/apollo/discussions/3899) -## 4.6 正式发布 Apollo-Client Jar 到仓库 +投票具体的形式为在 Discussions 发起一个帖子,可参考:[https://github.com/apolloconfig/apollo/discussions/3899](https://github.com/apolloconfig/apollo/discussions/3899) +## 4.6 正式发布 Apollo-Client Jar 到仓库 ## 4.7 发布 Docker 镜像 + ### 4.7.1 构建镜像 + 在 4.2 步骤打完包的前提下,在 apollo 根目录下执行 + > mvn docker:build -pl apollo-configservice,apollo-adminservice,apollo-portal 注意:如果出现报错,可能需要重启一下本地 docker + ### 4.7.2 Push 镜像到仓库 + 仓库地址:[https://hub.docker.com/u/apolloconfig](https://hub.docker.com/u/apolloconfig) 依次 Push configservice/adminservice/portal,切记 latest 版本也要 push。 -![image.png](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/local-development/push-images-to-hub.png) -​ +![image.png](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/local-development/push-images-to-hub.png) ## 4.8 更新 helm chart + ### 4.8.1 更新 chart 内容 1. cd ${apollo_home}/scripts/helm -1. helm package apollo-portal && helm package apollo-service -1. mv *.tgz ${apollo_home}/apollo/docs/charts/ -1. cd ${apollo_home}/apollo/docs/charts/ -1. helm repo index . +2. helm package apollo-portal && helm package apollo-service +3. mv *.tgz ${apollo_home}/apollo/docs/charts/ +4. cd ${apollo_home}/apollo/docs/charts/ +5. helm repo index . + ### 4.8.2 分支合并到 master + 创建一个 pull request,把上述产物合并到 master 分支。 -# 5. 发布公告 -参考:[https://github.com/ctripcorp/apollo/discussions/3740](https://github.com/ctripcorp/apollo/discussions/3740) +# 5. 发布公告 +参考:[https://github.com/apolloconfig/apollo/discussions/3740](https://github.com/apolloconfig/apollo/discussions/3740) diff --git a/docs/zh/development/portal-how-to-enable-email-service.md b/docs/zh/development/portal-how-to-enable-email-service.md index 6260fdd6bcd..fe98b74be48 100644 --- a/docs/zh/development/portal-how-to-enable-email-service.md +++ b/docs/zh/development/portal-how-to-enable-email-service.md @@ -22,12 +22,12 @@ ## 二、实现方式二:接入公司的统一邮件服务 -和SSO类似,每个公司也有自己的邮件服务实现,所以我们相应的定义了[EmailService](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/EmailService.java)接口,现有两个实现类: +和SSO类似,每个公司也有自己的邮件服务实现,所以我们相应的定义了[EmailService](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/EmailService.java)接口,现有两个实现类: 1. CtripEmailService:携程实现的EmailService 2. DefaultEmailService:smtp实现 ### 2.1 接入步骤 -1. 提供自己公司的[EmailService](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/EmailService.java)实现,并在[EmailConfiguration](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/EmailConfiguration.java)中注册。 +1. 提供自己公司的[EmailService](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/EmailService.java)实现,并在[EmailConfiguration](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/EmailConfiguration.java)中注册。 2. 在ApolloPortalDB.ServerConfig表配置以下参数,也可以通过管理员工具 - 系统参数页面进行配置,修改完一分钟实时生效。如下: * **email.supported.envs** 支持发送邮件的环境列表,英文逗号隔开。我们不希望发布邮件变成用户的垃圾邮件,只有某些环境下的发布动作才会发送邮件。 * **email.sender** 邮件的发送人。 @@ -39,13 +39,13 @@ 我们提供了[邮件模板样例](#三、邮件模板样例),方便大家使用。 ->注:运行时使用不同的实现是通过[Profiles](http://docs.spring.io/autorepo/docs/spring-boot/current/reference/html/boot-features-profiles.html)实现的,比如你自己的Email实现是在`custom` profile中的话,在打包脚本中可以指定-Dapollo_profile=github,custom。其中`github`是Apollo必须的一个profile,用于数据库的配置,`custom`是你自己实现的profile。同时需要注意在[EmailConfiguration](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/EmailConfiguration.java)中修改默认实现的条件`@Profile({"!custom"})`。 +>注:运行时使用不同的实现是通过[Profiles](http://docs.spring.io/autorepo/docs/spring-boot/current/reference/html/boot-features-profiles.html)实现的,比如你自己的Email实现是在`custom` profile中的话,在打包脚本中可以指定-Dapollo_profile=github,custom。其中`github`是Apollo必须的一个profile,用于数据库的配置,`custom`是你自己实现的profile。同时需要注意在[EmailConfiguration](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/EmailConfiguration.java)中修改默认实现的条件`@Profile({"!custom"})`。 ### 2.2 相关代码 -1. [ConfigPublishListener](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/listener/ConfigPublishListener.java)监听发布事件,调用emailbuilder构建邮件内容,然后调用EmailService发送邮件 -2. [emailbuilder](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/components/emailbuilder)包是构建邮件内容的实现 -3. [EmailService](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/EmailService.java) 邮件发送服务 -4. [EmailConfiguration](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/EmailConfiguration.java) 邮件服务注册类 +1. [ConfigPublishListener](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/listener/ConfigPublishListener.java)监听发布事件,调用emailbuilder构建邮件内容,然后调用EmailService发送邮件 +2. [emailbuilder](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/components/emailbuilder)包是构建邮件内容的实现 +3. [EmailService](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/EmailService.java) 邮件发送服务 +4. [EmailConfiguration](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/EmailConfiguration.java) 邮件服务注册类 ## 三、邮件模板样例 以下为发布邮件和回滚邮件的模板内容样式,邮件模板为html格式,发送html格式的邮件时,可能需要做一些额外的处理,取决于每个公司的邮件服务实现。为了减少字符数,模板经过了压缩处理,可自行格式化提高可读性。 @@ -102,7 +102,7 @@ ``` ### 3.5 发布邮件样例 -![发布邮件模板](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/email-template-release.png) +![发布邮件模板](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/email-template-release.png) ### 3.6 回滚邮件样例 -![回滚邮件模板](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/email-template-rollback.png) \ No newline at end of file +![回滚邮件模板](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/email-template-rollback.png) \ No newline at end of file diff --git a/docs/zh/development/portal-how-to-implement-user-login-function.md b/docs/zh/development/portal-how-to-implement-user-login-function.md index d63345110d3..3318ddc84b1 100644 --- a/docs/zh/development/portal-how-to-implement-user-login-function.md +++ b/docs/zh/development/portal-how-to-implement-user-login-function.md @@ -8,7 +8,7 @@ Apollo是配置管理系统,会提供权限管理(Authorization),理论 使用步骤如下: ### 1. 安装0.9.0以上版本 ->如果之前是0.8.0版本,需要导入[apolloportaldb-v080-v090.sql](https://github.com/ctripcorp/apollo/blob/master/scripts/sql/delta/v080-v090/apolloportaldb-v080-v090.sql) +>如果之前是0.8.0版本,需要导入[apolloportaldb-v080-v090.sql](https://github.com/apolloconfig/apollo/blob/master/scripts/sql/delta/v080-v090/apolloportaldb-v080-v090.sql) 查看ApolloPortalDB,应该已经存在`Users`表,并有一条初始记录。初始用户名是apollo,密码是admin。 @@ -36,7 +36,7 @@ Apollo是配置管理系统,会提供权限管理(Authorization),理论 #### 1.1 配置`application-ldap.yml` -解压`apollo-portal-x.x.x-github.zip`后,在`config`目录下创建`application-ldap.yml`,内容参考如下([样例](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/config/application-ldap-openldap-sample.yml)),相关的内容需要按照具体情况调整: +解压`apollo-portal-x.x.x-github.zip`后,在`config`目录下创建`application-ldap.yml`,内容参考如下([样例](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/config/application-ldap-openldap-sample.yml)),相关的内容需要按照具体情况调整: ```yml spring: @@ -126,7 +126,7 @@ export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=github,ldap" #### 2.1 配置`application-ldap.yml` -解压`apollo-portal-x.x.x-github.zip`后,在`config`目录下创建`application-ldap.yml`,内容参考如下([样例](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/config/application-ldap-activedirectory-sample.yml)),相关的内容需要按照具体情况调整: +解压`apollo-portal-x.x.x-github.zip`后,在`config`目录下创建`application-ldap.yml`,内容参考如下([样例](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/config/application-ldap-activedirectory-sample.yml)),相关的内容需要按照具体情况调整: ```yml spring: @@ -166,7 +166,7 @@ export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=github,ldap" #### 3.1 配置`application-ldap.yml` -解压`apollo-portal-x.x.x-github.zip`后,在`config`目录下创建`application-ldap.yml`,内容参考如下([样例](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/config/application-ldap-apacheds-sample.yml)),相关的内容需要按照具体情况调整: +解压`apollo-portal-x.x.x-github.zip`后,在`config`目录下创建`application-ldap.yml`,内容参考如下([样例](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/config/application-ldap-apacheds-sample.yml)),相关的内容需要按照具体情况调整: ```yml spring: @@ -236,7 +236,7 @@ export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=github,ldap" ### 1. 配置 `application-oidc.yml` -解压`apollo-portal-x.x.x-github.zip`后,在`config`目录下创建`application-oidc.yml`,内容参考如下([样例](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/config/application-oidc-sample.yml)),相关的内容需要按照具体情况调整: +解压`apollo-portal-x.x.x-github.zip`后,在`config`目录下创建`application-oidc.yml`,内容参考如下([样例](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/config/application-oidc-sample.yml)),相关的内容需要按照具体情况调整: #### 1.1 最小配置 ```yml @@ -345,14 +345,14 @@ export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=github,oidc" * LogoutHandler(Optional):用来实现登出功能 * SsoHeartbeatHandler(Optional):Portal页面如果长时间不刷新,登录信息会过期。通过此接口来刷新登录信息 -可以参考apollo-portal下的[com.ctrip.framework.apollo.portal.spi](https://github.com/ctripcorp/apollo/tree/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi)这个包下面的四个实现: +可以参考apollo-portal下的[com.ctrip.framework.apollo.portal.spi](https://github.com/apolloconfig/apollo/tree/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi)这个包下面的四个实现: 1. defaultimpl:默认实现,全局只有apollo一个账号 2. ctrip:ctrip实现,接入了SSO并实现用户搜索、查询接口 3. springsecurity: spring security实现,可以新增用户,修改用户密码等 4. ldap: [@pandalin](https://github.com/pandalin)和[codepiano](https://github.com/codepiano)贡献的ldap实现 -实现了相关接口后,可以通过[com.ctrip.framework.apollo.portal.configuration.AuthConfiguration](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/AuthConfiguration.java)在运行时替换默认的实现。 +实现了相关接口后,可以通过[com.ctrip.framework.apollo.portal.configuration.AuthConfiguration](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/AuthConfiguration.java)在运行时替换默认的实现。 接入SSO的思路如下: @@ -365,6 +365,6 @@ export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=github,oidc" 注意,以上1-5这几步都是SSO的代码,不是Apollo的代码,Apollo的代码只需要你实现第6步。 ->注:运行时使用不同的实现是通过[Profiles](http://docs.spring.io/autorepo/docs/spring-boot/current/reference/html/boot-features-profiles.html)实现的,比如你自己的sso实现是在`custom` profile中的话,在打包脚本中可以指定-Dapollo_profile=github,custom。其中`github`是Apollo必须的一个profile,用于数据库的配置,`custom`是你自己实现的profile。同时需要注意在[AuthConfiguration](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/AuthConfiguration.java)中修改默认实现的条件 +>注:运行时使用不同的实现是通过[Profiles](http://docs.spring.io/autorepo/docs/spring-boot/current/reference/html/boot-features-profiles.html)实现的,比如你自己的sso实现是在`custom` profile中的话,在打包脚本中可以指定-Dapollo_profile=github,custom。其中`github`是Apollo必须的一个profile,用于数据库的配置,`custom`是你自己实现的profile。同时需要注意在[AuthConfiguration](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/AuthConfiguration.java)中修改默认实现的条件 ,从`@ConditionalOnMissingProfile({"ctrip", "auth", "ldap"})`改为`@ConditionalOnMissingProfile({"ctrip", "auth", "ldap", "custom"})`。 diff --git a/docs/zh/faq/common-issues-in-deployment-and-development-phase.md b/docs/zh/faq/common-issues-in-deployment-and-development-phase.md index 07d0776bde5..97f3cfbebb5 100644 --- a/docs/zh/faq/common-issues-in-deployment-and-development-phase.md +++ b/docs/zh/faq/common-issues-in-deployment-and-development-phase.md @@ -42,14 +42,14 @@ 如果需要添加的环境不是Apollo预先定义的环境,请参照如下步骤操作: 1. 假设需要添加的环境名称叫beta -2. 修改[com.ctrip.framework.apollo.core.enums.Env](https://github.com/ctripcorp/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/Env.java)类,在其中加入`BETA`枚举: +2. 修改[com.ctrip.framework.apollo.core.enums.Env](https://github.com/apolloconfig/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/Env.java)类,在其中加入`BETA`枚举: ```java public enum Env{ LOCAL, DEV, BETA, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN; ... } ``` -3. 修改[com.ctrip.framework.apollo.core.enums.EnvUtils](https://github.com/ctripcorp/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/EnvUtils.java)类,在其中加入`BETA`枚举的转换逻辑: +3. 修改[com.ctrip.framework.apollo.core.enums.EnvUtils](https://github.com/apolloconfig/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/EnvUtils.java)类,在其中加入`BETA`枚举的转换逻辑: ```java public final class EnvUtils { @@ -68,7 +68,7 @@ public final class EnvUtils { } } ``` -4. 修改[apollo-env.properties](https://github.com/ctripcorp/apollo/blob/master/apollo-portal/src/main/resources/apollo-env.properties),增加`beta.meta`占位符: +4. 修改[apollo-env.properties](https://github.com/apolloconfig/apollo/blob/master/apollo-portal/src/main/resources/apollo-env.properties),增加`beta.meta`占位符: ```properties local.meta=http://localhost:8080 dev.meta=${dev_meta} @@ -78,7 +78,7 @@ uat.meta=${uat_meta} lpt.meta=${lpt_meta} pro.meta=${pro_meta} ``` -5. 修改[com.ctrip.framework.apollo.core.internals.LegacyMetaServerProvider](https://github.com/ctripcorp/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/internals/LegacyMetaServerProvider.java)类,增加读取`BETA`环境的meta server地址逻辑: +5. 修改[com.ctrip.framework.apollo.core.internals.LegacyMetaServerProvider](https://github.com/apolloconfig/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/internals/LegacyMetaServerProvider.java)类,增加读取`BETA`环境的meta server地址逻辑: ```java public class LegacyMetaServerProvider { ... @@ -99,11 +99,11 @@ public class LegacyMetaServerProvider { 页面入口: -![delete-app-cluster-namespace-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/delete-app-cluster-namespace-entry.png) +![delete-app-cluster-namespace-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/delete-app-cluster-namespace-entry.png) 页面详情: -![delete-app-cluster-namespace-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/delete-app-cluster-namespace-detail.png) +![delete-app-cluster-namespace-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/delete-app-cluster-namespace-detail.png) ### 6. 客户端多块网卡造成获取IP不准,如何解决? @@ -145,7 +145,7 @@ Apollo默认自带了Eureka作为内部的注册中心实现,一般情况下 ##### 1.2 1.5.0之前的版本 -修改[com.ctrip.framework.apollo.configservice.ConfigServiceApplication](https://github.com/ctripcorp/apollo/blob/master/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/ConfigServiceApplication.java),把`@EnableEurekaServer`改为`@EnableEurekaClient` +修改[com.ctrip.framework.apollo.configservice.ConfigServiceApplication](https://github.com/apolloconfig/apollo/blob/master/apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/ConfigServiceApplication.java),把`@EnableEurekaServer`改为`@EnableEurekaClient` ```java @EnableEurekaClient @@ -181,7 +181,7 @@ http://1.1.1.1:8761/eureka/,http://2.2.2.2:8761/eureka/ ### 10. 多机房如何实现A机房的客户端就近读取A机房的config service,B机房的客户端就近读取B机房的config service? -请参考[Issue 1294](https://github.com/ctripcorp/apollo/issues/1294),该案例中由于中美机房相距甚远,所以需要config db两地部署,如果是同城多机房的话,两个机房的config service可以连同一个config db。 +请参考[Issue 1294](https://github.com/apolloconfig/apollo/issues/1294),该案例中由于中美机房相距甚远,所以需要config db两地部署,如果是同城多机房的话,两个机房的config service可以连同一个config db。 ### 11. apollo是否有支持HEAD请求的页面?阿里云slb配置健康检查只支持HEAD请求 @@ -211,7 +211,7 @@ apollo的每个服务都有`/health`页面的,该页面是apollo用来做健 运行tomcat的startup.sh 5. 运行tomcat的startup.sh -另外,apollo还有一些调优参数建议在tomcat的server.xml中配置一下,可以参考[application.properties](https://github.com/ctripcorp/apollo/blob/master/apollo-common/src/main/resources/application.properties#L12) +另外,apollo还有一些调优参数建议在tomcat的server.xml中配置一下,可以参考[application.properties](https://github.com/apolloconfig/apollo/blob/master/apollo-common/src/main/resources/application.properties#L12) ### 14. 注册中心Eureka如何替换为zookeeper? @@ -219,7 +219,7 @@ apollo的每个服务都有`/health`页面的,该页面是apollo用来做健 ### 15. 本地多人同时开发,如何实现配置不一样且互不影响? -参考[#1560](https://github.com/ctripcorp/apollo/issues/1560) +参考[#1560](https://github.com/apolloconfig/apollo/issues/1560) ### 16. Portal挂载到nginx/slb后如何设置相对路径? diff --git a/docs/zh/faq/faq.md b/docs/zh/faq/faq.md index 8f8b4d0536d..7af148a13f5 100644 --- a/docs/zh/faq/faq.md +++ b/docs/zh/faq/faq.md @@ -54,4 +54,4 @@ Spring Cloud Config的精妙之处在于它的配置存储于Git,这就天然 ## 10. Apollo和Disconf相比有什么优点? 由于我们自己并非Disconf的资深用户,所以无法主观地给出评价。 -不过之前Apollo技术支持群中的热心网友[@Krast](https://github.com/krast)做了一个[开源配置中心对比矩阵](https://github.com/ctripcorp/apollo/files/983064/default.pdf),可以参考一下。 \ No newline at end of file +不过之前Apollo技术支持群中的热心网友[@Krast](https://github.com/krast)做了一个[开源配置中心对比矩阵](https://github.com/apolloconfig/apollo/files/983064/default.pdf),可以参考一下。 \ No newline at end of file diff --git a/docs/zh/usage/apollo-open-api-platform.md b/docs/zh/usage/apollo-open-api-platform.md index f8a22a2c182..7671dd4cb78 100644 --- a/docs/zh/usage/apollo-open-api-platform.md +++ b/docs/zh/usage/apollo-open-api-platform.md @@ -15,7 +15,7 @@ Apollo提供了一套的Http REST接口,使第三方应用能够自己管理 Apollo管理员在 http://{portal_address}/open/manage.html 创建第三方应用,创建之前最好先查询此AppId是否已经创建。创建成功之后会生成一个token,如下图所示: -![开放平台管理](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-open-manage.png) +![开放平台管理](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-open-manage.png) #### 2.2 给已注册的第三方应用授权 第三方应用不应该能操作任何Namespace的配置,所以需要给token绑定可以操作的Namespace。Apollo管理员在 http://{portal_address}/open/manage.html 页面给token赋权。赋权之后,第三方应用就可以通过Apollo提供的Http REST接口来管理已授权的Namespace的配置了。 @@ -28,7 +28,7 @@ Apollo管理员在 http://{portal_address}/open/manage.html 创建第三方应 * Http Header的Content-Type字段需要设置成application/json;charset=UTF-8 ##### 2.3.2 Java应用通过apollo-openapi调用Apollo Open API -从1.1.0版本开始,Apollo提供了[apollo-openapi](https://github.com/ctripcorp/apollo/tree/master/apollo-openapi)客户端,所以Java语言的第三方应用可以更方便地调用Apollo Open API。 +从1.1.0版本开始,Apollo提供了[apollo-openapi](https://github.com/apolloconfig/apollo/tree/master/apollo-openapi)客户端,所以Java语言的第三方应用可以更方便地调用Apollo Open API。 首先引入`apollo-openapi`依赖: ```xml diff --git a/docs/zh/usage/apollo-user-guide.md b/docs/zh/usage/apollo-user-guide.md index adda67f4e1a..aa0d5aeaf86 100644 --- a/docs/zh/usage/apollo-user-guide.md +++ b/docs/zh/usage/apollo-user-guide.md @@ -16,7 +16,7 @@ 1. 打开apollo-portal主页 2. 点击“创建项目” -![create-app-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-app-entry.png) +![create-app-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-app-entry.png) 3. 输入项目信息 * 部门:选择应用所在的部门 @@ -24,13 +24,13 @@ * 应用名称:应用名,仅用于界面展示 * 应用负责人:选择的人默认会成为该项目的管理员,具备项目权限管理、集群创建、Namespace创建等权限 -![create-app](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-app.png) +![create-app](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-app.png) 4. 点击提交 创建成功后,会自动跳转到项目首页 -![app-created](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/app-created.png) +![app-created](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/app-created.png) ## 1.2 项目权限分配 ### 1.2.1 项目管理员权限 @@ -44,11 +44,11 @@ 创建项目时填写的应用负责人默认会成为项目的管理员之一,如果还需要其他人也成为项目管理员,可以按照下面步骤操作: 1. 点击页面左侧的“管理项目” - * ![app-permission-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/app-permission-entry.png) + * ![app-permission-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/app-permission-entry.png) 2. 搜索需要添加的成员并点击添加 - * ![app-permission-search-user](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/app-permission-search-user.png) - * ![app-permission-user-added](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/app-permission-user-added.png) + * ![app-permission-search-user](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/app-permission-search-user.png) + * ![app-permission-user-added](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/app-permission-user-added.png) ### 1.2.2 配置编辑、发布权限 配置权限分为编辑和发布: @@ -62,13 +62,13 @@ 项目创建完,默认没有分配配置的编辑和发布权限,需要项目管理员进行授权。 1. 点击application这个namespace的授权按钮 - * ![namespace-permission-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/namespace-permission-entry.png) + * ![namespace-permission-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-permission-entry.png) 2. 分配修改权限 - * ![namespace-permission-edit](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/namespace-permission-edit.png) + * ![namespace-permission-edit](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-permission-edit.png) 3. 分配发布权限 - * ![namespace-publish-permission](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/namespace-publish-permission.png) + * ![namespace-publish-permission](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-publish-permission.png) ## 1.3 添加配置项 编辑配置需要拥有这个Namespace的编辑权限,如果发现没有新增配置按钮,可以找项目管理员授权。 @@ -76,26 +76,26 @@ ### 1.3.1 通过表格模式添加配置 1. 点击新增配置 - * ![create-item-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-item-entry.png) + * ![create-item-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-item-entry.png) 2. 输入配置项 - * ![create-item-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-item-detail.png) + * ![create-item-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-item-detail.png) 3. 点击提交 - * ![item-created](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/item-created.png) + * ![item-created](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/item-created.png) ### 1.3.2 通过文本模式编辑 Apollo除了支持表格模式,逐个添加、修改配置外,还提供文本模式批量添加、修改。 这个对于从已有的properties文件迁移尤其有用。 1. 切换到文本编辑模式 -![text-mode-config-overview](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/text-mode-config-overview.png) +![text-mode-config-overview](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/text-mode-config-overview.png) 2. 点击右侧的修改配置按钮 -![text-mode-config-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/text-mode-config-entry.png) +![text-mode-config-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/text-mode-config-entry.png) 3. 输入配置项,并点击提交修改 -![text-mode-config-submit](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/text-mode-config-submit.png) +![text-mode-config-submit](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/text-mode-config-submit.png) ## 1.4 发布配置 配置只有在发布后才会真的被应用使用到,所以在编辑完配置后,需要发布配置。 @@ -103,10 +103,10 @@ Apollo除了支持表格模式,逐个添加、修改配置外,还提供文 发布配置需要拥有这个Namespace的发布权限,如果发现没有发布按钮,可以找项目管理员授权。 1. 点击“发布按钮” -![publish-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/hermes-portal-publish-entry.png) +![publish-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/hermes-portal-publish-entry.png) 2. 填写发布相关信息,点击发布 -![publish-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/hermes-portal-publish-detail.png) +![publish-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/hermes-portal-publish-detail.png) ## 1.5 应用读取配置 配置发布成功后,应用就可以通过Apollo客户端读取到配置了。 @@ -146,26 +146,26 @@ Apollo中的回滚也是类似的机制,点击回滚后是将发布到客户 创建Namespace需要项目管理员权限,如果发现没有添加Namespace按钮,可以找项目管理员授权。 1. 点击页面左侧的添加Namespace - * ![create-namespace](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-namespace.png) + * ![create-namespace](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-namespace.png) 2. 点击“创建新的Namespace” - * ![create-namespace-select-type](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-namespace-select-type.png) + * ![create-namespace-select-type](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-namespace-select-type.png) 3. 输入公共组件的Namespace名称,需要注意的是Namespace名称全局唯一 * Apollo会默认把部门代号添加在最前面 - * ![create-namespace-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-namespace-detail.png) + * ![create-namespace-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-namespace-detail.png) 4. 点击提交后,页面会自动跳转到关联Namespace页面 * 首先,选中所有需要有这个Namespace的环境和集群,一般建议全选 * 其次,选中刚刚创建的namespace * 最后,点击提交 - * ![link-namespace-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/link-namespace-detail.png) + * ![link-namespace-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/link-namespace-detail.png) 5. 关联成功后,页面会自动跳转到Namespace权限管理页面 1. 分配修改权限 - * ![namespace-permission-edit](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/namespace-permission-edit.png) + * ![namespace-permission-edit](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-permission-edit.png) 2. 分配发布权限 - * ![namespace-publish-permission](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/namespace-publish-permission.png) + * ![namespace-publish-permission](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-publish-permission.png) 6. 点击“返回”回到项目页面 @@ -176,13 +176,13 @@ Apollo中的回滚也是类似的机制,点击回滚后是将发布到客户 #### 2.2.2.1 通过表格模式添加配置 1. 点击新增配置 -![public-namespace-edit-item-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/public-namespace-edit-item-entry.png) +![public-namespace-edit-item-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/public-namespace-edit-item-entry.png) 2. 输入配置项 -![public-namespace-edit-item](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/public-namespace-edit-item.png) +![public-namespace-edit-item](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/public-namespace-edit-item.png) 3. 点击提交 -![public-namespace-item-created](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/public-namespace-item-created.png) +![public-namespace-item-created](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/public-namespace-item-created.png) #### 2.2.2.2 通过文本模式编辑 这部分和普通应用一致,具体步骤请参见[1.3.2 通过文本模式编辑](#_132-%E9%80%9A%E8%BF%87%E6%96%87%E6%9C%AC%E6%A8%A1%E5%BC%8F%E7%BC%96%E8%BE%91)。 @@ -194,10 +194,10 @@ Apollo中的回滚也是类似的机制,点击回滚后是将发布到客户 发布配置需要拥有这个Namespace的发布权限,如果发现没有发布按钮,可以找项目管理员授权。 1. 点击“发布按钮” -![public-namespace-publish-items-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/public-namespace-publish-items-entry.png) +![public-namespace-publish-items-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/public-namespace-publish-items-entry.png) 2. 填写发布相关信息,点击发布 -![public-namespace-publish-items](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/public-namespace-publish-items.png) +![public-namespace-publish-items](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/public-namespace-publish-items.png) ### 2.2.4 应用读取配置 @@ -219,29 +219,29 @@ Apollo目前提供Java客户端,具体信息请点击[Java客户端使用文 1. 进入使用公共组件的应用项目首页,点击左侧的添加Namespace按钮 * 所以,在这个例子中,我们需要进入apollo-portal的首页。 * (添加Namespace需要项目管理员权限,如果发现没有添加Namespace按钮,可以找项目管理员授权) - * ![link-public-namespace-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/link-public-namespace-entry.png) + * ![link-public-namespace-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/link-public-namespace-entry.png) 2. 找到hermes producer的namespace,并选择需要关联到哪些环境和集群 -![link-public-namespace](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/link-public-namespace.png) +![link-public-namespace](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/link-public-namespace.png) 3. 关联成功后,页面会自动跳转到Namespace权限管理页面 1. 分配修改权限 -![namespace-permission-edit](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/namespace-permission-edit.png) +![namespace-permission-edit](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-permission-edit.png) 2. 分配发布权限 -![namespace-publish-permission](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/namespace-publish-permission.png) +![namespace-publish-permission](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/namespace-publish-permission.png) 4. 点击“返回”回到项目页面 ### 2.3.2 覆盖公用组件配置 1. 点击新增配置 -![override-public-namespace-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/override-public-namespace-entry.png) +![override-public-namespace-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/override-public-namespace-entry.png) 2. 输入要覆盖的配置项 -![override-public-namespace-item](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/override-public-namespace-item.png) +![override-public-namespace-item](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/override-public-namespace-item.png) 3. 点击提交 -![override-public-namespace-item-done](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/override-public-namespace-item-done.png) +![override-public-namespace-item-done](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/override-public-namespace-item-done.png) ### 2.3.3 发布配置 @@ -250,10 +250,10 @@ Apollo目前提供Java客户端,具体信息请点击[Java客户端使用文 发布配置需要拥有这个Namespace的发布权限,如果发现没有发布按钮,可以找项目管理员授权。 1. 点击“发布按钮” -![override-public-namespace-item-publish-entry](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/override-public-namespace-item-publish-entry.png) +![override-public-namespace-item-publish-entry](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/override-public-namespace-item-publish-entry.png) 2. 填写发布相关信息,点击发布 -![override-public-namespace-item-publish](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/override-public-namespace-item-publish.png) +![override-public-namespace-item-publish](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/override-public-namespace-item-publish.png) 3. 配置发布成功后,hermes producer客户端在apollo-portal应用里面运行时读取到的sender.batchSize的值就是1000。 @@ -268,13 +268,13 @@ Apollo目前提供Java客户端,具体信息请点击[Java客户端使用文 创建集群需要项目管理员权限,如果发现没有添加集群按钮,可以找项目管理员授权。 1. 点击页面左侧的“添加集群”按钮 - * ![create-cluster](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-cluster.png) + * ![create-cluster](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-cluster.png) 2. 输入集群名称,选择环境并提交 - * ![create-cluster-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/create-cluster-detail.png) + * ![create-cluster-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/create-cluster-detail.png) 3. 切换到对应的集群,修改配置并发布即可 - * ![config-in-cluster-created](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/cluster-created.png) + * ![config-in-cluster-created](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/cluster-created.png) 4. 通过上述配置,部署在SHAJQ机房的应用就会读到SHAJQ集群下的配置 @@ -306,58 +306,58 @@ Apollo目前提供Java客户端,具体信息请点击[Java客户端使用文 1. 10.32.21.19 2. 10.32.21.22 -![initial-instance-list](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/initial-instance-list.png) +![initial-instance-list](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/initial-instance-list.png) **灰度目标:** * 当前有一个配置timeout=2000,我们希望对10.32.21.22灰度发布timeout=3000,对10.32.21.19仍然是timeout=2000。 -![initial-config](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/initial-config.png) +![initial-config](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/initial-config.png) ## 5.2 创建灰度 首先点击application namespace右上角的`创建灰度`按钮。 -![create-gray-release](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/create-gray-release.png) +![create-gray-release](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/create-gray-release.png) 点击确定后,灰度版本就创建成功了,页面会自动切换到`灰度版本`Tab。 -![initial-gray-release-tab](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/initial-gray-release-tab.png) +![initial-gray-release-tab](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/initial-gray-release-tab.png) ## 5.3 灰度配置 点击`主版本的配置`中,timeout配置最右侧的`对此配置灰度`按钮 -![initial-gray-release-tab](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/edit-gray-release-config.png) +![initial-gray-release-tab](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/edit-gray-release-config.png) 在弹出框中填入要灰度的值:3000,点击提交。 -![submit-gray-release-config](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/submit-gray-release-config.png) +![submit-gray-release-config](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/submit-gray-release-config.png) -![gray-release-config-submitted](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/gray-release-config-submitted.png) +![gray-release-config-submitted](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/gray-release-config-submitted.png) ## 5.4 配置灰度规则 切换到`灰度规则`Tab,点击`新增规则`按钮 -![new-gray-release-rule](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/new-gray-release-rule.png) +![new-gray-release-rule](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/new-gray-release-rule.png) 在弹出框中`灰度的IP`下拉框会默认展示当前使用配置的机器列表,选择我们要灰度的IP。 -![select-gray-release-ip](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/select-gray-release-ip.png) +![select-gray-release-ip](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/select-gray-release-ip.png) -![gray-release-ip-selected](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/gray-release-ip-selected.png) +![gray-release-ip-selected](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/gray-release-ip-selected.png) 手动输入想要设置的label标签,输入完成后点击点击添加按钮。 -![manual-input-gray-release-label](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/manual-input-gray-release-label.png) +![manual-input-gray-release-label](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/manual-input-gray-release-label.png) -![manual-input-gray-release-label-2](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/manual-input-gray-release-label-2.png) +![manual-input-gray-release-label-2](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/manual-input-gray-release-label-2.png) -![gray-release-rule-saved](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/gray-release-rule-saved.png) +![gray-release-rule-saved](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/gray-release-rule-saved.png) 如果下拉框中没找到需要的IP,说明机器还没从Apollo取过配置,可以点击手动输入IP来输入,输入完后点击添加按钮 -![manual-input-gray-release-ip](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/manual-input-gray-release-ip.png) +![manual-input-gray-release-ip](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/manual-input-gray-release-ip.png) -![manual-input-gray-release-ip-2](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/manual-input-gray-release-ip-2.png) +![manual-input-gray-release-ip-2](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/manual-input-gray-release-ip-2.png) >注:对于公共Namespace的灰度规则,需要先指定要灰度的appId,然后再选择IP和Label。 @@ -366,19 +366,19 @@ Apollo目前提供Java客户端,具体信息请点击[Java客户端使用文 再次检查灰度的配置部分,如果没有问题,点击`灰度发布`。 -![prepare-to-do-gray-release](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/prepare-to-do-gray-release.png) +![prepare-to-do-gray-release](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/prepare-to-do-gray-release.png) 在弹出框中可以看到主版本的值是2000,灰度版本即将发布的值是3000。填入其它信息后,点击发布。 -![gray-release-confirm-dialog](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/gray-release-confirm-dialog.png) +![gray-release-confirm-dialog](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/gray-release-confirm-dialog.png) 发布后,切换到`灰度实例列表`Tab,就能看到10.32.21.22已经使用了灰度发布的值。 -![gray-release-instance-list](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/gray-release-instance-list.png) +![gray-release-instance-list](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/gray-release-instance-list.png) 切换到`主版本`的`实例列表`,会看到主版本配置只有10.32.21.19在使用了。 -![master-branch-instance-list](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/master-branch-instance-list.png) +![master-branch-instance-list](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/master-branch-instance-list.png) 后面可以继续配置的修改或规则的更改。配置的修改需要点击灰度发布后才会生效,规则的修改在规则点击完成后就会实时生效。 @@ -391,27 +391,27 @@ Apollo目前提供Java客户端,具体信息请点击[Java客户端使用文 2. 主版本的配置会自动进行一次发布 3. 在全量发布页面,可以选择是否保留当前灰度版本,默认为不保留。 -![prepare-to-full-release](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/prepare-to-full-release.png) +![prepare-to-full-release](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/prepare-to-full-release.png) -![full-release-confirm-dialog](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/full-release-confirm-dialog.png) +![full-release-confirm-dialog](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/full-release-confirm-dialog.png) -![full-release-confirm-dialog-2](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/full-release-confirm-dialog-2.png) +![full-release-confirm-dialog-2](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/full-release-confirm-dialog-2.png) 我选择了不保留灰度版本,所以发布完的效果就是主版本的配置更新、灰度版本删除。点击主版本的实例列表,可以看到10.32.21.22和10.32.21.19都使用了主版本最新的配置。 -![master-branch-instance-list-after-full-release](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/master-branch-instance-list-after-full-release.png) +![master-branch-instance-list-after-full-release](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/master-branch-instance-list-after-full-release.png) ## 5.7 放弃灰度 如果灰度版本不理想或者不需要了,可以点击`放弃灰度`。 -![abandon-gray-release](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/abandon-gray-release.png) +![abandon-gray-release](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/abandon-gray-release.png) ## 5.8 发布历史 点击主版本的`发布历史`按钮,可以看到当前namespace的主版本以及灰度版本的发布历史。 -![view-release-history](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/view-release-history.png) +![view-release-history](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/view-release-history.png) -![view-release-history-detail](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/gray-release/view-release-history-detail.png) +![view-release-history-detail](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/view-release-history-detail.png) # 六、其它功能配置 diff --git a/docs/zh/usage/dotnet-sdk-user-guide.md b/docs/zh/usage/dotnet-sdk-user-guide.md index 4cc71081c3a..e5abb0a3654 100644 --- a/docs/zh/usage/dotnet-sdk-user-guide.md +++ b/docs/zh/usage/dotnet-sdk-user-guide.md @@ -86,7 +86,7 @@ Apollo支持配置按照集群划分,也就是说对于一个appId和一个环 1. 通过App Config * 我们可以在App.config文件中设置Apollo.Cluster来指定运行时集群(注意大小写) * 例如,下面的截图配置指定了运行时的集群为SomeCluster - * ![apollo-net-apollo-cluster](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-net-apollo-cluster.png) + * ![apollo-net-apollo-cluster](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-net-apollo-cluster.png) 2. 通过配置文件 * 首先确保`C:\opt\settings\server.properties`在目标机器上存在 @@ -169,7 +169,7 @@ apollo.net项目中有一个样例客户端的项目:`ApolloDemo`,具体信 > 详见[https://github.com/ctripcorp/apollo.net/tree/master/Apollo/Logging/Spi](https://github.com/ctripcorp/apollo.net/tree/master/Apollo/Logging/Spi) # 四、客户端设计 -![client-architecture](https://github.com/ctripcorp/apollo/raw/master/doc/images/client-architecture.png) +![client-architecture](https://github.com/apolloconfig/apollo/raw/master/doc/images/client-architecture.png) 上图简要描述了Apollo客户端的实现原理: @@ -217,7 +217,7 @@ appId就是应用的appId,如100004458。 * appId就是应用自己的appId,如100004458 * cluster就是应用使用的集群,一般在本地模式下没有做过配置的话,就是default * namespace就是应用使用配置namespace,一般是application -![client-local-cache](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/apollo-net-config-cache.png) +![client-local-cache](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/apollo-net-config-cache.png) 文件内容以json格式存储,比如如果有两个key,一个是request.timeout,另一个是batch,那么文件内容就是如下格式: ```json diff --git a/docs/zh/usage/java-sdk-user-guide.md b/docs/zh/usage/java-sdk-user-guide.md index af5921c7b74..06696fddbfd 100644 --- a/docs/zh/usage/java-sdk-user-guide.md +++ b/docs/zh/usage/java-sdk-user-guide.md @@ -9,7 +9,7 @@ * Guava: 20.0+ * Apollo客户端默认会引用Guava 29,如果你的项目引用了其它版本,请确保版本号大于等于20.0 ->注:对于Apollo客户端,如果有需要的话,可以做少量代码修改来降级到Java 1.6,详细信息可以参考[Issue 483](https://github.com/ctripcorp/apollo/issues/483) +>注:对于Apollo客户端,如果有需要的话,可以做少量代码修改来降级到Java 1.6,详细信息可以参考[Issue 483](https://github.com/apolloconfig/apollo/issues/483) ## 1.2 必选设置 Apollo客户端依赖于`AppId`,`Apollo Meta Server`等环境信息来工作,所以请确保阅读下面的说明并且做正确的配置: @@ -53,7 +53,7 @@ app.id=YOUR-APP-ID 文件位置参考如下: -![app-id-location](https://raw.githubusercontent.com/ctripcorp/apollo/master/apollo-client/doc/pic/app-id-location.png) +![app-id-location](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/apollo-client/doc/pic/app-id-location.png) > 注:app.id是用来标识应用身份的唯一id,格式为string。 @@ -105,7 +105,7 @@ pro.meta=http://apollo.xxx.com #### 1.2.2.1 自定义Apollo Meta Server地址定位逻辑 -在1.0.0版本中,Apollo提供了[MetaServerProvider SPI](https://github.com/ctripcorp/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/spi/MetaServerProvider.java),用户可以注入自己的MetaServerProvider来自定义Meta Server地址定位逻辑。 +在1.0.0版本中,Apollo提供了[MetaServerProvider SPI](https://github.com/apolloconfig/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/spi/MetaServerProvider.java),用户可以注入自己的MetaServerProvider来自定义Meta Server地址定位逻辑。 由于我们使用典型的[Java Service Loader模式](https://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html),所以实现起来还是比较简单的。 @@ -113,7 +113,7 @@ pro.meta=http://apollo.xxx.com **如果你的公司有很多应用需要接入Apollo,建议封装一个jar包,然后提供自定义的Apollo Meta Server定位逻辑,从而可以让接入Apollo的应用零配置使用。比如自己写一个`xx-company-apollo-client`,该jar包依赖`apollo-client`,在该jar包中通过spi方式定义自定义的MetaServerProvider实现,然后应用直接依赖`xx-company-apollo-client`即可。** -MetaServerProvider的实现可以参考[LegacyMetaServerProvider](https://github.com/ctripcorp/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/internals/LegacyMetaServerProvider.java)和[DefaultMetaServerProvider](https://github.com/ctripcorp/apollo/blob/master/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/DefaultMetaServerProvider.java)。 +MetaServerProvider的实现可以参考[LegacyMetaServerProvider](https://github.com/apolloconfig/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/internals/LegacyMetaServerProvider.java)和[DefaultMetaServerProvider](https://github.com/apolloconfig/apollo/blob/master/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/DefaultMetaServerProvider.java)。 #### 1.2.2.2 跳过Apollo Meta Server服务发现 @@ -155,7 +155,7 @@ Apollo客户端会把从服务端获取到的配置在本地文件系统缓存 * appId就是应用自己的appId,如100004458 * cluster就是应用使用的集群,一般在本地模式下没有做过配置的话,就是default * namespace就是应用使用的配置namespace,一般是application -![client-local-cache](https://raw.githubusercontent.com/ctripcorp/apollo/master/apollo-client/doc/pic/client-local-cache.png) +![client-local-cache](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/apollo-client/doc/pic/client-local-cache.png) 文件内容以properties格式存储,比如如果有两个key,一个是request.timeout,另一个是batch,那么文件内容就是如下格式: ```properties @@ -220,7 +220,7 @@ env=DEV * PRO * Production environment -更多环境定义,可以参考[Env.java](https://github.com/ctripcorp/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/Env.java) +更多环境定义,可以参考[Env.java](https://github.com/apolloconfig/apollo/blob/master/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/Env.java) #### 1.2.4.2 Cluster(集群) @@ -322,7 +322,7 @@ Apollo从1.6.0版本开始增加访问密钥机制,从而只有经过身份验 > 适用于1.9.0及以上版本 -在使用`@ConfigurationProperties`和存在大量配置项场景下,Spring容器的启动速度会变慢。通过开启该配置可以显著提升启动速度,当配置发生变化时缓存会自动清理,默认为`false`。详见:[issue 3800](https://github.com/ctripcorp/apollo/issues/3800) +在使用`@ConfigurationProperties`和存在大量配置项场景下,Spring容器的启动速度会变慢。通过开启该配置可以显著提升启动速度,当配置发生变化时缓存会自动清理,默认为`false`。详见:[issue 3800](https://github.com/apolloconfig/apollo/issues/3800) 配置方式按照优先级从高到低依次为: 1. 通过Java System Property `apollo.property.names.cache.enable` @@ -377,7 +377,7 @@ apollo.label=YOUR-APOLLO-LABEL 文件位置参考如下: -![app-id-location](https://raw.githubusercontent.com/ctripcorp/apollo/master/apollo-client/doc/pic/app-id-location.png) +![app-id-location](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/apollo-client/doc/pic/app-id-location.png) > 注:apollo.label是用来标识应用身份的标签,格式为string。 @@ -402,7 +402,7 @@ Apollo支持API方式和Spring整合方式,该怎么选择用哪一种方式 * 配置文件中使用替换placeholder,如:`spring.datasource.url: ${someKeyFromApollo:someDefaultValue}` * 直接托管spring的配置,如在apollo中直接配置`spring.datasource.url=jdbc:mysql://localhost:3306/somedb?characterEncoding=utf8` * Spring boot的[@ConfigurationProperties](http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/context/properties/ConfigurationProperties.html)方式 - * 从v0.10.0开始的版本支持placeholder在运行时自动更新,具体参见[PR #972](https://github.com/ctripcorp/apollo/pull/972)。(v0.10.0之前的版本在配置变化后不会重新注入,需要重启才会更新,如果需要配置值实时更新,可以参考后续[3.2.2 Spring Placeholder的使用](#_322-spring-placeholder的使用)的说明) + * 从v0.10.0开始的版本支持placeholder在运行时自动更新,具体参见[PR #972](https://github.com/apolloconfig/apollo/pull/972)。(v0.10.0之前的版本在配置变化后不会重新注入,需要重启才会更新,如果需要配置值实时更新,可以参考后续[3.2.2 Spring Placeholder的使用](#_322-spring-placeholder的使用)的说明) * Spring方式也可以结合API方式使用,如注入Apollo的Config对象,就可以照常通过API方式获取配置了: ```java @ApolloConfig @@ -631,7 +631,7 @@ Spring Boot除了支持上述两种集成方式以外,还支持通过applicati 3. 将Apollo配置加载提到初始化日志系统之前(1.2.0+) -从1.2.0版本开始,如果希望把日志相关的配置(如`logging.level.root=info`或`logback-spring.xml`中的参数)也放在Apollo管理,那么可以额外配置`apollo.bootstrap.eagerLoad.enabled=true`来使Apollo的加载顺序放到日志系统加载之前,更多信息可以参考[PR 1614](https://github.com/ctripcorp/apollo/pull/1614)。参考配置示例如下: +从1.2.0版本开始,如果希望把日志相关的配置(如`logging.level.root=info`或`logback-spring.xml`中的参数)也放在Apollo管理,那么可以额外配置`apollo.bootstrap.eagerLoad.enabled=true`来使Apollo的加载顺序放到日志系统加载之前,更多信息可以参考[PR 1614](https://github.com/apolloconfig/apollo/pull/1614)。参考配置示例如下: ```properties # will inject 'application' namespace in bootstrap phase @@ -797,7 +797,7 @@ Spring应用通常会使用Placeholder来注入配置,使用的格式形如${s 建议在实际使用时尽量给出默认值,以免由于key没有定义导致运行时错误。 -从v0.10.0开始的版本支持placeholder在运行时自动更新,具体参见[PR #972](https://github.com/ctripcorp/apollo/pull/972)。 +从v0.10.0开始的版本支持placeholder在运行时自动更新,具体参见[PR #972](https://github.com/apolloconfig/apollo/pull/972)。 如果需要关闭placeholder在运行时自动更新功能,可以通过以下两种方式关闭: @@ -923,7 +923,7 @@ public class AppConfig { } ``` -需要注意的是,`@ConfigurationProperties`如果需要在Apollo配置变化时自动更新注入的值,需要配合使用[EnvironmentChangeEvent](https://cloud.spring.io/spring-cloud-static/spring-cloud.html#_environment_changes)或[RefreshScope](https://cloud.spring.io/spring-cloud-static/spring-cloud.html#_refresh_scope)。相关代码实现,可以参考apollo-use-cases项目中的[ZuulPropertiesRefresher.java](https://github.com/ctripcorp/apollo-use-cases/blob/master/spring-cloud-zuul/src/main/java/com/ctrip/framework/apollo/use/cases/spring/cloud/zuul/ZuulPropertiesRefresher.java#L48)和apollo-demo项目中的[SampleRedisConfig.java](https://github.com/ctripcorp/apollo/blob/master/apollo-demo/src/main/java/com/ctrip/framework/apollo/demo/spring/springBootDemo/config/SampleRedisConfig.java)以及[SpringBootApolloRefreshConfig.java](https://github.com/ctripcorp/apollo/blob/master/apollo-demo/src/main/java/com/ctrip/framework/apollo/demo/spring/springBootDemo/refresh/SpringBootApolloRefreshConfig.java) +需要注意的是,`@ConfigurationProperties`如果需要在Apollo配置变化时自动更新注入的值,需要配合使用[EnvironmentChangeEvent](https://cloud.spring.io/spring-cloud-static/spring-cloud.html#_environment_changes)或[RefreshScope](https://cloud.spring.io/spring-cloud-static/spring-cloud.html#_refresh_scope)。相关代码实现,可以参考apollo-use-cases项目中的[ZuulPropertiesRefresher.java](https://github.com/ctripcorp/apollo-use-cases/blob/master/spring-cloud-zuul/src/main/java/com/ctrip/framework/apollo/use/cases/spring/cloud/zuul/ZuulPropertiesRefresher.java#L48)和apollo-demo项目中的[SampleRedisConfig.java](https://github.com/apolloconfig/apollo/blob/master/apollo-demo/src/main/java/com/ctrip/framework/apollo/demo/spring/springBootDemo/config/SampleRedisConfig.java)以及[SpringBootApolloRefreshConfig.java](https://github.com/apolloconfig/apollo/blob/master/apollo-demo/src/main/java/com/ctrip/framework/apollo/demo/spring/springBootDemo/refresh/SpringBootApolloRefreshConfig.java) ### 3.2.3 Spring Annotation支持 Apollo同时还增加了几个新的Annotation来简化在Spring环境中的使用。 @@ -1043,7 +1043,7 @@ eureka.client.eurekaServiceUrlPollIntervalSeconds = 60 eureka.instance.preferIpAddress = true ``` -![text-mode-spring-boot-config-sample](https://raw.githubusercontent.com/ctripcorp/apollo/master/doc/images/text-mode-spring-boot-config-sample.png) +![text-mode-spring-boot-config-sample](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/text-mode-spring-boot-config-sample.png) ## 3.3 Demo 项目中有一个样例客户端的项目:`apollo-demo`,具体信息可以参考[Apollo开发指南](zh/development/apollo-development-guide)中的[2.3 Java样例客户端启动](zh/development/apollo-development-guide?id=_23-java样例客户端启动)部分。 @@ -1051,7 +1051,7 @@ eureka.instance.preferIpAddress = true 更多使用案例Demo可以参考[Apollo使用场景和示例代码](https://github.com/ctripcorp/apollo-use-cases)。 # 四、客户端设计 -![client-architecture](https://github.com/ctripcorp/apollo/raw/master/doc/images/client-architecture.png) +![client-architecture](https://github.com/apolloconfig/apollo/raw/master/doc/images/client-architecture.png) 上图简要描述了Apollo客户端的实现原理: @@ -1103,7 +1103,7 @@ appId就是应用的appId,如100004458。 * appId就是应用自己的appId,如100004458 * cluster就是应用使用的集群,一般在本地模式下没有做过配置的话,就是default * namespace就是应用使用的配置namespace,一般是application -![client-local-cache](https://raw.githubusercontent.com/ctripcorp/apollo/master/apollo-client/doc/pic/client-local-cache.png) +![client-local-cache](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/apollo-client/doc/pic/client-local-cache.png) 文件内容以properties格式存储,比如如果有两个key,一个是request.timeout,另一个是batch,那么文件内容就是如下格式: ```properties @@ -1136,7 +1136,7 @@ batch=2000 ## 6.3 写测试类 -更多使用demo可以参考[ApolloMockServerApiTest.java](https://github.com/ctripcorp/apollo/blob/master/apollo-mockserver/src/test/java/com/ctrip/framework/apollo/mockserver/ApolloMockServerApiTest.java)和[ApolloMockServerSpringIntegrationTest.java](https://github.com/ctripcorp/apollo/blob/master/apollo-mockserver/src/test/java/com/ctrip/framework/apollo/mockserver/ApolloMockServerSpringIntegrationTest.java)。 +更多使用demo可以参考[ApolloMockServerApiTest.java](https://github.com/apolloconfig/apollo/blob/master/apollo-mockserver/src/test/java/com/ctrip/framework/apollo/mockserver/ApolloMockServerApiTest.java)和[ApolloMockServerSpringIntegrationTest.java](https://github.com/apolloconfig/apollo/blob/master/apollo-mockserver/src/test/java/com/ctrip/framework/apollo/mockserver/ApolloMockServerSpringIntegrationTest.java)。 ```java @RunWith(SpringJUnit4ClassRunner.class) diff --git a/docs/zh/usage/other-language-client-user-guide.md b/docs/zh/usage/other-language-client-user-guide.md index 772bb87c662..e0f5fd6e856 100644 --- a/docs/zh/usage/other-language-client-user-guide.md +++ b/docs/zh/usage/other-language-client-user-guide.md @@ -97,7 +97,7 @@ Apollo提供了基于Http long polling的配置更新推送通知,第三方客 ### 1.4.1 配置更新推送实现思路 -这里建议大家可以参考Apollo的Java实现:[RemoteConfigLongPollService.java](https://github.com/ctripcorp/apollo/blob/master/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigLongPollService.java),代码量200多行,总体上还是比较简单的。 +这里建议大家可以参考Apollo的Java实现:[RemoteConfigLongPollService.java](https://github.com/apolloconfig/apollo/blob/master/apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigLongPollService.java),代码量200多行,总体上还是比较简单的。 #### 1.4.1.1 初始化 首先需要确定哪些namespace需要配置更新推送,Apollo的实现方式是程序第一次获取某个namespace的配置时就会来注册一下,我们就知道有哪些namespace需要配置更新推送了。 @@ -160,7 +160,7 @@ Apollo从1.6.0版本开始增加访问密钥机制,从而只有经过身份验 | Header | Value | 备注 | |---------------|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Authorization | Apollo ${appId}:${signature} | appId: 应用的appId,signature:使用访问密钥对当前时间以及所访问的URL加签后的值,具体实现可以参考[Signature.signature](https://github.com/ctripcorp/apollo/blob/aa184a2e11d6e7e3f519d860d69f3cf30ccfcf9c/apollo-core/src/main/java/com/ctrip/framework/apollo/core/signature/Signature.java#L22) | +| Authorization | Apollo ${appId}:${signature} | appId: 应用的appId,signature:使用访问密钥对当前时间以及所访问的URL加签后的值,具体实现可以参考[Signature.signature](https://github.com/apolloconfig/apollo/blob/aa184a2e11d6e7e3f519d860d69f3cf30ccfcf9c/apollo-core/src/main/java/com/ctrip/framework/apollo/core/signature/Signature.java#L22) | | Timestamp | 从`1970-1-1 00:00:00 UTC+0`到现在所经过的毫秒数 | 可以参考[System.currentTimeMillis](https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#currentTimeMillis()) | ## 1.6 错误码说明 From 02a4df52a8682f57b2d917dfd2eda763ada20ace Mon Sep 17 00:00:00 2001 From: sy-records <52o@qq52o.cn> Date: Sat, 30 Oct 2021 09:30:10 +0800 Subject: [PATCH 2/4] docs: Fix image link error --- docs/zh/usage/apollo-user-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/usage/apollo-user-guide.md b/docs/zh/usage/apollo-user-guide.md index aa0d5aeaf86..ea68bca0547 100644 --- a/docs/zh/usage/apollo-user-guide.md +++ b/docs/zh/usage/apollo-user-guide.md @@ -349,7 +349,7 @@ Apollo目前提供Java客户端,具体信息请点击[Java客户端使用文 ![manual-input-gray-release-label](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/manual-input-gray-release-label.png) -![manual-input-gray-release-label-2](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/manual-input-gray-release-label-2.png) +![manual-input-gray-release-label-2](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/manual-input-gray-release-label2.png) ![gray-release-rule-saved](https://cdn.jsdelivr.net/gh/apolloconfig/apollo@master/doc/images/gray-release/gray-release-rule-saved.png) From d0c7dc9e7bdf00e2fa88ab30ae525f7961a703ed Mon Sep 17 00:00:00 2001 From: lepdou Date: Sun, 31 Oct 2021 18:41:48 +0800 Subject: [PATCH 3/4] 1. optimize logo's size 2. change search input's with from 350px to 375px 3. add switch language icon --- CHANGES.md | 1 + .../resources/static/styles/common-style.css | 16 ++++++++++++++++ .../main/resources/static/views/common/nav.html | 7 ++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 468d756a1b1..190c2ed1eb3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -21,6 +21,7 @@ Apollo 2.0.0 * [Bump version to 2.0.0 and drop java 1.7 support](https://github.com/apolloconfig/apollo/pull/4015) * [Optimize home page style](https://github.com/apolloconfig/apollo/pull/4052) * [Support Java 17](https://github.com/apolloconfig/apollo/pull/4060) +* [Optimize top navbar style](https://github.com/apolloconfig/apollo/pull/4073) ------------------ All issues and pull requests are [here](https://github.com/ctripcorp/apollo/milestone/8?closed=1) diff --git a/apollo-portal/src/main/resources/static/styles/common-style.css b/apollo-portal/src/main/resources/static/styles/common-style.css index a00664bad10..f55e1548c8f 100644 --- a/apollo-portal/src/main/resources/static/styles/common-style.css +++ b/apollo-portal/src/main/resources/static/styles/common-style.css @@ -1099,6 +1099,10 @@ table th { font-size: 14px; } +#app-search-list { + width: 375px; +} + /*backTop component style*/ .back-top { position: fixed; @@ -1125,3 +1129,15 @@ table th { .back-top:active { opacity: .6; } + +.navbar-nav .nav-switch-lang { + width: 12px; + height: 12px; + margin-top: -4px; + margin-right: -5px; +} + +.navbar-header .logo { + height: 35px; + margin-top: -4px +} diff --git a/apollo-portal/src/main/resources/static/views/common/nav.html b/apollo-portal/src/main/resources/static/views/common/nav.html index ec3722c66c2..a2bf43359e9 100644 --- a/apollo-portal/src/main/resources/static/views/common/nav.html +++ b/apollo-portal/src/main/resources/static/views/common/nav.html @@ -30,10 +30,10 @@ ng-show="viewMode == 2 && showSideBar" ng-click="showSideBar = !showSideBar"> -