<ahref="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"></a>
<ahref="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"></a>
<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] (<ahref="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>
<divclass="admonition question">
<pclass="admonition-title">什么是 EventBus?</p>
<pclass="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><ahref="http://www.cnblogs.com/savorboard/p/cap.html">Article: CAP 介绍及使用</a></p>
<p><ahref="https://www.cnblogs.com/savorboard/p/cap-2-5.html">Article: CAP 2.5 版本中的新特性</a></p>
<p><ahref="http://www.cnblogs.com/savorboard/p/cap-2-4.html">Article: CAP 2.4 版本中的新特性</a></p>
<p><ahref="http://www.cnblogs.com/savorboard/p/cap-2-3.html">Article: CAP 2.3 版本中的新特性用</a></p>
<p><ahref="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>
<p><ahref="http://www.cnblogs.com/savorboard/p/cap.html">Article: Introduction and how to use</a></p>
<p><ahref="https://www.cnblogs.com/savorboard/p/cap-2-5.html">Article: New features in version 2.5</a></p>
<p><ahref="http://www.cnblogs.com/savorboard/p/cap-2-4.html">Article: New features in version 2.4</a></p>
<p><ahref="http://www.cnblogs.com/savorboard/p/cap-2-3.html">Article: New features in version 2.3</a></p>
<p><ahref="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>
<ahref="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"></a>
<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>
<h2id="aspnet-core">在 Asp.Net Core 中集成<aclass="headerlink"href="#aspnet-core"title="Permanent link">¶</a></h2>
<p>以便于快速启动,我们使用基于内存的事件存储和消息队列。</p>
<h2id="integrated-in-aspnet-core">Integrated in Asp.Net Core<aclass="headerlink"href="#integrated-in-aspnet-core"title="Permanent link">¶</a></h2>
<p>For quick start, we use memory-based event storage and message transport.</p>
<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>