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连接配置更加灵活和可维护。

评论加载中...