PlumX.Core.CAP 1.0.0-preview.7

This is a prerelease version of PlumX.Core.CAP.
dotnet add package PlumX.Core.CAP --version 1.0.0-preview.7
                    
NuGet\Install-Package PlumX.Core.CAP -Version 1.0.0-preview.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PlumX.Core.CAP" Version="1.0.0-preview.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PlumX.Core.CAP" Version="1.0.0-preview.7" />
                    
Directory.Packages.props
<PackageReference Include="PlumX.Core.CAP" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PlumX.Core.CAP --version 1.0.0-preview.7
                    
#r "nuget: PlumX.Core.CAP, 1.0.0-preview.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PlumX.Core.CAP@1.0.0-preview.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PlumX.Core.CAP&version=1.0.0-preview.7&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=PlumX.Core.CAP&version=1.0.0-preview.7&prerelease
                    
Install as a Cake Tool

PlumX.Core.CAP

NuGet 包 ID:PlumX.Core.CAP

注册方式

新应用使用模块化入口 AddPlumCap,并显式引用和传入实际使用的传输与存储 Provider:

builder.Services.AddPlumCap(
    builder.Configuration,
    CapRabbitMqProvider.Configure,
    CapMySqlProvider.Configure);

PlumX.Core.CAP 本身不静态依赖 RabbitMQ、MySQL 或 SQL Server Provider。推荐使用上面的显式 Provider 委托重载;也可调用 AddPlumCap(builder.Configuration),它会在运行时加载 PlumX.Core.CAP.RabbitMQ,并根据 CAP:CapDBType 加载 PlumX.Core.CAP.MySqlPlumX.Core.CAP.SqlServer。使用配置驱动重载的应用必须引用所需的 Provider 包;CAP:RabbitMq、Provider 包或其 Configure 方法缺失时,启动会抛出包含包名的 InvalidOperationException

定位

封装 DotNetCore.CAP 8.4.1 的发布/订阅与事务消息基础能力,负责框架通用适配和配置约定。CAP 的消息传输和持久化 provider 由同名扩展项目提供。

依赖与接入

  • 目标框架:net8.0
  • 依赖:DotNetCore.CAPNewtonsoft.JsonPlumX.Core.Common

按 CAP 官方方式注册数据库存储、传输器和订阅者,再使用本项目提供的扩展类型。具体 provider 见 PlumX.Core.CAP.RabbitMQPlumX.Core.CAP.MySqlPlumX.Core.CAP.SqlServer

配置中心中的 CAP 配置

AddPlumCap 从当前 IConfigurationCAP 节绑定 CapOption。当应用启用 Nacos 或 Consul 配置中心时,远程 CAP 节会按配置加载顺序覆盖本地同名值,因此数据库连接、RabbitMQ 凭据和失败通知配置可以由配置中心提供。

{
  "CAP": {
    "CapDBType": "MySql",
    "CapDBConnectionString": "由配置中心或密钥管理服务提供",
    "SucceedMessageExpiredAfter": 86400,
    "FailedRetryInterval": 60,
    "FailedRetryCount": 50,
    "GroupVersion": "v1",
    "GroupPrefix": "Orders.Api",
    "IgnoreUnsubscribedMessages": true,
    "RabbitMq": {
      "Host": "rabbitmq.internal",
      "Port": 5672,
      "UserName": "由密钥管理服务提供",
      "Password": "由密钥管理服务提供",
      "ExchangeName": "cap.default",
      "VirtualHost": "/",
      "BasicQos": 1
    },
    "WxMsgOption": {
      "WxApiUrl": "",
      "CapFailWxTemplateId": "",
      "FailWeixinNumber": "",
      "FailSendWxMsgOpenIds": []
    }
  }
}
  • CapDBTypeMySql 时使用 PlumX.Core.CAP.MySql;其他值走 PlumX.Core.CAP.SqlServer。两者都需要 CapDBConnectionString
  • SucceedMessageExpiredAfter:成功消息保留秒数,默认 86400
  • FailedRetryIntervalFailedRetryCount:失败消息重试间隔秒数和最大次数,默认 6050
  • GroupVersion:传递给 CAP Version,默认 v1
  • GroupPrefix:CAP 默认消费组前缀;为空时使用入口程序集名。当前默认组名仍包含实例机器名,业务消费者应通过 [CapSubscribe(..., Group = "...")] 明确指定消费组。
  • IgnoreUnsubscribedMessagestrue 时忽略“找不到订阅者”失败;其他失败在达到阈值后仍会执行失败回调。
  • RabbitMq:RabbitMQ Provider 必填。BasicQos 大于 1 时才会向 CAP 设置 Qos;默认 1 使用 CAP 默认行为。
  • WxMsgOption:可选的失败通知配置。仅在包含 OpenId 列表时调用 WxApiUrl;不得把 URL、模板标识或接收者信息写入公开示例。

生产环境必须将 CapDBConnectionStringRabbitMq:UserNameRabbitMq:Password 和通知敏感值放在配置中心、环境变量或密钥管理系统中,不能提交到 Git。配置中心的加载顺序和覆盖规则见 配置中心与本地配置加载

边界

CAP 与 PlumX.Core.MessageBus 是两套独立消息模型。当前不承诺 CAP 多 MQ 实例路由,也不提供跨 provider 的统一配置。

完整使用示例

CAP Core 注册、发布订阅与消费组示例见 模块使用示例

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on PlumX.Core.CAP:

Package Downloads
PlumX.Core.CAP.MySql

Package Description

PlumX.Core.CAP.RabbitMQ

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-preview.7 65 9/2/2026
1.0.0-preview.6 67 9/1/2026
1.0.0-preview.5 69 8/31/2026
1.0.0-preview.4 80 8/19/2026
1.0.0-preview.3 72 8/18/2026
1.0.0-preview.1 81 8/14/2026