namespace Dpz.Core.MessageQueue.Configuration;
/// <summary>
/// RabbitMQ连接配置
/// </summary>
public class RabbitMQOptions
{
public const string SectionName = "RabbitMQ";
/// <summary>
/// 主机地址
/// </summary>
public string HostName { get; set; } = "localhost";
/// <summary>
/// 端口号
/// </summary>
public int Port { get; set; } = 5672;
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; } = "guest";
/// <summary>
/// 密码
/// </summary>
public string Password { get; set; } = "guest";
/// <summary>
/// 虚拟主机
/// </summary>
public string VirtualHost { get; set; } = "/";
/// <summary>
/// 连接超时时间(秒)
/// </summary>
public int RequestedConnectionTimeout { get; set; } = 30;
/// <summary>
/// 心跳超时时间(秒)
/// </summary>
public ushort RequestedHeartbeat { get; set; } = 60;
/// <summary>
/// 自动恢复连接
/// </summary>
public bool AutomaticRecoveryEnabled { get; set; } = true;
/// <summary>
/// 网络恢复间隔(秒)
/// </summary>
public int NetworkRecoveryInterval { get; set; } = 5;
}
⚠⚠ 以下内容为AI分析的结果,请根据实际情况进行判断。
这是一个用于配置RabbitMQ连接参数的配置类。让我详细解释一下这个代码:
类的用途
RabbitMQOptions 是一个配置选项类,用于封装连接RabbitMQ消息队列服务器所需的各种参数。
主要组成部分
1. 命名空间和类声明
namespace Dpz.Core.MessageQueue.Configuration;
public class RabbitMQOptions
- 属于
Dpz.Core.MessageQueue.Configuration命名空间 - 这是一个公共配置类
2. 配置节名称
public const string SectionName = "RabbitMQ";
- 定义了在配置文件(如appsettings.json)中对应的配置节名称
- 通常用于依赖注入配置时指定配置路径
3. 连接基础参数
- HostName: RabbitMQ服务器地址,默认为"localhost"
- Port: 连接端口,默认为5672(RabbitMQ默认端口)
- UserName: 登录用户名,默认为"guest"
- Password: 登录密码,默认为"guest"
- VirtualHost: 虚拟主机路径,默认为"/"
4. 连接控制参数
- RequestedConnectionTimeout: 连接超时时间(30秒)
- RequestedHeartbeat: 心跳检测间隔(60秒)
- AutomaticRecoveryEnabled: 是否启用自动重连(默认true)
- NetworkRecoveryInterval: 网络恢复重试间隔(5秒)
使用场景
这个配置类通常会配合.NET Core的配置系统使用,例如:
// appsettings.json
{
"RabbitMQ": {
"HostName": "rabbitmq.example.com",
"Port": 5672,
"UserName": "myuser",
"Password": "mypassword",
"VirtualHost": "/myapp"
}
}
然后在程序启动时通过依赖注入配置:
services.Configure<RabbitMQOptions>(configuration.GetSection(RabbitMQOptions.SectionName));
这种设计模式使得RabbitMQ连接配置更加灵活和可维护。
评论加载中...