You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

getting-started.md 3.1 KiB

add docs to master (#284) * update version to 2.4.0 * Add version options to config file. * update resource * add message version support for dashboard * add message version support for dashboard * Support using version to isolate messages. #220 * update mongo unit tests * update unit tests * update unit tests * Set default versions for consumer groups * solve the problem of issue#181 (#237) * Issue#235 (#238) * solve the problem of issue#181 * solve the problem of issue#235 * refactor * Fix the message persistence bug. #240 * using new CamelCaseNamingStrategy * update packages to .net core 2.2 * update test framework to netcoreapp2.2 * Update .travis.yml * update TargetFramework * Exclude build samples project * update version to 2.4.1 * add samples project to sln for build * update version to 2.4.2 * Fixed PostgreSql version isolation feature bug. (#256) * Fixed spelling errors * modify cap publish Message to rabbitmq slow (#261) * Startup the CAP with the BackgroundService. #265 * update samples * Fixed SQL query bug. #266 * update travis ci config * update travis ci config * adjust dashboard table column width * adjust the consumer execution time to milliseconds * update ignore * add mkdocs.yml * update version to 2.4.3 * add about.md docs * add index.md docs * add docs * add docs * add docs * add docs * add docs * add docs * add docs * add docs * add docs * add docs * add docs * Fix resource files * add docs * add docs * add docs * Create readme.md * add markdown extensions supports * update about.md * add CNAME fiel * add img * update docs * Update README.zh-cn.md
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. ### 介绍
  2. CAP 是一个遵循 .NET Standard 标准库的C#库,用来处理分布式事务以及提供EventBus的功能,她具有轻量级,高性能,易使用等特点。
  3. 目前 CAP 使用的是 .NET Standard 1.6 的标准进行开发,目前最新预览版本已经支持 .NET Standard 2.0.
  4. ### 应用场景
  5. CAP 的应用场景主要有以下两个:
  6. * 1. 分布式事务中的最终一致性(异步确保)的方案。
  7. 分布式事务是在分布式系统中不可避免的一个硬性需求,而目前的分布式事务的解决方案也无外乎就那么几种,在了解 CAP 的分布式事务方案前,可以阅读以下 [这篇文章](http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency)。
  8. CAP 没有采用两阶段提交(2PC)这种事务机制,而是采用的 本地消息表+MQ 这种经典的实现方式,这种方式又叫做 异步确保。
  9. * 2. 具有高可用性的 EventBus。
  10. CAP 实现了 EventBus 中的发布/订阅,它具有 EventBus 的所有功能。也就是说你可以像使用 EventBus 一样来使用 CAP,另外 CAP 的 EventBus 是具有高可用性的,这是什么意思呢?
  11. CAP 借助于本地消息表来对 EventBus 中的消息进行了持久化,这样可以保证 EventBus 发出的消息是可靠的,当消息队列出现宕机或者连接失败的情况时,消息也不会丢失。
  12. ### Quick Start
  13. * **引用 NuGet 包**
  14. 使用一下命令来引用CAP的NuGet包:
  15. ```
  16. PM> Install-Package DotNetCore.CAP
  17. ```
  18. 根据使用的不同类型的消息队列,来引入不同的扩展包:
  19. ```
  20. PM> Install-Package DotNetCore.CAP.RabbitMQ
  21. PM> Install-Package DotNetCore.CAP.Kafka
  22. ```
  23. 根据使用的不同类型的数据库,来引入不同的扩展包:
  24. ```
  25. PM> Install-Package DotNetCore.CAP.SqlServer
  26. PM> Install-Package DotNetCore.CAP.MySql
  27. PM> Install-Package DotNetCore.CAP.PostgreSql
  28. PM> Install-Package DotNetCore.CAP.MongoDB
  29. ```
  30. * **启动配置**
  31. 在 ASP.NET Core 程序中,你可以在 `Startup.cs` 文件 `ConfigureServices()` 中配置 CAP 使用到的服务:
  32. ```cs
  33. public void ConfigureServices(IServiceCollection services)
  34. {
  35. //......
  36. services.AddDbContext<AppDbContext>(); //Options, If you are using EF as the ORM
  37. services.AddSingleton<IMongoClient>(new MongoClient("")); //Options, If you are using MongoDB
  38. services.AddCap(x =>
  39. {
  40. // If you are using EF, you need to add the configuration:
  41. x.UseEntityFramework<AppDbContext>(); //Options, Notice: You don't need to config x.UseSqlServer(""") again! CAP can autodiscovery.
  42. // If you are using Ado.Net, you need to add the configuration:
  43. x.UseSqlServer("Your ConnectionStrings");
  44. x.UseMySql("Your ConnectionStrings");
  45. x.UsePostgreSql("Your ConnectionStrings");
  46. // If you are using MongoDB, you need to add the configuration:
  47. x.UseMongoDB("Your ConnectionStrings"); //MongoDB 4.0+ cluster
  48. // If you are using RabbitMQ, you need to add the configuration:
  49. x.UseRabbitMQ("localhost");
  50. // If you are using Kafka, you need to add the configuration:
  51. x.UseKafka("localhost");
  52. });
  53. }
  54. ```