Commit 66f229cc authored by Savorboard's avatar Savorboard

Deployed bb2bdb9e with MkDocs version: 1.0.4

parent 6b7b146e
......@@ -583,6 +583,18 @@
</li>
<li class="md-nav__item">
<a href="about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -638,6 +638,18 @@
</li>
<li class="md-nav__item">
<a href="../license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......@@ -744,6 +756,20 @@
</a>
<a href="../license/" title="License" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Next
</span>
License
</span>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
</div>
</a>
</nav>
</div>
......
......@@ -602,6 +602,18 @@
</li>
<li class="md-nav__item">
<a href="../license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="Project documentation with Markdown.">
<link rel="canonical" href="https://cap.dotnet-china.com/about/license/">
<meta name="author" content="CAP Team">
<meta name="lang:clipboard.copy" content="Copy to clipboard">
<meta name="lang:clipboard.copied" content="Copied to clipboard">
<meta name="lang:search.language" content="en">
<meta name="lang:search.pipeline.stopwords" content="True">
<meta name="lang:search.pipeline.trimmer" content="True">
<meta name="lang:search.result.none" content="No matching documents">
<meta name="lang:search.result.one" content="1 matching document">
<meta name="lang:search.result.other" content="# matching documents">
<meta name="lang:search.tokenizer" content="[\s\-]+">
<link rel="shortcut icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.0.4, mkdocs-material-3.3.0">
<title>License - CAP</title>
<link rel="stylesheet" href="../../assets/stylesheets/application.572ca0f0.css">
<link rel="stylesheet" href="../../assets/stylesheets/application-palette.22915126.css">
<meta name="theme-color" content="#ab47bc">
<script src="../../assets/javascripts/modernizr.962652e9.js"></script>
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
<style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
<link rel="stylesheet" href="../../assets/fonts/material-icons.css">
<link rel="manifest" href="../../manifest.webmanifest">
</head>
<body dir="ltr" data-md-color-primary="purple" data-md-color-accent="indigo">
<svg class="md-svg">
<defs>
<svg xmlns="http://www.w3.org/2000/svg" width="416" height="448"
viewBox="0 0 416 448" id="__github">
<path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19-18.125
8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5
18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75
19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19
18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360
304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25
2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8
38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0
37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25
82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75
1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75
0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25
30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5
46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34
99.5z" />
</svg>
</defs>
</svg>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<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="#license" tabindex="1" class="md-skip">
Skip to content
</a>
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="https://cap.dotnet-china.com" title="CAP" class="md-header-nav__button md-logo">
<i class="md-icon"></i>
</a>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
</div>
<div class="md-flex__cell md-flex__cell--stretch">
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
CAP
</span>
<span class="md-header-nav__topic">
License
</span>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
<label class="md-icon md-search__icon" for="__search"></label>
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
&#xE5CD;
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="result">
<div class="md-search-result__meta">
Type to start searching
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<div class="md-header-nav__source">
<a href="https://github.com/dotnetcore/cap/" title="Go to repository" class="md-source" data-md-source="github">
<div class="md-source__icon">
<svg viewBox="0 0 24 24" width="24" height="24">
<use xlink:href="#__github" width="24" height="24"></use>
</svg>
</div>
<div class="md-source__repository">
dotnetcore/CAP
</div>
</a>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container">
<nav class="md-tabs md-tabs--active" data-md-component="tabs">
<div class="md-tabs__inner md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." title="Home" class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../user-guide/getting-started/" title="User Guide" class="md-tabs__link">
User Guide
</a>
</li>
<li class="md-tabs__item">
<a href="../../user-guide-cn/getting-started/" title="使用指南" class="md-tabs__link">
使用指南
</a>
</li>
<li class="md-tabs__item">
<a href="../release-notes/" title="About" class="md-tabs__link md-tabs__link--active">
About
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main">
<div class="md-main__inner md-grid" data-md-component="container">
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="https://cap.dotnet-china.com" title="CAP" class="md-nav__button md-logo">
<i class="md-icon"></i>
</a>
CAP
</label>
<div class="md-nav__source">
<a href="https://github.com/dotnetcore/cap/" title="Go to repository" class="md-source" data-md-source="github">
<div class="md-source__icon">
<svg viewBox="0 0 24 24" width="24" height="24">
<use xlink:href="#__github" width="24" height="24"></use>
</svg>
</div>
<div class="md-source__repository">
dotnetcore/CAP
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." title="Home" class="md-nav__link">
Home
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2">
<label class="md-nav__link" for="nav-2">
User Guide
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-2">
User Guide
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-guide/getting-started/" title="Getting Started" class="md-nav__link">
Getting Started
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide/api-interface/" title="API Interface" class="md-nav__link">
API Interface
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide/configuration/" title="Configuration" class="md-nav__link">
Configuration
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide/design/" title="Design Principle" class="md-nav__link">
Design Principle
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide/implementation/" title="Implementation Mechanisms" class="md-nav__link">
Implementation Mechanisms
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide/transaction/" title="Distributed Transactions" class="md-nav__link">
Distributed Transactions
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide/faq/" title="FAQ" class="md-nav__link">
FAQ
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
<label class="md-nav__link" for="nav-3">
使用指南
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-3">
使用指南
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-guide-cn/getting-started/" title="快速开始" class="md-nav__link">
快速开始
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide-cn/api-interface/" title="API 接口" class="md-nav__link">
API 接口
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide-cn/configuration/" title="配置" class="md-nav__link">
配置
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide-cn/design-principle/" title="设计原理" class="md-nav__link">
设计原理
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide-cn/implementation-mechanisms/" title="实现" class="md-nav__link">
实现
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide-cn/distributed-transactions/" title="分布式事务" class="md-nav__link">
分布式事务
</a>
</li>
<li class="md-nav__item">
<a href="../../user-guide-cn/faq/" title="FAQ" class="md-nav__link">
FAQ
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4" checked>
<label class="md-nav__link" for="nav-4">
About
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-4">
About
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../release-notes/" title="Release Notes" class="md-nav__link">
Release Notes
</a>
</li>
<li class="md-nav__item">
<a href="../contributing/" title="Contributing" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../contact-us/" title="Contact Us" class="md-nav__link">
Contact Us
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<a href="./" title="License" class="md-nav__link md-nav__link--active">
License
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary">
</nav>
</div>
</div>
</div>
<div class="md-content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/dotnetcore/cap/edit/master/docs/about/license.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="license">License<a class="headerlink" href="#license" title="Permanent link">&para;</a></h1>
<p><strong>MIT License</strong></p>
<p>Copyright &copy; 2016 - 2019 Saborboard</p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.</p>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid">
<a href="../contact-us/" title="Contact Us" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
</div>
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Previous
</span>
Contact Us
</span>
</div>
</a>
</nav>
</div>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
<div class="md-footer-copyright__highlight">
Copyright &copy; 2017 <a href="https://github.com/dotnetcore">.NET Core Community</a>, Maintained by the <a href="/about/contact-us/#cap-team">CAP Team</a>.
</div>
powered by
<a href="https://www.mkdocs.org">MkDocs</a>
and
<a href="https://squidfunk.github.io/mkdocs-material/">
Material for MkDocs</a>
</div>
<div class="md-footer-social">
<link rel="stylesheet" href="../../assets/fonts/font-awesome.css">
<a href="https://github.com/dotnetcore/cap" class="md-footer-social__link fa fa-github"></a>
<a href="https://twitter.com/ncc_community" class="md-footer-social__link fa fa-twitter"></a>
<a href="https://weibo.com/dotnetcore" class="md-footer-social__link fa fa-weibo"></a>
</div>
</div>
</div>
</footer>
</div>
<script src="../../assets/javascripts/application.a353778b.js"></script>
<script>app.initialize({version:"1.0.4",url:{base:"../.."}})</script>
</body>
</html>
\ No newline at end of file
......@@ -624,6 +624,125 @@
</li>
<li class="md-nav__item">
<a href="#version-225-2018-07-19" title="Version 2.2.5 (2018-07-19)" class="md-nav__link">
Version 2.2.5 (2018-07-19)
</a>
</li>
<li class="md-nav__item">
<a href="#version-224-2018-06-05" title="Version 2.2.4 (2018-06-05)" class="md-nav__link">
Version 2.2.4 (2018-06-05)
</a>
</li>
<li class="md-nav__item">
<a href="#version-223-2018-06-05" title="Version 2.2.3 (2018-06-05)" class="md-nav__link">
Version 2.2.3 (2018-06-05)
</a>
</li>
<li class="md-nav__item">
<a href="#version-222-2018-04-28" title="Version 2.2.2 (2018-04-28)" class="md-nav__link">
Version 2.2.2 (2018-04-28)
</a>
</li>
<li class="md-nav__item">
<a href="#version-221-2018-04-18" title="Version 2.2.1 (2018-04-18)" class="md-nav__link">
Version 2.2.1 (2018-04-18)
</a>
</li>
<li class="md-nav__item">
<a href="#version-220-2018-04-17" title="Version 2.2.0 (2018-04-17)" class="md-nav__link">
Version 2.2.0 (2018-04-17)
</a>
</li>
<li class="md-nav__item">
<a href="#version-214-2018-03-16" title="Version 2.1.4 (2018-03-16)" class="md-nav__link">
Version 2.1.4 (2018-03-16)
</a>
</li>
<li class="md-nav__item">
<a href="#version-213-2018-01-24" title="Version 2.1.3 (2018-01-24)" class="md-nav__link">
Version 2.1.3 (2018-01-24)
</a>
</li>
<li class="md-nav__item">
<a href="#version-212-2017-12-18" title="Version 2.1.2 (2017-12-18)" class="md-nav__link">
Version 2.1.2 (2017-12-18)
</a>
</li>
<li class="md-nav__item">
<a href="#version-211-2017-11-28" title="Version 2.1.1 (2017-11-28)" class="md-nav__link">
Version 2.1.1 (2017-11-28)
</a>
</li>
<li class="md-nav__item">
<a href="#version-210-2017-11-17" title="Version 2.1.0 (2017-11-17)" class="md-nav__link">
Version 2.1.0 (2017-11-17)
</a>
</li>
<li class="md-nav__item">
<a href="#version-202-2017-09-29" title="Version 2.0.2 (2017-09-29)" class="md-nav__link">
Version 2.0.2 (2017-09-29)
</a>
</li>
<li class="md-nav__item">
<a href="#version-201-2017-09-16" title="Version 2.0.1 (2017-09-16)" class="md-nav__link">
Version 2.0.1 (2017-09-16)
</a>
</li>
<li class="md-nav__item">
<a href="#version-200-2017-09-01" title="Version 2.0.0 (2017-09-01)" class="md-nav__link">
Version 2.0.0 (2017-09-01)
</a>
</li>
<li class="md-nav__item">
<a href="#version-110-2017-08-04" title="Version 1.1.0 (2017-08-04)" class="md-nav__link">
Version 1.1.0 (2017-08-04)
</a>
</li>
<li class="md-nav__item">
<a href="#version-101-2017-07-25" title="Version 1.0.1 (2017-07-25)" class="md-nav__link">
Version 1.0.1 (2017-07-25)
</a>
</li>
<li class="md-nav__item">
<a href="#version-100-2017-07-19" title="Version 1.0.0 (2017-07-19)" class="md-nav__link">
Version 1.0.0 (2017-07-19)
</a>
</li>
......@@ -659,6 +778,18 @@
</li>
<li class="md-nav__item">
<a href="../license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......@@ -719,6 +850,125 @@
</li>
<li class="md-nav__item">
<a href="#version-225-2018-07-19" title="Version 2.2.5 (2018-07-19)" class="md-nav__link">
Version 2.2.5 (2018-07-19)
</a>
</li>
<li class="md-nav__item">
<a href="#version-224-2018-06-05" title="Version 2.2.4 (2018-06-05)" class="md-nav__link">
Version 2.2.4 (2018-06-05)
</a>
</li>
<li class="md-nav__item">
<a href="#version-223-2018-06-05" title="Version 2.2.3 (2018-06-05)" class="md-nav__link">
Version 2.2.3 (2018-06-05)
</a>
</li>
<li class="md-nav__item">
<a href="#version-222-2018-04-28" title="Version 2.2.2 (2018-04-28)" class="md-nav__link">
Version 2.2.2 (2018-04-28)
</a>
</li>
<li class="md-nav__item">
<a href="#version-221-2018-04-18" title="Version 2.2.1 (2018-04-18)" class="md-nav__link">
Version 2.2.1 (2018-04-18)
</a>
</li>
<li class="md-nav__item">
<a href="#version-220-2018-04-17" title="Version 2.2.0 (2018-04-17)" class="md-nav__link">
Version 2.2.0 (2018-04-17)
</a>
</li>
<li class="md-nav__item">
<a href="#version-214-2018-03-16" title="Version 2.1.4 (2018-03-16)" class="md-nav__link">
Version 2.1.4 (2018-03-16)
</a>
</li>
<li class="md-nav__item">
<a href="#version-213-2018-01-24" title="Version 2.1.3 (2018-01-24)" class="md-nav__link">
Version 2.1.3 (2018-01-24)
</a>
</li>
<li class="md-nav__item">
<a href="#version-212-2017-12-18" title="Version 2.1.2 (2017-12-18)" class="md-nav__link">
Version 2.1.2 (2017-12-18)
</a>
</li>
<li class="md-nav__item">
<a href="#version-211-2017-11-28" title="Version 2.1.1 (2017-11-28)" class="md-nav__link">
Version 2.1.1 (2017-11-28)
</a>
</li>
<li class="md-nav__item">
<a href="#version-210-2017-11-17" title="Version 2.1.0 (2017-11-17)" class="md-nav__link">
Version 2.1.0 (2017-11-17)
</a>
</li>
<li class="md-nav__item">
<a href="#version-202-2017-09-29" title="Version 2.0.2 (2017-09-29)" class="md-nav__link">
Version 2.0.2 (2017-09-29)
</a>
</li>
<li class="md-nav__item">
<a href="#version-201-2017-09-16" title="Version 2.0.1 (2017-09-16)" class="md-nav__link">
Version 2.0.1 (2017-09-16)
</a>
</li>
<li class="md-nav__item">
<a href="#version-200-2017-09-01" title="Version 2.0.0 (2017-09-01)" class="md-nav__link">
Version 2.0.0 (2017-09-01)
</a>
</li>
<li class="md-nav__item">
<a href="#version-110-2017-08-04" title="Version 1.1.0 (2017-08-04)" class="md-nav__link">
Version 1.1.0 (2017-08-04)
</a>
</li>
<li class="md-nav__item">
<a href="#version-101-2017-07-25" title="Version 1.0.1 (2017-07-25)" class="md-nav__link">
Version 1.0.1 (2017-07-25)
</a>
</li>
<li class="md-nav__item">
<a href="#version-100-2017-07-19" title="Version 1.0.0 (2017-07-19)" class="md-nav__link">
Version 1.0.0 (2017-07-19)
</a>
</li>
......@@ -807,7 +1057,7 @@ db.CapReceivedMessage.update({},{&quot;$set&quot; : {&quot;Version&quot; : &quot
</ul>
<h2 id="version-230-2018-08-30">Version 2.3.0 (2018-08-30)<a class="headerlink" href="#version-230-2018-08-30" title="Permanent link">&para;</a></h2>
<p>In this version, we made some breaking changes for the publisher API, you can see this blog to understand the story behind.</p>
<p>If you have any migration question, please comment in issue <a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/190" title="GitHub Issue: dotnetcore/cap#190">#190</a>.</p>
<p>If you have any migration question, please comment in issue (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/190" title="GitHub Issue: dotnetcore/cap#190">#190</a>).</p>
<p><strong>Breaking Changes:</strong></p>
<ul>
<li>Removed app.UseCap() from Startup.cs</li>
......@@ -824,6 +1074,169 @@ db.CapReceivedMessage.update({},{&quot;$set&quot; : {&quot;Version&quot; : &quot
<li>Fix message still sent if transaction faild bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/118" title="GitHub Issue: dotnetcore/cap#118">#118</a>)</li>
<li>Multiple events in one transaction. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/171" title="GitHub Issue: dotnetcore/cap#171">#171</a>)</li>
</ul>
<h2 id="version-225-2018-07-19">Version 2.2.5 (2018-07-19)<a class="headerlink" href="#version-225-2018-07-19" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong>
- Performance improvement</p>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed message enqueue exception.</li>
<li>Fixed Retry processor bugs.</li>
<li>Fixed Kafka producer exception log without logging when publish message.</li>
<li>Fixed Incorrect local IP address judgment of IPv6. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/140" title="GitHub Issue: dotnetcore/cap#140">#140</a>)</li>
<li>Fixed DateTime localization format conversion error to sql. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/139" title="GitHub Issue: dotnetcore/cap#139">#139</a>)</li>
<li>Fixed dashboard message page re-requeue and re-executed operate bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/158" title="GitHub Issue: dotnetcore/cap#158">#158</a>)</li>
<li>Fixed SendAsync or ExecuteAsync recursion retries bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/160" title="GitHub Issue: dotnetcore/cap#160">#160</a>)</li>
<li>Fixed configuration options of FailedThresholdCallback could not be invoke when the value less then three. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/161" title="GitHub Issue: dotnetcore/cap#161">#161</a>)</li>
</ul>
<h2 id="version-224-2018-06-05">Version 2.2.4 (2018-06-05)<a class="headerlink" href="#version-224-2018-06-05" title="Permanent link">&para;</a></h2>
<p>Because version 2.2.3 was not released to nuget, so released 2.2.4.</p>
<h2 id="version-223-2018-06-05">Version 2.2.3 (2018-06-05)<a class="headerlink" href="#version-223-2018-06-05" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>Improved log output.</li>
<li>Upgrade nuget packages.</li>
<li>Support pattern matching for consumer. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/132" title="GitHub Issue: dotnetcore/cap#132">#132</a>)</li>
</ul>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed exception thrown when terminate the program with Ctrl+C. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/130" title="GitHub Issue: dotnetcore/cap#130">#130</a>)</li>
</ul>
<h2 id="version-222-2018-04-28">Version 2.2.2 (2018-04-28)<a class="headerlink" href="#version-222-2018-04-28" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>Improved log output. <a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/114" title="GitHub Issue: dotnetcore/cap#114">#114</a></li>
<li>Add default timeout configuration for kafka client.</li>
<li>Rename configuration options FailedCallback to FailedThresholdCallback.</li>
</ul>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed message enqueue exception.</li>
<li>Fixed retry processor bugs.</li>
<li>Fixed kafka producer exception log without logging when publish message.</li>
</ul>
<h2 id="version-221-2018-04-18">Version 2.2.1 (2018-04-18)<a class="headerlink" href="#version-221-2018-04-18" title="Permanent link">&para;</a></h2>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed message enqueue bug in v2.2</li>
</ul>
<h2 id="version-220-2018-04-17">Version 2.2.0 (2018-04-17)<a class="headerlink" href="#version-220-2018-04-17" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>Remove database queue mode. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/102" title="GitHub Issue: dotnetcore/cap#102">#102</a>)</li>
<li>Support for Diagnostics. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/112" title="GitHub Issue: dotnetcore/cap#112">#112</a>)</li>
<li>Upgrade dependent nuget packages.</li>
</ul>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed bug of the FailedRetryCount does not increase when raised SubscribeNotFoundException. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/90" title="GitHub Issue: dotnetcore/cap#90">#90</a>)</li>
</ul>
<h2 id="version-214-2018-03-16">Version 2.1.4 (2018-03-16)<a class="headerlink" href="#version-214-2018-03-16" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>Remove TableNamePrefix option from MySqlOptions to EFOptions.</li>
<li>Upgrade nuget package</li>
</ul>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed the connection bug of getting message from table. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/83" title="GitHub Issue: dotnetcore/cap#83">#83</a>)</li>
<li>Fixed entityframework rename table name prefix bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/84" title="GitHub Issue: dotnetcore/cap#84">#84</a>)</li>
<li>Fixed sql server scripts bug of create table scheme. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/85" title="GitHub Issue: dotnetcore/cap#85">#85</a>)</li>
<li>Fixed thread safety issue about KafkaOptions.(<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/89" title="GitHub Issue: dotnetcore/cap#89">#89</a>)</li>
</ul>
<h2 id="version-213-2018-01-24">Version 2.1.3 (2018-01-24)<a class="headerlink" href="#version-213-2018-01-24" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>Upgrade dependent nuget packages version.</li>
<li>NuGet package include xml doc now.</li>
<li>NuGet now contains the CAP symbol files.</li>
</ul>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed thread conflict issue when sending messages with PublishAsync. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/80" title="GitHub Issue: dotnetcore/cap#80">#80</a>)</li>
<li>Fixed kafka received message sava failed may caused the mssage loss bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/78" title="GitHub Issue: dotnetcore/cap#78">#78</a>)</li>
<li>Fixed dashboard js syntax issue. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/77" title="GitHub Issue: dotnetcore/cap#77">#77</a>)</li>
</ul>
<h2 id="version-212-2017-12-18">Version 2.1.2 (2017-12-18)<a class="headerlink" href="#version-212-2017-12-18" title="Permanent link">&para;</a></h2>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed and improve the performance of mysql processing messages. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/68" title="GitHub Issue: dotnetcore/cap#68">#68</a>) (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/36" title="GitHub Issue: dotnetcore/cap#36">#36</a>)</li>
<li>Fixed dashboard manually trigger reconsumption bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/67" title="GitHub Issue: dotnetcore/cap#67">#67</a>)</li>
<li>Fixed mysql 5.5 table initialization bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/65" title="GitHub Issue: dotnetcore/cap#65">#65</a>)</li>
<li>Fixed mysql message queue executor bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/66" title="GitHub Issue: dotnetcore/cap#66">#66</a>)</li>
</ul>
<h2 id="version-211-2017-11-28">Version 2.1.1 (2017-11-28)<a class="headerlink" href="#version-211-2017-11-28" title="Permanent link">&para;</a></h2>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed 'dotnet.exe' process incomplete quit when shutdown application (Ctrl+C). (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/64" title="GitHub Issue: dotnetcore/cap#64">#64</a>)</li>
<li>Fixed failure to issue as expected of RabbitMQ SubscriberNotFoundException. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/63" title="GitHub Issue: dotnetcore/cap#63">#63</a>)</li>
<li>Fixed Sent async message in the loop causes an exception. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/62" title="GitHub Issue: dotnetcore/cap#62">#62</a>)</li>
</ul>
<h2 id="version-210-2017-11-17">Version 2.1.0 (2017-11-17)<a class="headerlink" href="#version-210-2017-11-17" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>Interface display optimization of dashboard.</li>
<li>Adds a more friendly display when looks at the message content.</li>
<li>Now you can see the exception infomation in the message conent filed when message send or executed failed.</li>
<li>Optimize LAN to see Dashboard without authentication.</li>
<li>Add IContentSerializer interface, you can customize the serialized message content.</li>
<li>Add IMessagePacker interface, you can customize wapper of the message.</li>
<li>Upgrade the dependent package.</li>
</ul>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed dashboard query bugs.</li>
<li>Fixed dashboard multilanguage display bugs.</li>
<li>Fixed RabbitMQ connection pool bug.</li>
<li>Fixed dashboard display bugs on mobile.</li>
</ul>
<h2 id="version-202-2017-09-29">Version 2.0.2 (2017-09-29)<a class="headerlink" href="#version-202-2017-09-29" title="Permanent link">&para;</a></h2>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed asp.net core 2.0 startup error of MySql and PostgreSql. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/44" title="GitHub Issue: dotnetcore/cap#44">#44</a></li>
</ul>
<h2 id="version-201-2017-09-16">Version 2.0.1 (2017-09-16)<a class="headerlink" href="#version-201-2017-09-16" title="Permanent link">&para;</a></h2>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>DbContext services bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/44" title="GitHub Issue: dotnetcore/cap#44">#44</a>)</li>
<li>Dependency injection bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/45" title="GitHub Issue: dotnetcore/cap#45">#45</a>)</li>
</ul>
<h2 id="version-200-2017-09-01">Version 2.0.0 (2017-09-01)<a class="headerlink" href="#version-200-2017-09-01" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>Supported .net standard 2.0.</li>
<li>Supported PostgreSQL 9.5+.</li>
<li>Supported asynchronous function subscriptions.</li>
<li><code class="codehilite">ICapPublisher</code> api supported callback subsrciber.</li>
</ul>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed multiple subscriber subscribe bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/38" title="GitHub Issue: dotnetcore/cap#38">#38</a>)</li>
<li>Fixed model binde bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/17" title="GitHub Issue: dotnetcore/cap#17">#17</a>) (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/18" title="GitHub Issue: dotnetcore/cap#18">#18</a>)</li>
<li>Fixed database connection disposed bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/25" title="GitHub Issue: dotnetcore/cap#25">#25</a>)</li>
<li>Fixed consumer method injection context bug. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/34" title="GitHub Issue: dotnetcore/cap#34">#34</a>)</li>
</ul>
<h2 id="version-110-2017-08-04">Version 1.1.0 (2017-08-04)<a class="headerlink" href="#version-110-2017-08-04" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>Support MySQL database persistent message.</li>
<li>Add message failed call-back in CapOptions.</li>
<li>Remove publish messages API of string name at <code class="codehilite">ICapPublisher</code>.</li>
</ul>
<p><strong>Bug Fixed:</strong></p>
<ul>
<li>Fixed can not send message for string type. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/17" title="GitHub Issue: dotnetcore/cap#17">#17</a>)</li>
<li>Fixed model bind for type like datetime guid always failed. (<a class="magiclink magiclink-github magiclink-issue" href="https://github.com/dotnetcore/cap/issues/18" title="GitHub Issue: dotnetcore/cap#18">#18</a>)</li>
</ul>
<h2 id="version-101-2017-07-25">Version 1.0.1 (2017-07-25)<a class="headerlink" href="#version-101-2017-07-25" title="Permanent link">&para;</a></h2>
<p><strong>Features:</strong></p>
<ul>
<li>ICapPublisher interface added synchronous publish API.</li>
<li>Add infinity retry failed processor.</li>
</ul>
<h2 id="version-100-2017-07-19">Version 1.0.0 (2017-07-19)<a class="headerlink" href="#version-100-2017-07-19" title="Permanent link">&para;</a></h2>
<ul>
<li>Project published</li>
</ul>
......
......@@ -641,6 +641,18 @@
</li>
<li class="md-nav__item">
<a href="about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,92 +2,97 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://cap.dotnet-china.com/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide/getting-started/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide/api-interface/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide/configuration/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide/design/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide/implementation/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide/transaction/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide/faq/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide-cn/getting-started/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide-cn/api-interface/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide-cn/configuration/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide-cn/design-principle/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide-cn/implementation-mechanisms/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide-cn/distributed-transactions/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/user-guide-cn/faq/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/about/release-notes/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/about/contributing/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/about/contact-us/</loc>
<lastmod>2019-02-12</lastmod>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://cap.dotnet-china.com/about/license/</loc>
<lastmod>2019-02-21</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>
\ No newline at end of file
No preview for this file type
......@@ -667,6 +667,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -682,6 +682,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -661,6 +661,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -627,6 +627,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -596,6 +596,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -641,6 +641,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -655,6 +655,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -704,6 +704,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -679,6 +679,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -652,6 +652,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -602,6 +602,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -374,10 +374,30 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#usage-scenarios" title="Usage Scenarios" class="md-nav__link">
Usage Scenarios
<a href="#usage" title="Usage" class="md-nav__link">
Usage
</a>
<nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#1-distributed-transaction-alternative-solution-in-micro-service-base-on-eventually-consistency" title="1. Distributed transaction alternative solution in micro-service base on eventually consistency" class="md-nav__link">
1. Distributed transaction alternative solution in micro-service base on eventually consistency
</a>
</li>
<li class="md-nav__item">
<a href="#2-eventbus-with-outbox-pattern" title="2. EventBus with Outbox pattern" class="md-nav__link">
2. EventBus with Outbox pattern
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
......@@ -403,7 +423,7 @@
</li>
<li class="md-nav__item">
<a href="#usage" title="Usage" class="md-nav__link">
<a href="#usage_1" title="Usage" class="md-nav__link">
Usage
</a>
......@@ -685,6 +705,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......@@ -711,10 +743,30 @@
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#usage-scenarios" title="Usage Scenarios" class="md-nav__link">
Usage Scenarios
<a href="#usage" title="Usage" class="md-nav__link">
Usage
</a>
<nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#1-distributed-transaction-alternative-solution-in-micro-service-base-on-eventually-consistency" title="1. Distributed transaction alternative solution in micro-service base on eventually consistency" class="md-nav__link">
1. Distributed transaction alternative solution in micro-service base on eventually consistency
</a>
</li>
<li class="md-nav__item">
<a href="#2-eventbus-with-outbox-pattern" title="2. EventBus with Outbox pattern" class="md-nav__link">
2. EventBus with Outbox pattern
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
......@@ -740,7 +792,7 @@
</li>
<li class="md-nav__item">
<a href="#usage" title="Usage" class="md-nav__link">
<a href="#usage_1" title="Usage" class="md-nav__link">
Usage
</a>
......@@ -791,27 +843,24 @@
<h1 id="getting-stared">Getting Stared<a class="headerlink" href="#getting-stared" title="Permanent link">&para;</a></h1>
<h2 id="usage-scenarios">Usage Scenarios<a class="headerlink" href="#usage-scenarios" title="Permanent link">&para;</a></h2>
<p>The usage scenarios of CAP mainly include the following two:</p>
<div class="bs-callout bs-callout-primary">
<h4>1. The scheme of eventual consistency in distributed transactions</h4><br>
In the process of building an SOA or MicroService system, we usually need to use the event to integrate each services. In the process, the simple use of message queue does not guarantee the reliability. CAP is adopted the local message table program integrated with the current database to solve the exception may occur in the process of the distributed system calling each other. It can ensure that the event messages are not lost in any case.
<br><br>
Distributed transactions are an inevitable requirement in a distributed system, and the current solution for distributed transactions is nothing more than just a few. Before understanding the CAP's distributed transaction scenarios, you can read the following [Articles] (http://www.infoq.com/en/articles/solution-of-distributed-system-transaction-consistency).
<br><br>
The CAP does not use the two-phase commit (2PC) transaction mechanism, but uses the classical message implementation of the local message table + MQ, which is also called asynchronous guarantee.
<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
<h4 id="1-distributed-transaction-alternative-solution-in-micro-service-base-on-eventually-consistency">1. Distributed transaction alternative solution in micro-service base on eventually consistency<a class="headerlink" href="#1-distributed-transaction-alternative-solution-in-micro-service-base-on-eventually-consistency" title="Permanent link">&para;</a></h4>
<p>A distributed transaction is a very complex process with a lot of moving parts that can fail. Also, if these parts run on different machines or even in different data centers, the process of committing a transaction could become very long and unreliable.</p>
<p>This could seriously affect the user experience and overall system bandwidth. So one of the best ways to solve the problem of distributed transactions is to avoid them completely.</p>
<p>Usually, a microservice is designed in such way as to be independent and useful on its own. It should be able to solve some atomic business task.</p>
<p>If we could split our system in such microservices, there’s a good chance we wouldn’t need to implement transactions between them at all. </p>
<p>By far, one of the most feasible models of handling consistency across microservices is eventual consistency. This model doesn’t enforce distributed ACID transactions across microservices. Instead, it proposes to use some mechanisms of ensuring that the system would be eventually consistent at some point in the future.</p>
<p>CAP ia an alternative solution without transactions, it comply the eventually consistency and implement base on message queue. </p>
<h4 id="2-eventbus-with-outbox-pattern">2. EventBus with Outbox pattern<a class="headerlink" href="#2-eventbus-with-outbox-pattern" title="Permanent link">&para;</a></h4>
<p>CAP is an event bus that implements the Outbox pattern, Outbox is an infrastructure feature which simulates the reliability of distributed transactions without requiring use of the Distributed Transaction Coordinator(DTC).</p>
<p>The outbox feature can be used instead of the DTC to mimic the same level of consistency without using distributed transactions.</p>
<div class="admonition tip">
<p class="admonition-title">CAP implements the Outbox Pattern described in the <a href="https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/subscribe-events#designing-atomicity-and-resiliency-when-publishing-to-the-event-bus">eShop ebook</a></p>
<p><img src="https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/media/image24.png"></p>
<blockquote>
<p>Atomicity when publishing events to the event bus with a worker microservice</p>
</blockquote>
</div>
<div class="bs-callout bs-callout-primary">
<h4>2. Highly usable EventBus</h4><br>
You can also use the CAP as an EventBus. The CAP provides a simpler way to implement event publishing and subscriptions. You do not need to inherit or implement any interface during the process of subscription and sending.
<br><br>
CAP implements the publish and subscribe method of EventBus, which has all the features of EventBus. This means that you can use CAPs just like EventBus. In addition, CAP's EventBus is highly available. What does this mean?
<br><br>
The CAP uses the local message table to persist the messages in the EventBus. This ensures that the messages sent by the EventBus are reliable. When the message queue fails or fails, the messages are not lost.
</div>
<h2 id="quick-start">Quick Start<a class="headerlink" href="#quick-start" title="Permanent link">&para;</a></h2>
<h3 id="nuget-package">NuGet Package<a class="headerlink" href="#nuget-package" title="Permanent link">&para;</a></h3>
<p>Use the following command to reference the CAP NuGet package:</p>
......@@ -823,8 +872,8 @@ The CAP uses the local message table to persist the messages in the EventBus. Th
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span>1
2
3</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>PM&gt; Install-Package DotNetCore.CAP.RabbitMQ
PM&gt; Install-Package DotNetCore.CAP.Kafka
PM&gt; Install-Package DotNetCore.CAP.AzureServiceBus
</pre></div>
</td></tr></table>
......@@ -832,15 +881,9 @@ PM&gt; Install-Package DotNetCore.CAP.Kafka
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span>1
2
3
4
5
6
7</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>PM&gt; Install-Package DotNetCore.CAP.SqlServer
4</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>PM&gt; Install-Package DotNetCore.CAP.SqlServer
PM&gt; Install-Package DotNetCore.CAP.MySql
PM&gt; Install-Package DotNetCore.CAP.PostgreSql
PM&gt; Install-Package DotNetCore.CAP.MongoDB
</pre></div>
</td></tr></table>
......@@ -905,7 +948,7 @@ PM&gt; Install-Package DotNetCore.CAP.MongoDB
</pre></div>
</td></tr></table>
<h3 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h3>
<h3 id="usage_1">Usage<a class="headerlink" href="#usage_1" title="Permanent link">&para;</a></h3>
<h4 id="publish">Publish<a class="headerlink" href="#publish" title="Permanent link">&para;</a></h4>
<p>Inject <code class="codehilite">ICapPublisher</code> in your Controller, then use the <code class="codehilite">ICapPublisher</code> to send message</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span> 1
......
......@@ -659,6 +659,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
......@@ -631,6 +631,18 @@
</li>
<li class="md-nav__item">
<a href="../../about/license/" title="License" class="md-nav__link">
License
</a>
</li>
</ul>
</nav>
</li>
......
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