Configuration - dotnet-shashlik/shashlik.eventbus GitHub Wiki

Configuration

Shashlik EventBus 主要依赖有消息存储介质和消息传输中间件,消息存储介质通常使用关系型数据库,因为对 ACID 事务有良好的支持,值得注意的是,对数据库的事务隔离级别最低要求为Read Committed,否则会影响对事务已提交的判断,从而导致不可预估的后果。

最简配置,即使用内存存储和内存消息:

    service
        .AddEventBus()
        .AddMemoryQueue()
        .AddMemoryStorage();

自定义配置:

    service
        .AddEventBus(options => {
            // 自定义配置
        });

EventBusOptions 配置项

Environment 运行环境

  • 默认值:Production
  • 参数说明:用于区分当前应用运行的环境,如果你有多个应用使用了相同的消息中间件和存储介质配置,或者说你的开发、测试环境都使用的同一套运行环境,您可以通过设置该值以区分,比如Development、Test。在存储的数据和注册到消息中间件的事件和事件处理类名称后都会加上此后缀。

TransactionCommitTimeout 确认事务是否已提交的超时时间

  • 默认值:60
  • 参数说明:单位,当事件发布以后,EventBus会有相应的处理机来查询事件对应的本地事务是否已提交。这个查询时间不可能是无限的,在重试机开始工作前,必须完成确认。需要小于StartRetryAfter参数值。

StartRetryAfter 重试器介入处理的时间

  • 默认值:300
  • 参数说明:单位,事件首次发布成功或接收成功以后,但是消息发送或者事件的业务处理失败,在5分钟以后,重试器开始对这条记录进行重试处理。

RetryLimitCount 重试器单次处理数据量

  • 默认值: 100
  • 参数说明:重试器单次处理数据量。

RetryMaxDegreeOfParallelism 重试器并行执行数量

  • 默认值: 5
  • 参数说明:重试器并行执行数量,重试数据量特别大时,可根据CPU内核数量做相应的调整。

RetryFailedMax 事件最大重试次数

  • 默认值: 60
  • 参数说明:事件最大重试次数,超过最大重试次数后,需要人工介入该条记录进行干预。达到最大失败次数的记录不会被过期删除。

RetryInterval 失败记录重试间隔时间

  • 默认值: 120
  • 参数说明:单位,事件处理失败后,再次重试的时间间隔。

LockTime 执行重试操作时,锁定时长

  • 默认值: 110
  • 参数说明:单位,重试器处理数据时为了避免并发处理,会将数据进行锁定,该值配置锁定的时长,需要小于RetryInterval

SucceedExpireHour 处理成功的消息过期删除时间

  • 默认值: 72
  • 参数说明:单位小时,为了减少存储介质的数据压力,会定时删除已过期的成功数据。

HandlerServiceLifetime 注册生命周期类型

  • 默认值: Transient
  • 参数说明:事件处理类注册的Service类型,默认值Transient