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.

rabbitmq.md 1.9 KiB

4 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # RabbitMQ
  2. RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ 服务器是用 Erlang 语言编写的,而聚类和故障转移是构建在开源的通讯平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
  3. CAP 支持使用 RabbitMQ 作为消息传输器。
  4. ## 配置
  5. 要使用 RabbitMQ 作为消息传输器,你需要从 NuGet 安装以下扩展包:
  6. ```shell
  7. Install-Package DotNetCore.CAP.RabbitMQ
  8. ```
  9. 然后,你可以在 `Startup.cs` 的 `ConfigureServices` 方法中添加基于 RabbitMQ 的配置项。
  10. ```csharp
  11. public void ConfigureServices(IServiceCollection services)
  12. {
  13. // ...
  14. services.AddCap(x =>
  15. {
  16. x.UseRabbitMQ(opt=>
  17. {
  18. //RabbitMQOptions
  19. });
  20. // x.UseXXX ...
  21. });
  22. }
  23. ```
  24. #### RabbitMQ Options
  25. CAP 直接对外提供的 RabbitMQ 配置参数如下:
  26. NAME | DESCRIPTION | TYPE | DEFAULT
  27. :---|:---|---|:---
  28. HostName | 宿主地址 | string | localhost
  29. UserName | 用户名 | string | guest
  30. Password | 密码 | string | guest
  31. VirtualHost | 虚拟主机 | string | /
  32. Port | 端口号 | int | -1
  33. TopicExchangeName | CAP默认Exchange名称 | string | cap.default.topic
  34. QueueMessageExpires | 队列中消息自动删除时间 | int | (10天) 毫秒
  35. #### ConnectionFactory Options
  36. 如果你需要 **更多** 原生 `ConnectionFactory` 相关的配置项,可以通过 `ConnectionFactoryOptions` 配置项进行设定:
  37. ```csharp
  38. services.AddCap(x =>
  39. {
  40. x.UseRabbitMQ(o =>
  41. {
  42. o.HostName = "localhost";
  43. o.ConnectionFactoryOptions = opt => {
  44. //rabbitmq client ConnectionFactory config
  45. };
  46. });
  47. });
  48. ```
  49. #### 如何连接 RabbitMQ 集群?
  50. 使用逗号分隔连接字符串即可,如下:
  51. ```
  52. x=> x.UseRabbitMQ("localhost:5672,localhost:5673,localhost:5674")
  53. ```