Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

1.Getting-Started.md 2.9 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. ## 1、Getting Started
  2. ### 1.1 介绍
  3. CAP 是一个遵循 .NET Standard 标准库的C#库,用来处理分布式事务以及提供EventBus的功能,她具有轻量级,高性能,易使用等特点。
  4. 目前 CAP 使用的是 .NET Standard 1.6 的标准进行开发,目前最新预览版本已经支持 .NET Standard 2.0.
  5. ### 1.2 应用场景
  6. CAP 的应用场景主要有以下两个:
  7. * 1. 分布式事务中的最终一致性(异步确保)的方案。
  8. 分布式事务是在分布式系统中不可避免的一个硬性需求,而目前的分布式事务的解决方案也无外乎就那么几种,在了解 CAP 的分布式事务方案前,可以阅读以下 [这篇文章](http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency)。
  9. CAP 没有采用两阶段提交(2PC)这种事务机制,而是采用的 本地消息表+MQ 这种经典的实现方式,这种方式又叫做 异步确保。
  10. * 2. 具有高可用性的 EventBus。
  11. CAP 实现了 EventBus 中的发布/订阅,它具有 EventBus 的所有功能。也就是说你可以像使用 EventBus 一样来使用 CAP,另外 CAP 的 EventBus 是具有高可用性的,这是什么意思呢?
  12. CAP 借助于本地消息表来对 EventBus 中的消息进行了持久化,这样可以保证 EventBus 发出的消息是可靠的,当消息队列出现宕机或者连接失败的情况时,消息也不会丢失。
  13. ### 1.3 Quick Start
  14. * **引用 NuGet 包**
  15. 使用一下命令来引用CAP的NuGet包:
  16. ```
  17. PM> Install-Package DotNetCore.CAP
  18. ```
  19. 根据使用的不同类型的消息队列,来引入不同的扩展包:
  20. ```
  21. PM> Install-Package DotNetCore.CAP.RabbitMQ
  22. PM> Install-Package DotNetCore.CAP.Kafka
  23. ```
  24. 根据使用的不同类型的数据库,来引入不同的扩展包:
  25. ```
  26. PM> Install-Package DotNetCore.CAP.SqlServer
  27. PM> Install-Package DotNetCore.CAP.MySql
  28. ```
  29. * **启动配置**
  30. 在 ASP.NET Core 程序中,你可以在 `Startup.cs` 文件 `ConfigureServices()` 中配置 CAP 使用到的服务:
  31. ```cs
  32. public void ConfigureServices(IServiceCollection services)
  33. {
  34. services.AddDbContext<AppDbContext>();
  35. services.AddCap(x =>
  36. {
  37. // If your SqlServer is using EF for data operations, you need to add the following configuration:
  38. // Notice: You don't need to config x.UseSqlServer(""") again!
  39. x.UseEntityFramework<AppDbContext>();
  40. // If you are using Dapper,you need to add the config:
  41. x.UseSqlServer("Your ConnectionStrings");
  42. // If your Message Queue is using RabbitMQ you need to add the config:
  43. x.UseRabbitMQ("localhost");
  44. // If your Message Queue is using Kafka you need to add the config:
  45. x.UseKafka("localhost");
  46. });
  47. }
  48. ```
  49. 在 `Configure()` 中配置启动 CAP :
  50. ```
  51. public void Configure(IApplicationBuilder app)
  52. {
  53. app.UseCap();
  54. }
  55. ```