Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # 快速开始
  2. 了解如何使用 CAP 构建微服务事件总线架构,它比直接集成消息队列提供了哪些优势,它提供了哪些开箱即用的功能。
  3. ## 安装
  4. ```powershell
  5. PM> Install-Package DotNetCore.CAP
  6. ```
  7. ## 在 Asp.Net Core 中集成
  8. 以便于快速启动,我们使用基于内存的事件存储和消息队列。
  9. ```powershell
  10. PM> Install-Package DotNetCore.CAP.InMemoryStorage
  11. PM> Install-Package Savorboard.CAP.InMemoryMessageQueue
  12. ```
  13. 在 `Startup.cs` 中,添加以下配置:
  14. ```c#
  15. public void ConfigureServices(IServiceCollection services)
  16. {
  17. services.AddCap(x =>
  18. {
  19. x.UseInMemoryStorage();
  20. x.UseInMemoryMessageQueue();
  21. });
  22. }
  23. ```
  24. ## 发送消息
  25. ```c#
  26. public class PublishController : Controller
  27. {
  28. [Route("~/send")]
  29. public IActionResult SendMessage([FromService]ICapPublisher capBus)
  30. {
  31. capBus.Publish("test.show.time", DateTime.Now);
  32. return Ok();
  33. }
  34. }
  35. ```
  36. ## 处理消息
  37. ```C#
  38. public class ConsumerController : Controller
  39. {
  40. [NonAction]
  41. [CapSubscribe("test.show.time")]
  42. public void ReceiveMessage(DateTime time)
  43. {
  44. Console.WriteLine("message time is:" + time);
  45. }
  46. }
  47. ```
  48. ## 摘要
  49. 相对于直接集成消息队列,异步消息传递最强大的优势之一是可靠性,系统的一个部分中的故障不会传播,也不会导致整个系统崩溃。 在 CAP 内部会将消息进行存储,以保证消息的可靠性,并配合重试等策略以达到各个服务之间的数据最终一致性。