This is an automated email from the ASF dual-hosted git repository. ningjiang pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-website.git
commit 80fee82d25c61e321316b2187aebc1037cdd14ea Author: Willem Jiang <[email protected]> AuthorDate: Mon May 21 17:51:53 2018 +0800 Publish the website --- .../assets/images/scaffold/ArchetypeProjects.png | Bin 0 -> 105537 bytes content/assets/images/scaffold/BoundedContext.png | Bin 0 -> 81453 bytes content/assets/images/scaffold/EventStorming.png | Bin 634632 -> 28699 bytes .../assets/images/scaffold/MicroserviceDesign1.png | Bin 0 -> 2999 bytes .../assets/images/scaffold/MicroserviceDesign2.png | Bin 0 -> 6771 bytes .../assets/images/scaffold/MicroserviceDesign3.png | Bin 0 -> 16885 bytes .../assets/images/scaffold/MicroserviceDesign4.png | Bin 0 -> 22324 bytes .../developers/{index.html => contributing.html} | 107 ++++++++++++------ content/cn/developers/index.html | 11 ++ content/cn/developers/release-guide/index.html | 11 ++ .../developers/setup-committer-rights/index.html | 11 ++ .../setup-develop-environment/index.html | 11 ++ content/cn/developers/submit-codes/index.html | 11 ++ .../cn/developers/subscribe-mail-list/index.html | 11 ++ content/cn/developers/use-gitter/index.html | 11 ++ content/cn/developers/use-jira/index.html | 11 ++ .../index.html | 106 +++++++++++++----- .../developers/{index.html => contributing.html} | 92 ++++++++++++---- content/developers/index.html | 11 ++ content/developers/release-guide/index.html | 11 ++ content/developers/{index.html => roadmap.html} | 41 ++++--- .../developers/setup-committer-rights/index.html | 11 ++ .../setup-develop-environment/index.html | 11 ++ content/developers/submit-codes/index.html | 11 ++ content/developers/use-jira/index.html | 11 ++ content/feed.xml | 108 ++++++++++++++----- content/sitemap.xml | 120 +++++++++++---------- 27 files changed, 548 insertions(+), 180 deletions(-) diff --git a/content/assets/images/scaffold/ArchetypeProjects.png b/content/assets/images/scaffold/ArchetypeProjects.png new file mode 100644 index 0000000..a897467 Binary files /dev/null and b/content/assets/images/scaffold/ArchetypeProjects.png differ diff --git a/content/assets/images/scaffold/BoundedContext.png b/content/assets/images/scaffold/BoundedContext.png new file mode 100644 index 0000000..5bf089f Binary files /dev/null and b/content/assets/images/scaffold/BoundedContext.png differ diff --git a/content/assets/images/scaffold/EventStorming.png b/content/assets/images/scaffold/EventStorming.png index 5c0e2b7..ccc5bf9 100644 Binary files a/content/assets/images/scaffold/EventStorming.png and b/content/assets/images/scaffold/EventStorming.png differ diff --git a/content/assets/images/scaffold/MicroserviceDesign1.png b/content/assets/images/scaffold/MicroserviceDesign1.png new file mode 100644 index 0000000..774b7f7 Binary files /dev/null and b/content/assets/images/scaffold/MicroserviceDesign1.png differ diff --git a/content/assets/images/scaffold/MicroserviceDesign2.png b/content/assets/images/scaffold/MicroserviceDesign2.png new file mode 100644 index 0000000..7525315 Binary files /dev/null and b/content/assets/images/scaffold/MicroserviceDesign2.png differ diff --git a/content/assets/images/scaffold/MicroserviceDesign3.png b/content/assets/images/scaffold/MicroserviceDesign3.png new file mode 100644 index 0000000..5d6fcf0 Binary files /dev/null and b/content/assets/images/scaffold/MicroserviceDesign3.png differ diff --git a/content/assets/images/scaffold/MicroserviceDesign4.png b/content/assets/images/scaffold/MicroserviceDesign4.png new file mode 100644 index 0000000..8d2bf70 Binary files /dev/null and b/content/assets/images/scaffold/MicroserviceDesign4.png differ diff --git a/content/cn/developers/index.html b/content/cn/developers/contributing.html similarity index 66% copy from content/cn/developers/index.html copy to content/cn/developers/contributing.html index 3621fb3..d1c9835 100644 --- a/content/cn/developers/index.html +++ b/content/cn/developers/contributing.html @@ -19,12 +19,12 @@ -<title>开发者指南 - Apache ServiceComb (incubating)</title> +<title>contributing to Apache ServiceComb - Apache ServiceComb (incubating)</title> -<meta name="description" content="开发者指南"> +<meta name="description" content="Contributing to Apache ServiceComb"> @@ -33,21 +33,21 @@ <meta property="og:locale" content="cn"> <meta property="og:site_name" content="Apache ServiceComb (incubating)"> -<meta property="og:title" content="开发者指南"> +<meta property="og:title" content="contributing to Apache ServiceComb"> - <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/cn/developers/"> - <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/cn/developers/"> + <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/cn/developers/contributing"> + <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/cn/developers/contributing"> - <meta property="og:description" content="开发者指南"> + <meta property="og:description" content="Contributing to Apache ServiceComb"> <meta name="twitter:site" content="@ServiceComb"> - <meta name="twitter:title" content="开发者指南"> - <meta name="twitter:description" content="开发者指南"> + <meta name="twitter:title" content="contributing to Apache ServiceComb"> + <meta name="twitter:description" content="Contributing to Apache ServiceComb"> <meta name="twitter:url" content=""> @@ -221,7 +221,7 @@ - <a href=/developers/>English</a> + <a href=/developers/contributing>English</a> </div> </nav> @@ -272,6 +272,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> @@ -354,16 +365,16 @@ <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> - <meta itemprop="headline" content="开发者指南"> - <meta itemprop="description" content="开发者指南"> + <meta itemprop="headline" content="contributing to Apache ServiceComb"> + <meta itemprop="description" content="Contributing to Apache ServiceComb"> - <meta itemprop="dateModified" content="June 24, 2017"> + <meta itemprop="dateModified" content="May 20, 2018"> <div class="page__inner-wrap"> <header> - <h1 class="page__title" itemprop="headline">开发者指南 + <h1 class="page__title" itemprop="headline">contributing to Apache ServiceComb </h1> </header> @@ -374,52 +385,86 @@ <aside class="sidebar__right"> <nav class="toc"> <!-- <header><h4 class="nav__title"><i class="fa fa-file-text"></i> 在本页上</h4></header> --> +<ul class="toc__menu" id="markdown-toc"> + <li><a href="#contributing-to-apache-servicecomb" id="markdown-toc-contributing-to-apache-servicecomb">Contributing to Apache ServiceComb</a></li> + <li><a href="#getting-in-touch" id="markdown-toc-getting-in-touch">Getting in touch</a></li> + <li><a href="#improving-the-documentation" id="markdown-toc-improving-the-documentation">Improving the documentation</a></li> + <li><a href="#if-you-find-a-bug-or-problem" id="markdown-toc-if-you-find-a-bug-or-problem">If you find a bug or problem</a></li> + <li><a href="#working-on-the-code" id="markdown-toc-working-on-the-code">Working on the code</a></li> +</ul> </nav> </aside> -<p><strong>ServiceComb</strong> 项目托管在<a href="https://github.com/apache?q=incubator-servicecomb">Github</a>上,其各子项目如下表所示:</p> +<h2 id="contributing-to-apache-servicecomb">Contributing to Apache ServiceComb</h2> +<p>There are many ways that you can help make ServiceComb a better piece of solution for the Microservice - please dive in and help!</p> +<ul> + <li>Try surf the documentations - if somethings confusing or not clear, let us know.</li> + <li>Download the code & try it out and see what you think.</li> + <li>Browse the source code. Ask question in the Gitter if you want to know more detail about the code.</li> + <li>Want to do some hacking? take a look at our <a href="https://issues.apache.org/jira/browse/SCB">issue tracker</a> for open issues or features that need to implemented, take ownership of an issue and try fix it.</li> + <li>If you are a new to ServiceComb and would like to help us, you can also find <a href="https://issues.apache.org/jira/browse/SCB-333?jql=project%20%3D%20SCB%20AND%20status%20%3D%20Open%20AND%20fixVersion%20in%20(EMPTY%2C%20java-chassis-1.0.0-m2)%20AND%20labels%20%3D%20newbie">some easy to resolve issues</a>.</li> + <li>Leave a comment on the issue to let us know you are working on it and add yourself as a watcher to get informed about all modifications.</li> +</ul> + +<h2 id="getting-in-touch">Getting in touch</h2> + +<p>There are various ways of communicating with the Camel community.</p> +<ul> + <li>Join us on the [Mailing list](http://servicecomb.incubator.apache.org/cn/developers/subscribe-mail-list/ and take part in any conversations</li> + <li>Pop by on <a href="https://gitter.im/ServiceCombUsers/Lobby">Gitter</a> and say hi</li> +</ul> + +<h2 id="improving-the-documentation">Improving the documentation</h2> + +<p>Documentation is massively important to help users make the most of Apache ServiceComb and its probably the area that needs the most help! +So if you are interested in helping the documentation effort; whether its just to fix a page here or there, correct a link or even write a tutorial or improve what documentation is already there please do dive in and help! +Most of the documentation is stored as the markdown text, you can edit this page in the website from the below edit it link if you logined in the github, then you can send a PR for it.</p> + +<h2 id="if-you-find-a-bug-or-problem">If you find a bug or problem</h2> + +<p>Please raise a new issue in our <a href="https://issues.apache.org/jira/browse/SCB">issue tracker</a> +If you can create a JUnit test case then your issue is more likely to be resolved quicker. +e.g. take a look at some of the existing <a href="https://github.com/apache/incubator-servicecomb-saga/tree/master/alpha/alpha-core/src/test/java/org/apache/servicecomb/saga/alpha/core">unit tests cases</a> +Then we can add your issue to git and then we’ll know when its really fixed and we can ensure that the problem stays fixed in future releases.</p> + +<h2 id="working-on-the-code">Working on the code</h2> + +<p>We recommend to work on the code from <a href="https://github.com/apache?q=incubator-servicecomb">Github</a>, it has the following sub-projects:</p> <table> <thead> <tr> - <th>项目名</th> - <th>项目简介</th> - <th>编程语言</th> + <th>Project Name</th> + <th>Project Introduction</th> + <th>Programming Language</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/apache/incubator-servicecomb-java-chassis">Java Chassis</a></td> - <td>Java微服务框架(SDK)</td> + <td>Java Microservice Framework(SDK)</td> <td>Java</td> </tr> <tr> <td><a href="https://github.com/apache/incubator-servicecomb-service-center">Service Center</a></td> - <td>服务中心(服务注册及发现)</td> + <td>Service registration and discovery</td> <td>Go</td> </tr> <tr> <td><a href="https://github.com/apache/incubator-servicecomb-saga">Saga</a></td> - <td>微服务数据最终一致性实现</td> + <td>Data Eventually Consistency Solution for Microservice</td> <td>Java</td> </tr> <tr> <td><a href="https://github.com/apache/incubator-servicecomb-website">Website</a></td> - <td>ServiceComb网站</td> + <td>ServiceComb Website</td> <td>Markdown</td> </tr> </tbody> </table> -<p>参与 ServiceComb 项目并为其作出贡献的方法有很多:代码实现、测试编写、流程工具改进、文档完善等。您可以选择上述任何一个或多个感兴趣的项目进行贡献。具体贡献事宜可参考以下指南:</p> - -<ul> - <li><a href="/cn/developers/setup-develop-environment/">开发环境准备</a>:主要介绍git,JDK,Maven以及IDE的安装及配置。</li> - <li><a href="/cn/developers/submit-codes/">代码提交指南</a>:主要介绍功能特性需求及现有bug的获取途径,提交代码前的测试事宜,如何提交PR以及如何解决冲突等。</li> -</ul> - -<p>同时,也欢迎您订阅<a href="mailto:[email protected]">ServiceComb邮件列表</a>了解 ServiceComb 项目的开发动态以及进行话题讨论。订阅的方法可参阅<a href="/cn/developers/subscribe-mail-list/">邮件列表订阅指南</a>。</p> +<p>If you intend to work on the code and provide patches and other work you want to submit to the Apache ServiceComb projects, then you can fork the project on github and work on your own fork. The custom work you do should be done on branches you create, which can then be committed and pushed upstream, and then submitted to Apache ServiceComb as PRs (pull requests). You can find many resources online how to work on github projects and how to submit work to these projects.</p> </section> @@ -475,8 +520,8 @@ <div class="col"> <ul> <p class="header">贡献</p> - <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _developers/cn/developer-guide.md">报告本网页问题</a></li> - <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_developers/cn/developer-guide.md">在Github上编辑此页</a></li> + <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _developers/cn/contributing.md">报告本网页问题</a></li> + <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_developers/cn/contributing.md">在Github上编辑此页</a></li> <li><a href="/cn/developers/submit-codes/">代码提交指南</a></li> </ul> </div> diff --git a/content/cn/developers/index.html b/content/cn/developers/index.html index 3621fb3..8b7b8c6 100644 --- a/content/cn/developers/index.html +++ b/content/cn/developers/index.html @@ -272,6 +272,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> diff --git a/content/cn/developers/release-guide/index.html b/content/cn/developers/release-guide/index.html index dfa36a4..f51a8d0 100644 --- a/content/cn/developers/release-guide/index.html +++ b/content/cn/developers/release-guide/index.html @@ -274,6 +274,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> diff --git a/content/cn/developers/setup-committer-rights/index.html b/content/cn/developers/setup-committer-rights/index.html index 6d4d693..b49f498 100644 --- a/content/cn/developers/setup-committer-rights/index.html +++ b/content/cn/developers/setup-committer-rights/index.html @@ -272,6 +272,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> diff --git a/content/cn/developers/setup-develop-environment/index.html b/content/cn/developers/setup-develop-environment/index.html index 36a048e..57b2721 100644 --- a/content/cn/developers/setup-develop-environment/index.html +++ b/content/cn/developers/setup-develop-environment/index.html @@ -272,6 +272,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> diff --git a/content/cn/developers/submit-codes/index.html b/content/cn/developers/submit-codes/index.html index e4d3e88..804fefa 100644 --- a/content/cn/developers/submit-codes/index.html +++ b/content/cn/developers/submit-codes/index.html @@ -272,6 +272,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> diff --git a/content/cn/developers/subscribe-mail-list/index.html b/content/cn/developers/subscribe-mail-list/index.html index 4ee1318..729549a 100644 --- a/content/cn/developers/subscribe-mail-list/index.html +++ b/content/cn/developers/subscribe-mail-list/index.html @@ -272,6 +272,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> diff --git a/content/cn/developers/use-gitter/index.html b/content/cn/developers/use-gitter/index.html index 1c629fd..9c2c70d 100644 --- a/content/cn/developers/use-gitter/index.html +++ b/content/cn/developers/use-gitter/index.html @@ -272,6 +272,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> diff --git a/content/cn/developers/use-jira/index.html b/content/cn/developers/use-jira/index.html index 3d1304d..67deab8 100644 --- a/content/cn/developers/use-jira/index.html +++ b/content/cn/developers/use-jira/index.html @@ -272,6 +272,17 @@ + <a href="cn/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">如何做贡献</span></a> + + + + </li> + + <li> + + + + <a href="/cn/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">开发环境准备</span></a> diff --git a/content/cn/docs/easy-build-microservice-system-part-I/index.html b/content/cn/docs/easy-build-microservice-system-part-I/index.html index 236e979..158644c 100644 --- a/content/cn/docs/easy-build-microservice-system-part-I/index.html +++ b/content/cn/docs/easy-build-microservice-system-part-I/index.html @@ -426,55 +426,105 @@ java -jar xxxx.jar <p>ServiceComb Java Chassis提供的脚手架具备更明显的优势:</p> <ol> - <li>对每一种编程模型都提供了对应的<a href="https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/archetypes">Archetypes项目</a>,包括SpringMVC、JAXRS、POJO和Spring Boot Starter;</li> - <li>生成的项目除了在POM中自动添加必要的依赖,还会提供Producer和Consumer示例代码(Hello World);</li> - <li>不久后会进一步提供<strong>Edge Server</strong>、<strong>Authcation Server</strong>等更贴近业务的脚手架项目,让用户能快速构建体系完整的微服务系统。</li> + <li> + <p>对每一种编程模型都提供了对应的<a href="https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/archetypes">Archetypes项目</a>,包括SpringMVC、JAXRS、POJO和Spring Boot Starter;</p> + </li> + <li> + <p>生成的项目除了在POM中自动添加必要的依赖,还会提供Producer和Consumer示例代码(Hello World);</p> + </li> + <li> + <p>不久后会进一步提供<strong>Edge Server</strong>、<strong>Authcation Server</strong>等更贴近业务的脚手架项目,让用户能快速构建体系完整的微服务系统。</p> + </li> </ol> -<p>什么叫一个完整的微服务系统呢?我们可以拿一个具体的场景做例子,会更有感觉:</p> +<p>前面牛刀小试中展示的一键构建微服务,正是基于它们:</p> + +<p><img src="/assets/images/scaffold/ArchetypeProjects.png" alt="ArchetypeProjects" /></p> + +<p>那么什么叫一个完整的微服务系统呢?我们可以拿一个具体的场景做例子,会更有感觉:</p> <h3 id="场景地产crm">场景:地产CRM</h3> <p>您经营着一家房地产开发商,销售房产,迫切需要一套销售系统,考虑到微服务的优势,您决定使用微服务的方式构建系统;主要的业务流程也非常简单:用户前来购买购买产品(房产),首先需要登记用户信息,并缴纳一定数量的定金,待交易当日,挑选心仪的产品(房产),支付尾款,完成交易。</p> <h4 id="使用ddd指导地产crm系统的设计">使用DDD指导地产CRM系统的设计</h4> -<p>微服务系统的设计自然离不开DDD(Domain-Driven Design),它由Eric Evans提出,是一种全新的系统设计和建模方法,这里的模型指的就是领域模型(Domain Model)。领域模型通过聚合(Aggregate)组织在一起,聚合间有明显的业务边界,这些边界将领域划分为一个个界限上下文(Bounded Context)。Martin Fowler对它们都有详细的<a href="https://martinfowler.com/tags/domain%20driven%20design.html">解读</a>。</p> +<p>微服务系统的设计自然离不开DDD(Domain-Driven Design),它由Eric Evans提出,是一种全新的系统设计和建模方法,这里的模型指的就是领域模型(Domain Model)。领域模型通过聚合(Aggregate)组织在一起,聚合间有明显的业务边界,这些边界将领域划分为一个个限界上下文(Bounded Context)。Martin Fowler对它们都有详细的<a href="https://martinfowler.com/tags/domain%20driven%20design.html">解读</a>。</p> <p>理论概念都搞清楚了,那么怎么来找模型和聚合呢?一个非常流行的方法就是<a href="https://en.wikipedia.org/wiki/Event_storming">Event Storming</a>,它是由Alberto Brandolini发明,经历了DDD社区和很多团队的实践,也是一种非常有参与感的团队活动:</p> <p><img src="/assets/images/scaffold/EventStorming.png" alt="EventStorming" /></p> -<p>通过持续讨论和反复改进后,我们就能够将业务面(也可以称为问题域)清晰的梳理出来:</p> +<p>上图就是我们对地产CRM这个场景使用Event Storming探索的结果,现在我们能够将限界上下文清晰的梳理出来:</p> + +<p><img src="/assets/images/scaffold/BoundedContext.png" alt="BoundedContext" /></p> -<p><img src="/assets/images/scaffold/EventStormingResult.png" alt="EventStormingResult" /></p> +<blockquote> + <p>提示:Event Storming是一项非常有创造性的活动,也是一个持续讨论和反复改进的过程,不同的团队关注的核心域(Core Domain)不同,得到的最终结果也会有差异。我们的目的是为了演示完整的微服务系统构建的过程,并不涉及商业核心竞争力方面的探讨,因此没有Core Domain和Sub Domain之类的偏重。</p> +</blockquote> <h4 id="将分析成果转化为方案域设计">将分析成果转化为方案域设计</h4> -<p>当我们完成所有的界限上下文的识别,可以直接将它们落地为微服务:</p> +<p>当我们完成所有的限界上下文的识别后,可以直接将它们落地为微服务:</p> -<p><img src="/assets/images/scaffold/SystemComponents.png" alt="system-components" /></p> +<p><img src="/assets/images/scaffold/MicroserviceDesign1.png" alt="MicroserviceDesign1" /></p> + +<ol> + <li>用户服务:提供用户信息管理服务,这里保存这用户的账号和密码,负责登录和认证;</li> + <li>产品(房产)服务:提供产品管理服务,保存着房产的信息诸如价格、是否已售出等信息;</li> + <li>支付服务:提供交易时支付服务,模拟对接银行支付定金,以及购房时支付尾款;</li> +</ol> + +<p>由于完成一笔交易是一个复杂的流程,与这三个微服务都有关联,因此我们引入了一个复合服务——交易服务:</p> + +<p><img src="/assets/images/scaffold/MicroserviceDesign2.png" alt="MicroserviceDesign2" /></p> -<p>各微服务所包含的功能(即对应的命令和事件)如下:</p> <ol> - <li>前端UI服务:用户交互界面;</li> - <li>Edge服务:很多时候也被称为API网关(API Gateway),负责集中认证、动态路由等等;</li> - <li>用户服务:提供用户信息管理服务,这里保存这用户的账号和密码,负责登录和认证;同时由于房产是非常昂贵的产品,交易前需要收取一定的定金,因此每一个用户都会保存已缴纳的定金金额;</li> - <li>产品(资源)服务:提供产品管理服务,保存着房产的信息诸如价格、是否已售出等信息;</li> - <li>支付服务:提供交易时支付服务,模拟对接银行支付购房尾款;</li> <li>交易服务:提供产品交易服务,它通过编排调用将整个交易流程串起来,交易服务中有两个流程: - 6.1. 定金支付 - Step1:通过用户服务验证用户身份; - Step2:通过支付服务请求银行扣款; - Step3:通过用户服务增加用户账号内的定金。 - 后面两个步骤需要保证事务一致性。<br /> - 6.2. 购房交易 - Step1 :通过用户服务验证用户身份; - Step2 :通过资源服务确定用户希望购买的资源(房产)尚未售出; - Step3 :通过资源服务标记目标资源(房产)已售出; - Step4 :通过用户服务从用户账号中扣除定金; - Step5 :通过支付服务请求银行扣剩下的尾款; - 最后三个步骤需要保证事务一致性。</li> + <ul> + <li>定金支付</li> + </ul> + + <p>Step1:通过用户服务验证用户身份;</p> + + <p>Step2:通过支付服务请求银行扣款,增加定金账号内的定金;</p> + </li> +</ol> + +<ul> + <li> + <p>购房交易</p> + + <p>Step1:通过用户服务验证用户身份;</p> + + <p>Step2:通过资源服务确定用户希望购买的资源(房产)尚未售出;</p> + + <p>Step3:通过资源服务标记目标资源(房产)已售出;</p> + + <p>Step4:通过支付服务请求扣减定金账号内的定金,以及银行扣剩下的尾款;</p> + + <p>最后两个步骤需要保证事务一致性,其中Step4包含两个扣款操作。</p> + </li> +</ul> + +<p>之后,我们引入Edge服务提供统一入口:</p> + +<p><img src="/assets/images/scaffold/MicroserviceDesign3.png" alt="MicroserviceDesign3" /></p> + +<ol> + <li>Edge服务:很多时候也被称为API网关(API Gateway),负责集中认证、动态路由等等;</li> +</ol> + +<blockquote> + <p>提示:Edge服务需要依赖服务注册-发现机制,因此同时导入了ServiceCenter。</p> +</blockquote> + +<p>最后还需要提供UI:</p> + +<p><img src="/assets/images/scaffold/MicroserviceDesign4.png" alt="MicroserviceDesign4" /></p> + +<ol> + <li>前端UI(同样以微服务方式提供):用户交互界面;</li> </ol> -<p>从下一篇文章开始,我们将和您一起轻松愉快的开启构建之旅,敬请期待!</p> +<p>至此,DDD设计地产CRM的工作就结束了,从下一篇文章开始,我们将和您一起轻松愉快的开启代码构建之旅,敬请期待!</p> </section> diff --git a/content/developers/index.html b/content/developers/contributing.html similarity index 67% copy from content/developers/index.html copy to content/developers/contributing.html index 1e0dd86..fff80fb 100644 --- a/content/developers/index.html +++ b/content/developers/contributing.html @@ -19,12 +19,12 @@ -<title>Developer Guide - Apache ServiceComb (incubating)</title> +<title>Contributing to Apache ServiceComb - Apache ServiceComb (incubating)</title> -<meta name="description" content="Developer Guide"> +<meta name="description" content="Contributing to Apache ServiceComb"> @@ -33,21 +33,21 @@ <meta property="og:locale" content="en"> <meta property="og:site_name" content="Apache ServiceComb (incubating)"> -<meta property="og:title" content="Developer Guide"> +<meta property="og:title" content="Contributing to Apache ServiceComb"> - <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/developers/"> - <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/developers/"> + <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/developers/contributing"> + <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/developers/contributing"> - <meta property="og:description" content="Developer Guide"> + <meta property="og:description" content="Contributing to Apache ServiceComb"> <meta name="twitter:site" content="@ServiceComb"> - <meta name="twitter:title" content="Developer Guide"> - <meta name="twitter:description" content="Developer Guide"> + <meta name="twitter:title" content="Contributing to Apache ServiceComb"> + <meta name="twitter:description" content="Contributing to Apache ServiceComb"> <meta name="twitter:url" content=""> @@ -220,7 +220,7 @@ <div class="nav-lang"> - <a href=/cn/developers/>中文</a> + <a href=/cn/developers/contributing>中文</a> </div> </nav> @@ -271,6 +271,17 @@ + <a href="/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">Contributing to Apache ServiceComb</span></a> + + + + </li> + + <li> + + + + <a href="/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">Develop Environment Setup</span></a> @@ -331,16 +342,16 @@ <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> - <meta itemprop="headline" content="Developer Guide"> - <meta itemprop="description" content="Developer Guide"> + <meta itemprop="headline" content="Contributing to Apache ServiceComb"> + <meta itemprop="description" content="Contributing to Apache ServiceComb"> - <meta itemprop="dateModified" content="June 24, 2017"> + <meta itemprop="dateModified" content="May 20, 2018"> <div class="page__inner-wrap"> <header> - <h1 class="page__title" itemprop="headline">Developer Guide + <h1 class="page__title" itemprop="headline">Contributing to Apache ServiceComb </h1> </header> @@ -351,11 +362,52 @@ <aside class="sidebar__right"> <nav class="toc"> <!-- <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header> --> +<ul class="toc__menu" id="markdown-toc"> + <li><a href="#contributing-to-apache-servicecomb" id="markdown-toc-contributing-to-apache-servicecomb">Contributing to Apache ServiceComb</a></li> + <li><a href="#getting-in-touch" id="markdown-toc-getting-in-touch">Getting in touch</a></li> + <li><a href="#improving-the-documentation" id="markdown-toc-improving-the-documentation">Improving the documentation</a></li> + <li><a href="#if-you-find-a-bug-or-problem" id="markdown-toc-if-you-find-a-bug-or-problem">If you find a bug or problem</a></li> + <li><a href="#working-on-the-code" id="markdown-toc-working-on-the-code">Working on the code</a></li> +</ul> </nav> </aside> -<p><strong>ServiceComb</strong> is hosted on <a href="https://github.com/apache?q=incubator-servicecomb">Github</a>, it has the following sub-projects:</p> +<h2 id="contributing-to-apache-servicecomb">Contributing to Apache ServiceComb</h2> +<p>There are many ways that you can help make ServiceComb a better piece of solution for the Microservice - please dive in and help!</p> +<ul> + <li>Try surf the documentations - if somethings confusing or not clear, let us know.</li> + <li>Download the code & try it out and see what you think.</li> + <li>Browse the source code. Ask question in the Gitter if you want to know more detail about the code.</li> + <li>Want to do some hacking? take a look at our <a href="https://issues.apache.org/jira/browse/SCB">issue tracker</a> for open issues or features that need to implemented, take ownership of an issue and try fix it.</li> + <li>If you are a new to ServiceComb and would like to help us, you can also find <a href="https://issues.apache.org/jira/browse/SCB-333?jql=project%20%3D%20SCB%20AND%20status%20%3D%20Open%20AND%20fixVersion%20in%20(EMPTY%2C%20java-chassis-1.0.0-m2)%20AND%20labels%20%3D%20newbie">some easy to resolve issues</a>.</li> + <li>Leave a comment on the issue to let us know you are working on it and add yourself as a watcher to get informed about all modifications.</li> +</ul> + +<h2 id="getting-in-touch">Getting in touch</h2> + +<p>There are various ways of communicating with the Camel community.</p> +<ul> + <li>Join us on the [Mailing list](http://servicecomb.incubator.apache.org/cn/developers/subscribe-mail-list/ and take part in any conversations</li> + <li>Pop by on <a href="https://gitter.im/ServiceCombUsers/Lobby">Gitter</a> and say hi</li> +</ul> + +<h2 id="improving-the-documentation">Improving the documentation</h2> + +<p>Documentation is massively important to help users make the most of Apache ServiceComb and its probably the area that needs the most help! +So if you are interested in helping the documentation effort; whether its just to fix a page here or there, correct a link or even write a tutorial or improve what documentation is already there please do dive in and help! +Most of the documentation is stored as the markdown text, you can edit this page in the website from the below edit it link if you logined in the github, then you can send a PR for it.</p> + +<h2 id="if-you-find-a-bug-or-problem">If you find a bug or problem</h2> + +<p>Please raise a new issue in our <a href="https://issues.apache.org/jira/browse/SCB">issue tracker</a> +If you can create a JUnit test case then your issue is more likely to be resolved quicker. +e.g. take a look at some of the existing <a href="https://github.com/apache/incubator-servicecomb-saga/tree/master/alpha/alpha-core/src/test/java/org/apache/servicecomb/saga/alpha/core">unit tests cases</a> +Then we can add your issue to git and then we’ll know when its really fixed and we can ensure that the problem stays fixed in future releases.</p> + +<h2 id="working-on-the-code">Working on the code</h2> + +<p>We recommend to work on the code from <a href="https://github.com/apache?q=incubator-servicecomb">Github</a>, it has the following sub-projects:</p> <table> <thead> @@ -389,14 +441,8 @@ </tbody> </table> -<p>There are many ways to get involved in ServiceComb and contribute to it, e.g. submit codes, submit tests, tools improvements, document improvements. You can contribute to one or more interested projects. You can refer to the following guide about how to contribute to this community.</p> - -<ul> - <li><a href="/developers/setup-develop-environment/">Setup Develop Environment</a>. Introduce how to install and setup git, JDK, Maven and IDE(IntelliJ).</li> - <li><a href="/developers/submit-codes/">Code Submit Guide</a>. Introduce how to get involved with development of ServiceComb and how to submit codes.</li> -</ul> +<p>If you intend to work on the code and provide patches and other work you want to submit to the Apache ServiceComb projects, then you can fork the project on github and work on your own fork. The custom work you do should be done on branches you create, which can then be committed and pushed upstream, and then submitted to Apache ServiceComb as PRs (pull requests). You can find many resources online how to work on github projects and how to submit work to these projects.</p> -<p>In the meanwhile, welcome to subscribe the <a href="mailto:[email protected]">ServiceComb mailing list</a> to keep track of the development status of ServiceComb community and discuss with us.</p> </section> @@ -452,8 +498,8 @@ <div class="col"> <ul> <p class="header">Contribute</p> - <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _developers/developer-guide.md">Report a Doc Issue</a></li> - <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_developers/developer-guide.md">Edit This Page on Github</a></li> + <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _developers/contributing.md">Report a Doc Issue</a></li> + <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_developers/contributing.md">Edit This Page on Github</a></li> <li><a href="/developers/submit-codes/">Code Submit Guide</a></li> </ul> </div> diff --git a/content/developers/index.html b/content/developers/index.html index 1e0dd86..f9c4a1e 100644 --- a/content/developers/index.html +++ b/content/developers/index.html @@ -271,6 +271,17 @@ + <a href="/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">Contributing to Apache ServiceComb</span></a> + + + + </li> + + <li> + + + + <a href="/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">Develop Environment Setup</span></a> diff --git a/content/developers/release-guide/index.html b/content/developers/release-guide/index.html index 77bd4b3..f17cb9b 100644 --- a/content/developers/release-guide/index.html +++ b/content/developers/release-guide/index.html @@ -273,6 +273,17 @@ + <a href="/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">Contributing to Apache ServiceComb</span></a> + + + + </li> + + <li> + + + + <a href="/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">Develop Environment Setup</span></a> diff --git a/content/developers/index.html b/content/developers/roadmap.html similarity index 91% copy from content/developers/index.html copy to content/developers/roadmap.html index 1e0dd86..45dfd31 100644 --- a/content/developers/index.html +++ b/content/developers/roadmap.html @@ -19,12 +19,12 @@ -<title>Developer Guide - Apache ServiceComb (incubating)</title> +<title>RoadMap - Apache ServiceComb (incubating)</title> -<meta name="description" content="Developer Guide"> +<meta name="description" content="ServiceComb Road Map"> @@ -33,21 +33,21 @@ <meta property="og:locale" content="en"> <meta property="og:site_name" content="Apache ServiceComb (incubating)"> -<meta property="og:title" content="Developer Guide"> +<meta property="og:title" content="RoadMap"> - <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/developers/"> - <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/developers/"> + <link rel="canonical" href="http://github.com/pages/apache/incubator-servicecomb-website/developers/roadmap"> + <meta property="og:url" content="http://github.com/pages/apache/incubator-servicecomb-website/developers/roadmap"> - <meta property="og:description" content="Developer Guide"> + <meta property="og:description" content="ServiceComb Road Map"> <meta name="twitter:site" content="@ServiceComb"> - <meta name="twitter:title" content="Developer Guide"> - <meta name="twitter:description" content="Developer Guide"> + <meta name="twitter:title" content="RoadMap"> + <meta name="twitter:description" content="ServiceComb Road Map"> <meta name="twitter:url" content=""> @@ -220,7 +220,7 @@ <div class="nav-lang"> - <a href=/cn/developers/>中文</a> + <a href=/cn/developers/roadmap>中文</a> </div> </nav> @@ -271,6 +271,17 @@ + <a href="/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">Contributing to Apache ServiceComb</span></a> + + + + </li> + + <li> + + + + <a href="/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">Develop Environment Setup</span></a> @@ -331,16 +342,16 @@ <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> - <meta itemprop="headline" content="Developer Guide"> - <meta itemprop="description" content="Developer Guide"> + <meta itemprop="headline" content="RoadMap"> + <meta itemprop="description" content="ServiceComb Road Map"> - <meta itemprop="dateModified" content="June 24, 2017"> + <meta itemprop="dateModified" content="May 20, 2018"> <div class="page__inner-wrap"> <header> - <h1 class="page__title" itemprop="headline">Developer Guide + <h1 class="page__title" itemprop="headline">RoadMap </h1> </header> @@ -452,8 +463,8 @@ <div class="col"> <ul> <p class="header">Contribute</p> - <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _developers/developer-guide.md">Report a Doc Issue</a></li> - <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_developers/developer-guide.md">Edit This Page on Github</a></li> + <li><a href="https://github.com/apache/incubator-servicecomb-website/issues/new?title=Issue with _developers/road-map.md">Report a Doc Issue</a></li> + <li><a href="https://github.com/apache/incubator-servicecomb-website/edit/master/_developers/road-map.md">Edit This Page on Github</a></li> <li><a href="/developers/submit-codes/">Code Submit Guide</a></li> </ul> </div> diff --git a/content/developers/setup-committer-rights/index.html b/content/developers/setup-committer-rights/index.html index 840eca1..4c6fa4d 100644 --- a/content/developers/setup-committer-rights/index.html +++ b/content/developers/setup-committer-rights/index.html @@ -271,6 +271,17 @@ + <a href="/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">Contributing to Apache ServiceComb</span></a> + + + + </li> + + <li> + + + + <a href="/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">Develop Environment Setup</span></a> diff --git a/content/developers/setup-develop-environment/index.html b/content/developers/setup-develop-environment/index.html index aaba128..ca39098 100644 --- a/content/developers/setup-develop-environment/index.html +++ b/content/developers/setup-develop-environment/index.html @@ -271,6 +271,17 @@ + <a href="/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">Contributing to Apache ServiceComb</span></a> + + + + </li> + + <li> + + + + <a href="/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">Develop Environment Setup</span></a> diff --git a/content/developers/submit-codes/index.html b/content/developers/submit-codes/index.html index 279f654..46974c0 100644 --- a/content/developers/submit-codes/index.html +++ b/content/developers/submit-codes/index.html @@ -271,6 +271,17 @@ + <a href="/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">Contributing to Apache ServiceComb</span></a> + + + + </li> + + <li> + + + + <a href="/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">Develop Environment Setup</span></a> diff --git a/content/developers/use-jira/index.html b/content/developers/use-jira/index.html index 875e790..9963a5d 100644 --- a/content/developers/use-jira/index.html +++ b/content/developers/use-jira/index.html @@ -271,6 +271,17 @@ + <a href="/developers/contributing"><span class="nav__sub-title nav__sub-title-with-url">Contributing to Apache ServiceComb</span></a> + + + + </li> + + <li> + + + + <a href="/developers/setup-develop-environment/"><span class="nav__sub-title nav__sub-title-with-url">Develop Environment Setup</span></a> diff --git a/content/feed.xml b/content/feed.xml index e9bf76f..1edcd74 100644 --- a/content/feed.xml +++ b/content/feed.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.4.3">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2018-05-19T16:55:09+08:00</updated><id>/</id><title type="html">Apache ServiceComb (incubating)</title><subtitle>The homepage of ServiceComb</subtitle><author><name>{"name"=>nil, "avatar"=> [...] +<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.4.3">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2018-05-21T17:51:15+08:00</updated><id>/</id><title type="html">Apache ServiceComb (incubating)</title><subtitle>The homepage of ServiceComb</subtitle><author><name>{"name"=>nil, "avatar"=> [...] <p>提到微服务,相信“程序猿”们已经不再陌生,估计大家都多少尝试过微服务框架,也遇到了不少“坑”直呼坑爹吧?其实微服务完全可以使用脚手架功能一键构建出来,开箱即用,而DDD(Domain-Driven Design),也是有章可循。这个“轻松微服务”系列,将为大家开启“轻松”愉快之旅。</p> <h3 id="牛刀小试">牛刀小试</h3> @@ -51,55 +51,105 @@ java -jar xxxx.jar <p>ServiceComb Java Chassis提供的脚手架具备更明显的优势:</p> <ol> - <li>对每一种编程模型都提供了对应的<a href="https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/archetypes">Archetypes项目</a>,包括SpringMVC、JAXRS、POJO和Spring Boot Starter;</li> - <li>生成的项目除了在POM中自动添加必要的依赖,还会提供Producer和Consumer示例代码(Hello World);</li> - <li>不久后会进一步提供<strong>Edge Server</strong>、<strong>Authcation Server</strong>等更贴近业务的脚手架项目,让用户能快速构建体系完整的微服务系统。</li> + <li> + <p>对每一种编程模型都提供了对应的<a href="https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/archetypes">Archetypes项目</a>,包括SpringMVC、JAXRS、POJO和Spring Boot Starter;</p> + </li> + <li> + <p>生成的项目除了在POM中自动添加必要的依赖,还会提供Producer和Consumer示例代码(Hello World);</p> + </li> + <li> + <p>不久后会进一步提供<strong>Edge Server</strong>、<strong>Authcation Server</strong>等更贴近业务的脚手架项目,让用户能快速构建体系完整的微服务系统。</p> + </li> </ol> -<p>什么叫一个完整的微服务系统呢?我们可以拿一个具体的场景做例子,会更有感觉:</p> +<p>前面牛刀小试中展示的一键构建微服务,正是基于它们:</p> + +<p><img src="/assets/images/scaffold/ArchetypeProjects.png" alt="ArchetypeProjects" /></p> + +<p>那么什么叫一个完整的微服务系统呢?我们可以拿一个具体的场景做例子,会更有感觉:</p> <h3 id="场景地产crm">场景:地产CRM</h3> <p>您经营着一家房地产开发商,销售房产,迫切需要一套销售系统,考虑到微服务的优势,您决定使用微服务的方式构建系统;主要的业务流程也非常简单:用户前来购买购买产品(房产),首先需要登记用户信息,并缴纳一定数量的定金,待交易当日,挑选心仪的产品(房产),支付尾款,完成交易。</p> <h4 id="使用ddd指导地产crm系统的设计">使用DDD指导地产CRM系统的设计</h4> -<p>微服务系统的设计自然离不开DDD(Domain-Driven Design),它由Eric Evans提出,是一种全新的系统设计和建模方法,这里的模型指的就是领域模型(Domain Model)。领域模型通过聚合(Aggregate)组织在一起,聚合间有明显的业务边界,这些边界将领域划分为一个个界限上下文(Bounded Context)。Martin Fowler对它们都有详细的<a href="https://martinfowler.com/tags/domain%20driven%20design.html">解读</a>。</p> +<p>微服务系统的设计自然离不开DDD(Domain-Driven Design),它由Eric Evans提出,是一种全新的系统设计和建模方法,这里的模型指的就是领域模型(Domain Model)。领域模型通过聚合(Aggregate)组织在一起,聚合间有明显的业务边界,这些边界将领域划分为一个个限界上下文(Bounded Context)。Martin Fowler对它们都有详细的<a href="https://martinfowler.com/tags/domain%20driven%20design.html">解读</a>。</p> <p>理论概念都搞清楚了,那么怎么来找模型和聚合呢?一个非常流行的方法就是<a href="https://en.wikipedia.org/wiki/Event_storming">Event Storming</a>,它是由Alberto Brandolini发明,经历了DDD社区和很多团队的实践,也是一种非常有参与感的团队活动:</p> <p><img src="/assets/images/scaffold/EventStorming.png" alt="EventStorming" /></p> -<p>通过持续讨论和反复改进后,我们就能够将业务面(也可以称为问题域)清晰的梳理出来:</p> +<p>上图就是我们对地产CRM这个场景使用Event Storming探索的结果,现在我们能够将限界上下文清晰的梳理出来:</p> + +<p><img src="/assets/images/scaffold/BoundedContext.png" alt="BoundedContext" /></p> -<p><img src="/assets/images/scaffold/EventStormingResult.png" alt="EventStormingResult" /></p> +<blockquote> + <p>提示:Event Storming是一项非常有创造性的活动,也是一个持续讨论和反复改进的过程,不同的团队关注的核心域(Core Domain)不同,得到的最终结果也会有差异。我们的目的是为了演示完整的微服务系统构建的过程,并不涉及商业核心竞争力方面的探讨,因此没有Core Domain和Sub Domain之类的偏重。</p> +</blockquote> <h4 id="将分析成果转化为方案域设计">将分析成果转化为方案域设计</h4> -<p>当我们完成所有的界限上下文的识别,可以直接将它们落地为微服务:</p> +<p>当我们完成所有的限界上下文的识别后,可以直接将它们落地为微服务:</p> -<p><img src="/assets/images/scaffold/SystemComponents.png" alt="system-components" /></p> +<p><img src="/assets/images/scaffold/MicroserviceDesign1.png" alt="MicroserviceDesign1" /></p> + +<ol> + <li>用户服务:提供用户信息管理服务,这里保存这用户的账号和密码,负责登录和认证;</li> + <li>产品(房产)服务:提供产品管理服务,保存着房产的信息诸如价格、是否已售出等信息;</li> + <li>支付服务:提供交易时支付服务,模拟对接银行支付定金,以及购房时支付尾款;</li> +</ol> + +<p>由于完成一笔交易是一个复杂的流程,与这三个微服务都有关联,因此我们引入了一个复合服务——交易服务:</p> + +<p><img src="/assets/images/scaffold/MicroserviceDesign2.png" alt="MicroserviceDesign2" /></p> -<p>各微服务所包含的功能(即对应的命令和事件)如下:</p> <ol> - <li>前端UI服务:用户交互界面;</li> - <li>Edge服务:很多时候也被称为API网关(API Gateway),负责集中认证、动态路由等等;</li> - <li>用户服务:提供用户信息管理服务,这里保存这用户的账号和密码,负责登录和认证;同时由于房产是非常昂贵的产品,交易前需要收取一定的定金,因此每一个用户都会保存已缴纳的定金金额;</li> - <li>产品(资源)服务:提供产品管理服务,保存着房产的信息诸如价格、是否已售出等信息;</li> - <li>支付服务:提供交易时支付服务,模拟对接银行支付购房尾款;</li> <li>交易服务:提供产品交易服务,它通过编排调用将整个交易流程串起来,交易服务中有两个流程: - 6.1. 定金支付 - Step1:通过用户服务验证用户身份; - Step2:通过支付服务请求银行扣款; - Step3:通过用户服务增加用户账号内的定金。 - 后面两个步骤需要保证事务一致性。<br /> - 6.2. 购房交易 - Step1 :通过用户服务验证用户身份; - Step2 :通过资源服务确定用户希望购买的资源(房产)尚未售出; - Step3 :通过资源服务标记目标资源(房产)已售出; - Step4 :通过用户服务从用户账号中扣除定金; - Step5 :通过支付服务请求银行扣剩下的尾款; - 最后三个步骤需要保证事务一致性。</li> + <ul> + <li>定金支付</li> + </ul> + + <p>Step1:通过用户服务验证用户身份;</p> + + <p>Step2:通过支付服务请求银行扣款,增加定金账号内的定金;</p> + </li> +</ol> + +<ul> + <li> + <p>购房交易</p> + + <p>Step1:通过用户服务验证用户身份;</p> + + <p>Step2:通过资源服务确定用户希望购买的资源(房产)尚未售出;</p> + + <p>Step3:通过资源服务标记目标资源(房产)已售出;</p> + + <p>Step4:通过支付服务请求扣减定金账号内的定金,以及银行扣剩下的尾款;</p> + + <p>最后两个步骤需要保证事务一致性,其中Step4包含两个扣款操作。</p> + </li> +</ul> + +<p>之后,我们引入Edge服务提供统一入口:</p> + +<p><img src="/assets/images/scaffold/MicroserviceDesign3.png" alt="MicroserviceDesign3" /></p> + +<ol> + <li>Edge服务:很多时候也被称为API网关(API Gateway),负责集中认证、动态路由等等;</li> +</ol> + +<blockquote> + <p>提示:Edge服务需要依赖服务注册-发现机制,因此同时导入了ServiceCenter。</p> +</blockquote> + +<p>最后还需要提供UI:</p> + +<p><img src="/assets/images/scaffold/MicroserviceDesign4.png" alt="MicroserviceDesign4" /></p> + +<ol> + <li>前端UI(同样以微服务方式提供):用户交互界面;</li> </ol> -<p>从下一篇文章开始,我们将和您一起轻松愉快的开启构建之旅,敬请期待!</p></content><author><name>Yangyong Zheng</name><email>[email protected]</email><uri>https://zhengyangyong.github.io</uri></author><category term="Archetypes" /><category term="Scaffold" /><summary type="html">轻松微服务系列:从一键构建微服务和DDD设计开始</summary></entry><entry xml:lang="cn"><title type="html">ServiceComb Saga使用Cucumber做验收测试源码分析</title><link href="/cn/docs/saga_with_cucumber/" rel="alternate" type="text/html" title="ServiceComb Saga使用 [...] +<p>至此,DDD设计地产CRM的工作就结束了,从下一篇文章开始,我们将和您一起轻松愉快的开启代码构建之旅,敬请期待!</p></content><author><name>Yangyong Zheng</name><email>[email protected]</email><uri>https://zhengyangyong.github.io</uri></author><category term="Archetypes" /><category term="Scaffold" /><summary type="html">轻松微服务系列:从一键构建微服务和DDD设计开始</summary></entry><entry xml:lang="cn"><title type="html">ServiceComb Saga使用Cucumber做验收测试源码分析</title><link href="/cn/docs/saga_with_cucumber/" rel="alternate" type="text/html" ti [...] <h4 id="cucumber-简介">Cucumber 简介</h4> diff --git a/content/sitemap.xml b/content/sitemap.xml index 1ce8a94..b72054e 100644 --- a/content/sitemap.xml +++ b/content/sitemap.xml @@ -195,6 +195,14 @@ <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> +<loc>/cn/developers/contributing</loc> +<lastmod>2018-05-20T19:18:43+08:00</lastmod> +</url> +<url> +<loc>/developers/contributing</loc> +<lastmod>2018-05-20T19:18:43+08:00</lastmod> +</url> +<url> <loc>/cn/users/customized-tracing/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> @@ -203,11 +211,11 @@ <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/users/service-contract/</loc> +<loc>/cn/users/service-contract/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/service-contract/</loc> +<loc>/users/service-contract/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> @@ -227,11 +235,11 @@ <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/users/develop-with-rest-template/</loc> +<loc>/cn/users/develop-with-rest-template/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/develop-with-rest-template/</loc> +<loc>/users/develop-with-rest-template/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> @@ -243,14 +251,14 @@ <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/users/develop-with-spring-boot-starter/</loc> -<lastmod>2017-08-16T03:01:43+08:00</lastmod> -</url> -<url> <loc>/cn/users/develop-with-spring-boot-starter/</loc> <lastmod>2018-04-24T03:01:43+08:00</lastmod> </url> <url> +<loc>/users/develop-with-spring-boot-starter/</loc> +<lastmod>2017-08-16T03:01:43+08:00</lastmod> +</url> +<url> <loc>/cn/users/develop-with-springmvc/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> @@ -267,15 +275,15 @@ <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/cn/developers/</loc> +<loc>/developers/</loc> <lastmod>2017-06-24T19:18:43+08:00</lastmod> </url> <url> -<loc>/developers/</loc> +<loc>/cn/developers/</loc> <lastmod>2017-06-24T19:18:43+08:00</lastmod> </url> <url> -<loc>/cn/users/distributed-tracing/</loc> +<loc>/users/distributed-tracing/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> @@ -287,7 +295,7 @@ <lastmod>2017-09-03T22:01:43+08:00</lastmod> </url> <url> -<loc>/users/distributed-tracing/</loc> +<loc>/cn/users/distributed-tracing/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> @@ -299,16 +307,12 @@ <lastmod>2018-01-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/users/edge-in-1.0.0-m1/</loc> -<lastmod>2018-04-03T22:01:43+08:00</lastmod> -</url> -<url> <loc>/cn/users/edge-in-1.0.0-m1/</loc> <lastmod>2018-04-03T22:01:43+08:00</lastmod> </url> <url> -<loc>/users/faq/</loc> -<lastmod>2017-06-06T22:01:43+08:00</lastmod> +<loc>/users/edge-in-1.0.0-m1/</loc> +<lastmod>2018-04-03T22:01:43+08:00</lastmod> </url> <url> <loc>/cn/faqs/</loc> @@ -319,6 +323,10 @@ <lastmod>2017-10-29T22:01:43+08:00</lastmod> </url> <url> +<loc>/users/faq/</loc> +<lastmod>2017-06-06T22:01:43+08:00</lastmod> +</url> +<url> <loc>/docs/quick-start-advance/flow-control/</loc> <lastmod>2017-09-03T22:01:43+08:00</lastmod> </url> @@ -333,16 +341,16 @@ <loc>/cn/</loc> </url> <url> -<loc>/users/huawei-cloud-faq/</loc> -<lastmod>2017-06-06T22:01:43+08:00</lastmod> +<loc>/cn/faqs/faqs-huawei-cloud/</loc> +<lastmod>2017-10-30T03:01:43+08:00</lastmod> </url> <url> <loc>/faqs/faqs-huawei-cloud/</loc> <lastmod>2017-10-29T22:01:43+08:00</lastmod> </url> <url> -<loc>/cn/faqs/faqs-huawei-cloud/</loc> -<lastmod>2017-10-30T03:01:43+08:00</lastmod> +<loc>/users/huawei-cloud-faq/</loc> +<lastmod>2017-06-06T22:01:43+08:00</lastmod> </url> <url> <loc>/cn/users/invoke-control/</loc> @@ -361,11 +369,11 @@ <lastmod>2018-03-28T08:50:43+08:00</lastmod> </url> <url> -<loc>/release/java-chassis-release-notes/</loc> +<loc>/cn/release/java-chassis-release-notes/</loc> <lastmod>2018-03-28T08:50:43+08:00</lastmod> </url> <url> -<loc>/cn/release/java-chassis-release-notes/</loc> +<loc>/release/java-chassis-release-notes/</loc> <lastmod>2018-03-28T08:50:43+08:00</lastmod> </url> <url> @@ -373,19 +381,19 @@ <lastmod>2017-06-07T14:28:13+08:00</lastmod> </url> <url> -<loc>/cn/docs/quick-start-advance/load-balance/</loc> +<loc>/docs/quick-start-advance/load-balance/</loc> <lastmod>2017-09-03T22:01:43+08:00</lastmod> </url> <url> -<loc>/docs/quick-start-advance/load-balance/</loc> +<loc>/cn/docs/quick-start-advance/load-balance/</loc> <lastmod>2017-09-03T22:01:43+08:00</lastmod> </url> <url> -<loc>/users/local-develop-test/</loc> +<loc>/cn/users/local-develop-test/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/local-develop-test/</loc> +<loc>/users/local-develop-test/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> @@ -401,19 +409,19 @@ <lastmod>2017-12-30T02:01:43+08:00</lastmod> </url> <url> -<loc>/users/metrics-in-1.0.0-m1/</loc> +<loc>/cn/users/metrics-in-1.0.0-m1/</loc> <lastmod>2017-12-30T22:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/metrics-in-1.0.0-m1/</loc> +<loc>/users/metrics-in-1.0.0-m1/</loc> <lastmod>2017-12-30T22:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/metrics-integration-with-prometheus-in-1.0.0-m1/</loc> +<loc>/users/metrics-integration-with-prometheus-in-1.0.0-m1/</loc> <lastmod>2018-01-02T22:01:43+08:00</lastmod> </url> <url> -<loc>/users/metrics-integration-with-prometheus-in-1.0.0-m1/</loc> +<loc>/cn/users/metrics-integration-with-prometheus-in-1.0.0-m1/</loc> <lastmod>2018-01-02T22:01:43+08:00</lastmod> </url> <url> @@ -421,19 +429,19 @@ <lastmod>2017-12-29T22:01:43+08:00</lastmod> </url> <url> -<loc>/users/edging-service/nginx/</loc> +<loc>/cn/users/edging-service/nginx/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/edging-service/nginx/</loc> +<loc>/users/edging-service/nginx/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/cn/docs/quick-start-advance/</loc> +<loc>/docs/quick-start-advance/</loc> <lastmod>2017-09-03T22:01:43+08:00</lastmod> </url> <url> -<loc>/docs/quick-start-advance/</loc> +<loc>/cn/docs/quick-start-advance/</loc> <lastmod>2017-09-03T22:01:43+08:00</lastmod> </url> <url> @@ -445,14 +453,14 @@ <lastmod>2017-09-06T08:50:00+08:00</lastmod> </url> <url> -<loc>/cn/docs/quick-start-dataconsistency/</loc> -<lastmod>2017-09-19T23:50:10+08:00</lastmod> -</url> -<url> <loc>/docs/quick-start-dataconsistency/</loc> <lastmod>2017-09-03T22:01:43+08:00</lastmod> </url> <url> +<loc>/cn/docs/quick-start-dataconsistency/</loc> +<lastmod>2017-09-19T23:50:10+08:00</lastmod> +</url> +<url> <loc>/cn/docs/quick-start/</loc> <lastmod>2017-09-03T22:01:43+08:00</lastmod> </url> @@ -477,14 +485,18 @@ <lastmod>2018-05-08T09:55:44+08:00</lastmod> </url> <url> -<loc>/cn/release/saga-binary/</loc> -<lastmod>2018-03-28T08:50:43+08:00</lastmod> +<loc>/developers/roadmap</loc> +<lastmod>2018-05-20T19:18:43+08:00</lastmod> </url> <url> <loc>/release/saga-binary/</loc> <lastmod>2018-03-28T08:50:43+08:00</lastmod> </url> <url> +<loc>/cn/release/saga-binary/</loc> +<lastmod>2018-03-28T08:50:43+08:00</lastmod> +</url> +<url> <loc>/cn/release/saga-downloads/</loc> <lastmod>2018-03-28T08:50:43+08:00</lastmod> </url> @@ -525,11 +537,11 @@ <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/service-interface-constraints/</loc> +<loc>/users/service-interface-constraints/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/users/service-interface-constraints/</loc> +<loc>/cn/users/service-interface-constraints/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> @@ -573,14 +585,14 @@ <lastmod>2017-06-14T22:01:43+08:00</lastmod> </url> <url> -<loc>/cn/developers/setup-committer-rights/</loc> -<lastmod>2018-05-08T22:49:00+08:00</lastmod> -</url> -<url> <loc>/developers/setup-committer-rights/</loc> <lastmod>2017-12-22T22:49:00+08:00</lastmod> </url> <url> +<loc>/cn/developers/setup-committer-rights/</loc> +<lastmod>2018-05-08T22:49:00+08:00</lastmod> +</url> +<url> <loc>/developers/setup-develop-environment/</loc> <lastmod>2017-06-24T18:48:43+08:00</lastmod> </url> @@ -589,11 +601,11 @@ <lastmod>2017-06-24T18:48:43+08:00</lastmod> </url> <url> -<loc>/users/setup-environment/</loc> +<loc>/cn/users/setup-environment/</loc> <lastmod>2018-04-13T22:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/setup-environment/</loc> +<loc>/users/setup-environment/</loc> <lastmod>2018-04-13T22:01:43+08:00</lastmod> </url> <url> @@ -632,18 +644,18 @@ <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/users/use-tls/</loc> +<loc>/cn/users/use-tls/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/cn/users/use-tls/</loc> +<loc>/users/use-tls/</loc> <lastmod>2017-08-16T03:01:43+08:00</lastmod> </url> <url> -<loc>/year-archive/</loc> +<loc>/cn/year-archive/</loc> </url> <url> -<loc>/cn/year-archive/</loc> +<loc>/year-archive/</loc> </url> <url> <loc>/users/edging-service/zuul/</loc> -- To stop receiving notification emails like this one, please contact [email protected].
