Java

RabbitMqBusOptions

RabbitMQ 总线传输的配置选项。该类封装了与 RabbitMQ 建立连接所需的所有必要设置,以及消息处理的各种参数,如交换器和队列配置、重试策略等。
  • Type: final class
  • Package: com.euonia.bus
  • Author: damon(zhaorong@outlook.com)

Fields

Name Type Default Description
enabledSupplier Supplier<Boolean> () -> true 是否启用该传输
name String RabbitMqTransport.class.getSimpleName() 传输名称
host String "localhost" 主机地址
username String "guest" 用户名
password String "guest" 密码
virtualHost String "/" 虚拟主机
connection String (null) AMQP 连接字符串(显式设置时优先于 host/port 等)
port int 5672 端口号
exchangeNamePrefix String RabbitMqConstants.DEFAULT_EXCHANGE_NAME_PREFIX 交换器名称前缀
queueNamePrefix String RabbitMqConstants.DEFAULT_QUEUE_NAME_PREFIX 队列名称前缀
rpcQueuePrefix String RabbitMqConstants.DEFAULT_RPC_QUEUE_NAME_PREFIX RPC 队列名称前缀
mandatory boolean true 是否为强制模式
prefetchCount int 1 预取计数
retryDelay long 5000L 重试延迟(毫秒)
retryAttempts int 3 重试次数
subscriptionId String (null) 订阅标识符
deadLetterEnabled boolean true 是否启用死信队列。启用后,被拒绝的消息将被路由到死信交换器。基于 RabbitMQ 的 Dead Letter Exchange (DLX) 机制。
deadLetterExchangePrefix String RabbitMqConstants.DEFAULT_DLX_EXCHANGE_PREFIX 死信交换器名称前缀
deadLetterQueuePrefix String RabbitMqConstants.DEFAULT_DLQ_QUEUE_NAME_PREFIX 死信队列名称前缀

Methods

Name Return Description
isEnabled() boolean 检查是否启用该传输
setEnabled(Supplier<Boolean>) void 设置启用状态的供应器
getName() String 获取传输名称
setName(String) void 设置传输名称
getHost() String 获取主机地址
setHost(String) void 设置主机地址
getPort() int 获取端口号
setPort(int) void 设置端口号
getUsername() String 获取用户名
setUsername(String) void 设置用户名
getPassword() String 获取密码
setPassword(String) void 设置密码
getVirtualHost() String 获取虚拟主机
setVirtualHost(String) void 设置虚拟主机
getConnection() String 构建并返回 RabbitMQ 连接字符串。如果显式设置了 connection 属性,则直接返回;否则基于 host、port、username、password 和 virtualHost 属性自动构建 AMQP 连接字符串
setConnection(String) void 设置 RabbitMQ 连接字符串
getExchangeNamePrefix() String 获取交换器名称前缀
setExchangeNamePrefix(String) void 设置交换器名称前缀
getQueueNamePrefix() String 获取队列名称前缀
setQueueNamePrefix(String) void 设置队列名称前缀
getRpcQueuePrefix() String 获取 RPC 队列前缀
setRpcQueuePrefix(String) void 设置 RPC 队列前缀
isMandatory() boolean 是否为强制模式
setMandatory(boolean) void 设置是否为强制模式
getPrefetchCount() int 获取预取计数
setPrefetchCount(int) void 设置预取计数
getRetryDelay() long 获取重试延迟时间
setRetryDelay(long) void 设置重试延迟时间
getRetryAttempts() int 获取重试次数
setRetryAttempts(int) void 设置重试次数
getSubscriptionId() String 获取订阅 ID
setSubscriptionId(String) void 设置订阅 ID
generateQueueName(String, String) String 生成队列名称,格式为:{prefix}:{channelName}@{subscriptionId}
isDeadLetterEnabled() boolean 是否启用死信队列
setDeadLetterEnabled(boolean) void 设置是否启用死信队列
getDeadLetterExchangePrefix() String 获取死信交换器名称前缀
setDeadLetterExchangePrefix(String) void 设置死信交换器名称前缀
getDeadLetterQueuePrefix() String 获取死信队列名称前缀
setDeadLetterQueuePrefix(String) void 设置死信队列名称前缀
generateDlxExchangeName(String) String 生成死信交换器名称
generateDlqQueueName(String) String 生成死信队列名称(入参 channelName 与原始队列一致以确保唯一性)