分布式事件总线Rebus集成

本文解释了**如何配置Rebus**做为分布式总线提供程序. 参阅分布式事件总线文档了解如何使用分布式事件总线系统.

安装

使用ABP CLI添加[Volo.Abp.EventBus.RebusVolo.Abp.EventBus.RebusNuGet包到你的项目:

  • 安装ABP CLI,如果你还没有安装.
  • 在你想要安装 Volo.Abp.EventBus.Rebus 包的 .csproj 文件目录打开命令行(终端).
  • 运行 abp add-package Volo.Abp.EventBus.Rebus 命令.

如果你想要手动安装,安装Volo.Abp.EventBus.Rebus NuGet 包到你的项目然后添加 [DependsOn(typeof(AbpEventBusRebusModule))] 到你的项目模块类.

配置

可以使用配置使用标准的配置系统,如选项类.

AbpRebusEventBusOptions 类用于配置事件总线选项.

你可以在你的模块PreConfigureServices 方法配置选项.

示例: 最小化配置

  1. PreConfigure<AbpRebusEventBusOptions>(options =>
  2. {
  3. options.InputQueueName = "eventbus";
  4. });

Rebus 有很多选项,你可以使用 AbpRebusEventBusOptionsConfigurer 属性来配置.

默认事件存储在内存中. 参阅rebus文档了解更多信息.

示例: 配置存储

  1. PreConfigure<AbpRebusEventBusOptions>(options =>
  2. {
  3. options.InputQueueName = "eventbus";
  4. options.Configurer = rebusConfigurer =>
  5. {
  6. rebusConfigurer.Transport(t => t.UseMsmq("eventbus"));
  7. rebusConfigurer.Subscriptions(s => s.UseJsonFile(@"subscriptions.json"));
  8. };
  9. });

你可以使用 AbpRebusEventBusOptionsPublish 属性来更改发布方法.

示例: 配置事件发布

  1. PreConfigure<AbpRebusEventBusOptions>(options =>
  2. {
  3. options.InputQueueName = "eventbus";
  4. options.Publish = async (bus, type, data) =>
  5. {
  6. await bus.Publish(data);
  7. };
  8. });