Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

README.zh-cn.md 3.9 KiB

před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
před 7 roky
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. # CAP [English](https://github.com/dotnetcore/CAP/blob/master/README.md)
  2. [![Travis branch](https://img.shields.io/travis/dotnetcore/CAP/master.svg?label=travis-ci)](https://travis-ci.org/dotnetcore/CAP)
  3. [![AppVeyor](https://ci.appveyor.com/api/projects/status/4mpe0tbu7n126vyw?svg=true)](https://ci.appveyor.com/project/yuleyule66/cap)
  4. [![NuGet](https://img.shields.io/nuget/vpre/DotNetCore.CAP.svg)](https://www.nuget.org/packages/DotNetCore.CAP/)
  5. [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/dotnetcore/CAP/master/LICENSE.txt)
  6. CAP һڷֲʽϵͳSOAMicroServiceʵһԵĿ⣬ʹáܵص㡣
  7. ## ԤOverView
  8. CAP һ ASP.NET Core ĿʹõĿ⣬Ȼ ASP.NET Core On .NET Framework С
  9. ԰ CAP һ EventBusΪ EventBus йܣ CAP ṩ˸Ӽ򻯵ķʽ EventBus еķͶġ
  10. CAP Ϣ־ûĹܣķ崻ʱԱ֤ϢĿɿԡCAPṩ˻Microsoft DI Publisher Service Ժҵ޷ϣ֧ǿһԵ
  11. CAPASP.NET Core ΢ܹеһʾͼ
  12. ![](http://images2015.cnblogs.com/blog/250417/201707/250417-20170705175827128-1203291469.png)
  13. > ͼʵִ߲û룬ִ߲CAPڲʵ֡
  14. ## Getting Started
  15. ### NuGet
  16. Ŀаװ CAP
  17. Ϣʹõ Kafka Ļԣ
  18. ```
  19. PM> Install-Package DotNetCore.CAP.Kafka -Pre
  20. ```
  21. Ϣʹõ RabbitMQ Ļԣ
  22. ```
  23. PM> Install-Package DotNetCore.CAP.RabbitMQ -Pre
  24. ```
  25. CAP Ĭṩ Entity Framwork Ϊݿ洢
  26. ```
  27. PM> Install-Package DotNetCore.CAP.EntityFrameworkCore -Pre
  28. ```
  29. ### Configuration
  30. CAP Startup.cs ļУ£
  31. ```cs
  32. public void ConfigureServices(IServiceCollection services)
  33. {
  34. ......
  35. services.AddDbContext<AppDbContext>();
  36. services.AddCap()
  37. .AddEntityFrameworkStores<AppDbContext>()
  38. .AddKafka(x => x.Servers = "localhost:9092");
  39. }
  40. public void Configure(IApplicationBuilder app)
  41. {
  42. .....
  43. app.UseCap();
  44. }
  45. ```
  46. ###
  47. Controller ע `ICapPublisher` Ȼʹ `ICapPublisher` Ϣ
  48. ```cs
  49. public class PublishController : Controller
  50. {
  51. private readonly ICapPublisher _publisher;
  52. public PublishController(ICapPublisher publisher)
  53. {
  54. _publisher = publisher;
  55. }
  56. [Route("~/checkAccount")]
  57. public async Task<IActionResult> PublishMessage()
  58. {
  59. //ָ͵Ϣͷ
  60. await _publisher.PublishAsync("xxx.services.account.check", new Person { Name = "Foo", Age = 11 });
  61. return Ok();
  62. }
  63. }
  64. ```
  65. ###
  66. **Action Method**
  67. Action CapSubscribeAttribute Ϣ
  68. ```cs
  69. public class PublishController : Controller
  70. {
  71. private readonly ICapPublisher _publisher;
  72. public PublishController(ICapPublisher publisher)
  73. {
  74. _publisher = publisher;
  75. }
  76. [NoAction]
  77. [CapSubscribe("xxx.services.account.check")]
  78. public async Task CheckReceivedMessage(Person person)
  79. {
  80. Console.WriteLine(person.Name);
  81. Console.WriteLine(person.Age);
  82. return Task.CompletedTask;
  83. }
  84. }
  85. ```
  86. **Service Method**
  87. Ķķûλ Controller У㶩ĵҪ̳ `ICapSubscribe`
  88. ```cs
  89. namespace xxx.Service
  90. {
  91. public interface ISubscriberService
  92. {
  93. public void CheckReceivedMessage(Person person);
  94. }
  95. public class SubscriberService: ISubscriberService, ICapSubscribe
  96. {
  97. [KafkaTopic("xxx.services.account.check")]
  98. public void CheckReceivedMessage(Person person)
  99. {
  100. }
  101. }
  102. }
  103. ```
  104. Ȼ Startup.cs е `ConfigureServices()` ע `ISubscriberService`
  105. ```cs
  106. public void ConfigureServices(IServiceCollection services)
  107. {
  108. services.AddTransient<ISubscriberService,SubscriberService>();
  109. }
  110. ```
  111. ##
  112. ׵򵥵ķ֮һDzۺ⣨issueҲͨύ Pull Request ס
  113. ### License
  114. MIT