Commit 2c454fb0 authored by Savorboard's avatar Savorboard

Deployed aea69399 with MkDocs version: 1.0.4

parent f5d82bc7
This source diff could not be displayed because it is too large. You can view the blob instead.
No preview for this file type
......@@ -91,7 +91,7 @@
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#_1" tabindex="1" class="md-skip">
<a href="#contribution" tabindex="1" class="md-skip">
Skip to content
</a>
......@@ -1284,7 +1284,7 @@
<a href="https://github.com/dotnetcore/CAP/edit/master/docs/user-guide/en/getting-started/contributing.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="_1">贡献<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<h1 id="contribution">Contribution<a class="headerlink" href="#contribution" title="Permanent link">&para;</a></h1>
<p>One of the easiest ways to contribute is to participate in discussions and discuss issues. </p>
<p>If you have any question or problems, please report them on the CAP repository:</p>
<p><a href="https://github.com/dotnetcore/cap/issues/new"><button data-md-color-primary="purple"><i class="fa fa-github fa-2x"></i> Report Issue</button></a>
......
......@@ -91,7 +91,7 @@
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#_1" tabindex="1" class="md-skip">
<a href="#introduction" tabindex="1" class="md-skip">
Skip to content
</a>
......@@ -381,15 +381,15 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_2" title="相关视频" class="md-nav__link">
相关视频
<a href="#related-videos" title="Related videos" class="md-nav__link">
Related videos
</a>
</li>
<li class="md-nav__item">
<a href="#_3" title="相关文章" class="md-nav__link">
相关文章
<a href="#related-articles" title="Related articles" class="md-nav__link">
Related articles
</a>
</li>
......@@ -1252,15 +1252,15 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_2" title="相关视频" class="md-nav__link">
相关视频
<a href="#related-videos" title="Related videos" class="md-nav__link">
Related videos
</a>
</li>
<li class="md-nav__item">
<a href="#_3" title="相关文章" class="md-nav__link">
相关文章
<a href="#related-articles" title="Related articles" class="md-nav__link">
Related articles
</a>
</li>
......@@ -1284,25 +1284,25 @@
<a href="https://github.com/dotnetcore/CAP/edit/master/docs/user-guide/en/getting-started/introduction.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="_1">介绍<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<p>CAP 是一个EventBus,同时也是一个在微服务或者SOA系统中解决分布式事务问题的一个框架。它有助于创建可扩展,可靠并且易于更改的微服务系统。</p>
<p>在微软的 <a href="https://github.com/dotnet-architecture/eShopOnContainers">eShopOnContainer</a> 微服务示例项目中,推荐使用 CAP 作为生产环境可用的 EventBus。</p>
<h1 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link">&para;</a></h1>
<p>CAP is an EventBus and a solution for solving distributed transaction problems in microservices or SOA systems. It helps create a microservices system that is scalable, reliable, and easy to change.</p>
<p>In Microsoft's [eShopOnContainer] (<a href="https://github.com/dotnet-architecture/eShopOnContainers">https://github.com/dotnet-architecture/eShopOnContainers</a>) microservices sample project, it is recommended to use CAP as the EventBus available in the production environment.</p>
<div class="admonition question">
<p class="admonition-title">什么是 EventBus?</p>
<p class="admonition-title">What is EventBus?</p>
<p>An Eventbus is a mechanism that allows different components to communicate with each other without knowing about each other. A component can send an Event to the Eventbus without knowing who will pick it up or how many others will pick it up. Components can also listen to Events on an Eventbus, without knowing who sent the Events. That way, components can communicate without depending on each other. Also, it is very easy to substitute a component. As long as the new component understands the Events that are being sent and received, the other components will never know.</p>
</div>
<p>相对于其他的 Service Bus 或者 Event Bus, CAP 拥有自己的特色,它不要求使用者发送消息或者处理消息的时候实现或者继承任何接口,拥有非常高的灵活性。我们一直坚信约定大于配置,所以CAP使用起来非常简单,对于新手非常友好,并且拥有轻量级。</p>
<p>CAP 采用模块化设计,具有高度的可扩展性。你有许多选项可以选择,包括消息队列,存储,序列化方式等,系统的许多元素内容可以替换为自定义实现。</p>
<h2 id="_2">相关视频<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p><a href="https://www.bilibili.com/video/av31582401/">Video: bilibili 教程</a></p>
<p><a href="https://youtu.be/K1e4e0eddNE">Video: Youtube 教程</a></p>
<p><a href="https://www.cnblogs.com/savorboard/p/7243609.html">Video: 腾讯视频教程</a></p>
<h2 id="_3">相关文章<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
<p><a href="http://www.cnblogs.com/savorboard/p/cap.html">Article: CAP 介绍及使用</a></p>
<p><a href="https://www.cnblogs.com/savorboard/p/cap-2-5.html">Article: CAP 2.5 版本中的新特性</a></p>
<p><a href="http://www.cnblogs.com/savorboard/p/cap-2-4.html">Article: CAP 2.4 版本中的新特性</a></p>
<p><a href="http://www.cnblogs.com/savorboard/p/cap-2-3.html">Article: CAP 2.3 版本中的新特性用</a></p>
<p><a href="https://www.cnblogs.com/forerunner/p/ncc-cap-with-over-thousand-stars.html">Article: .NET Core Community 首个千星项目诞生:CAP</a></p>
<p>Compared to other Service Bus or Event Bus, CAP has its own characteristics. It does not require users to implement or inherit any interface when sending messages or processing messages. It has very high flexibility. We have always believed that the appointment is greater than the configuration, so the CAP is very simple to use, very friendly to the novice, and lightweight.</p>
<p>The CAP is modular in design and highly scalable. You have many options to choose from, including message queues, storage, serialization, etc. Many elements of the system can be replaced with custom implementations.</p>
<h2 id="related-videos">Related videos<a class="headerlink" href="#related-videos" title="Permanent link">&para;</a></h2>
<p><a href="https://www.bilibili.com/video/av31582401/">Video: bilibili Tutorial</a></p>
<p><a href="https://youtu.be/K1e4e0eddNE">Video: Youtube Tutorial</a></p>
<p><a href="https://www.cnblogs.com/savorboard/p/7243609.html">Video: Tencent Tutorial</a></p>
<h2 id="related-articles">Related articles<a class="headerlink" href="#related-articles" title="Permanent link">&para;</a></h2>
<p><a href="http://www.cnblogs.com/savorboard/p/cap.html">Article: Introduction and how to use</a></p>
<p><a href="https://www.cnblogs.com/savorboard/p/cap-2-5.html">Article: New features in version 2.5</a></p>
<p><a href="http://www.cnblogs.com/savorboard/p/cap-2-4.html">Article: New features in version 2.4</a></p>
<p><a href="http://www.cnblogs.com/savorboard/p/cap-2-3.html">Article: New features in version 2.3</a></p>
<p><a href="https://www.cnblogs.com/forerunner/p/ncc-cap-with-over-thousand-stars.html">Article: .NET Core Community The first thousand-star project was born: CAP</a></p>
......
......@@ -91,7 +91,7 @@
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#_1" tabindex="1" class="md-skip">
<a href="#quick-start" tabindex="1" class="md-skip">
Skip to content
</a>
......@@ -369,36 +369,36 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_2" title="安装" class="md-nav__link">
安装
<a href="#installation" title="Installation" class="md-nav__link">
Installation
</a>
</li>
<li class="md-nav__item">
<a href="#aspnet-core" title="在 Asp.Net Core 中集成" class="md-nav__link">
在 Asp.Net Core 中集成
<a href="#integrated-in-aspnet-core" title="Integrated in Asp.Net Core" class="md-nav__link">
Integrated in Asp.Net Core
</a>
</li>
<li class="md-nav__item">
<a href="#_3" title="发送消息" class="md-nav__link">
发送消息
<a href="#publish-message" title="Publish Message" class="md-nav__link">
Publish Message
</a>
</li>
<li class="md-nav__item">
<a href="#_4" title="处理消息" class="md-nav__link">
处理消息
<a href="#process-message" title="Process Message" class="md-nav__link">
Process Message
</a>
</li>
<li class="md-nav__item">
<a href="#_5" title="摘要" class="md-nav__link">
摘要
<a href="#summary" title="Summary" class="md-nav__link">
Summary
</a>
</li>
......@@ -1273,36 +1273,36 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_2" title="安装" class="md-nav__link">
安装
<a href="#installation" title="Installation" class="md-nav__link">
Installation
</a>
</li>
<li class="md-nav__item">
<a href="#aspnet-core" title="在 Asp.Net Core 中集成" class="md-nav__link">
在 Asp.Net Core 中集成
<a href="#integrated-in-aspnet-core" title="Integrated in Asp.Net Core" class="md-nav__link">
Integrated in Asp.Net Core
</a>
</li>
<li class="md-nav__item">
<a href="#_3" title="发送消息" class="md-nav__link">
发送消息
<a href="#publish-message" title="Publish Message" class="md-nav__link">
Publish Message
</a>
</li>
<li class="md-nav__item">
<a href="#_4" title="处理消息" class="md-nav__link">
处理消息
<a href="#process-message" title="Process Message" class="md-nav__link">
Process Message
</a>
</li>
<li class="md-nav__item">
<a href="#_5" title="摘要" class="md-nav__link">
摘要
<a href="#summary" title="Summary" class="md-nav__link">
Summary
</a>
</li>
......@@ -1326,19 +1326,19 @@
<a href="https://github.com/dotnetcore/CAP/edit/master/docs/user-guide/en/getting-started/quick-start.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="_1">快速开始<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<p>了解如何使用 CAP 构建微服务事件总线架构,它比直接集成消息队列提供了哪些优势,它提供了哪些开箱即用的功能。</p>
<h2 id="_2">安装<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<h1 id="quick-start">Quick Start<a class="headerlink" href="#quick-start" title="Permanent link">&para;</a></h1>
<p>Learn how to build a microservices event bus architecture using CAP, which offers advantages over direct integration of message queues, and what out-of-the-box features it provides.</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><span class="n">PM</span><span class="p">&gt;</span> <span class="nb">Install-Package</span> <span class="n">DotNetCore</span><span class="p">.</span><span class="n">CAP</span>
</pre></div>
<h2 id="aspnet-core">在 Asp.Net Core 中集成<a class="headerlink" href="#aspnet-core" title="Permanent link">&para;</a></h2>
<p>以便于快速启动,我们使用基于内存的事件存储和消息队列。</p>
<h2 id="integrated-in-aspnet-core">Integrated in Asp.Net Core<a class="headerlink" href="#integrated-in-aspnet-core" title="Permanent link">&para;</a></h2>
<p>For quick start, we use memory-based event storage and message transport.</p>
<div class="codehilite"><pre><span></span><span class="n">PM</span><span class="p">&gt;</span> <span class="nb">Install-Package</span> <span class="n">DotNetCore</span><span class="p">.</span><span class="n">CAP</span><span class="p">.</span><span class="n">InMemoryStorage</span>
<span class="n">PM</span><span class="p">&gt;</span> <span class="nb">Install-Package</span> <span class="n">Savorboard</span><span class="p">.</span><span class="n">CAP</span><span class="p">.</span><span class="n">InMemoryMessageQueue</span>
</pre></div>
<p><code class="codehilite">Startup.cs</code> 中,添加以下配置:</p>
<p>In <code class="codehilite">Startup.cs</code> ,add the following configuration:</p>
<div class="codehilite"><pre><span></span><span class="k">public</span> <span class="k">void</span> <span class="nf">ConfigureServices</span><span class="p">(</span><span class="n">IServiceCollection</span> <span class="n">services</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">services</span><span class="p">.</span><span class="n">AddCap</span><span class="p">(</span><span class="n">x</span> <span class="p">=&gt;</span>
......@@ -1349,7 +1349,7 @@
<span class="p">}</span>
</pre></div>
<h2 id="_3">发送消息<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
<h2 id="publish-message">Publish Message<a class="headerlink" href="#publish-message" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><span class="k">public</span> <span class="k">class</span> <span class="nc">PublishController</span> <span class="p">:</span> <span class="n">Controller</span>
<span class="p">{</span>
<span class="na"> [Route(&quot;~/send&quot;)]</span>
......@@ -1362,7 +1362,7 @@
<span class="p">}</span>
</pre></div>
<h2 id="_4">处理消息<a class="headerlink" href="#_4" title="Permanent link">&para;</a></h2>
<h2 id="process-message">Process Message<a class="headerlink" href="#process-message" title="Permanent link">&para;</a></h2>
<div class="codehilite"><pre><span></span><span class="k">public</span> <span class="k">class</span> <span class="nc">ConsumerController</span> <span class="p">:</span> <span class="n">Controller</span>
<span class="p">{</span>
<span class="na"> [NonAction]</span>
......@@ -1374,8 +1374,8 @@
<span class="p">}</span>
</pre></div>
<h2 id="_5">摘要<a class="headerlink" href="#_5" title="Permanent link">&para;</a></h2>
<p>相对于直接集成消息队列,异步消息传递最强大的优势之一是可靠性,系统的一个部分中的故障不会传播,也不会导致整个系统崩溃。 在 CAP 内部会将消息进行存储,以保证消息的可靠性,并配合重试等策略以达到各个服务之间的数据最终一致性。</p>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">&para;</a></h2>
<p>One of the most powerful advantages of asynchronous messaging over direct integrated message queues is reliability, where failures in one part of the system do not propagate or cause the entire system to crash. Messages are stored inside the CAP to ensure the reliability of the message, and strategies such as retry are used to achieve the final consistency of data between services.</p>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment