Cap 使用 Microsoft.Extensions.DependencyInjection 进行配置的注入,你也可以依赖于 DI 从json文件中读取配置。
你可以使用如下方式来配置 CAP 中的一些配置项,例如
services.AddCap(capOptions => {
capOptions.FailedCallback = //...
});
CapOptions
提供了一下配置项:
NAME | DESCRIPTION | TYPE | DEFAULT |
---|---|---|---|
PollingDelay | 处理消息的线程默认轮询等待时间(秒) | int | 15 秒 |
QueueProcessorCount | 启动队列中消息的处理器个数 | int | 2 |
FailedMessageWaitingInterval | 轮询失败消息的间隔(秒) | int | 180 秒 |
FailedCallback | 执行失败消息时的回调函数,详情见下文 | Action | NULL |
CapOptions 提供了 FailedCallback
为处理失败的消息时的回调函数。当消息多次发送失败后,CAP会将消息状态标记为Failed
,CAP有一个专门的处理者用来处理这种失败的消息,针对失败的消息会重新放入到队列中发送到MQ,在这之前如果FailedCallback
具有值,那么将首先调用此回调函数来告诉客户端。
FailedCallback 的类型为 Action<MessageType,string,string>
,第一个参数为消息类型(发送的还是接收到),第二个参数为消息的名称(name),第三个参数为消息的内容(content)。
CAP 采用的是针对 CapOptions 进行扩展来实现RabbitMQ的配置功能,所以针对 RabbitMQ 的配置用法如下:
services.AddCap(capOptions => {
capOptions.UseRabbitMQ(rabbitMQOption=>{
// rabbitmq options.
});
});
RabbitMQOptions
提供了有关RabbitMQ相关的配置:
NAME | DESCRIPTION | TYPE | DEFAULT |
---|---|---|---|
HostName | 宿主地址 | string | localhost |
UserName | 用户名 | string | guest |
Password | 密码 | string | guest |
VirtualHost | 虚拟主机 | string | / |
Port | 端口号 | int | -1 |
TopicExchangeName | CAP默认Exchange名称 | string | cap.default.topic |
RequestedConnectionTimeout | RabbitMQ连接超时时间 | int | 30,000 毫秒 |
SocketReadTimeout | RabbitMQ消息读取超时时间 | int | 30,000 毫秒 |
SocketWriteTimeout | RabbitMQ消息写入超时时间 | int | 30,000 毫秒 |
QueueMessageExpires | 队列中消息自动删除时间 | int | (10天) 毫秒 |
CAP 采用的是针对 CapOptions 进行扩展来实现 Kafka 的配置功能,所以针对 Kafka 的配置用法如下:
services.AddCap(capOptions => {
capOptions.UseKafka(kafkaOption=>{
// kafka options.
// kafkaOptions.MainConfig.Add("", "");
});
});
KafkaOptions
提供了有关 Kafka 相关的配置,由于Kafka的配置比较多,所以此处使用的是提供的 MainConfig 字典来支持进行自定义配置,你可以查看这里来获取对配置项的支持信息。
https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md
如果你使用的是 EntityFramewrok,你用不到该配置项下的内容。
CAP 采用的是针对 CapOptions 进行扩展来实现 SqlServer 的配置功能,所以针对 SqlServer 的配置用法如下:
services.AddCap(capOptions => {
capOptions.UseSqlServer(sqlserverOptions => {
// sqlserverOptions.ConnectionString
});
});
NAME | DESCRIPTION | TYPE | DEFAULT |
---|---|---|---|
Schema | Cap表架构 | string | Cap |
ConnectionString | 数据库连接字符串 | string | null |
如果你使用的是 EntityFramewrok,你用不到该配置项下的内容。
CAP 采用的是针对 CapOptions 进行扩展来实现 MySql 的配置功能,所以针对 MySql 的配置用法如下:
services.AddCap(capOptions => {
capOptions.UseMySql(mysqlOptions => {
// mysqlOptions.ConnectionString
});
});
NAME | DESCRIPTION | TYPE | DEFAULT |
---|---|---|---|
TableNamePrefix | Cap表名前缀 | string | cap |
ConnectionString | 数据库连接字符串 | string | null |