Documentation
¶
Overview ¶
Package broker provides broker implementations for cross-node message delivery. Package broker 提供跨节点消息投递的 broker 实现,包含本地进程内和 RabbitMQ 两种。
Package broker — see local.go for the full package doc. 本文件实现基于 RabbitMQ 的 broker,支持自动重连和 topic exchange 路由。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Local ¶
Local returns an in-process best-effort pub/sub broker. Local 返回进程内 broker,实现同进程 topic 分发,适合单节点或测试场景。
func RabbitMQ ¶
func RabbitMQ(opts RabbitMQOptions) (realtime.Broker, error)
RabbitMQ creates a RabbitMQ-backed broker using a topic exchange. Delivery is best-effort and intended for online websocket fan-out: messages are transient, consumers auto-ack, and handler errors are logged but not retried. RabbitMQ 创建基于 topic exchange 的 broker,并在连接断开后按 ReconnectInterval 自动重连。
Types ¶
type RabbitMQOptions ¶
type RabbitMQOptions struct {
// URL 是 RabbitMQ AMQP 连接地址。
URL string
// Exchange 是 topic exchange 名称。
Exchange string
// NodeID 标识当前 broker 节点,会写入 source_node header。
NodeID string
// QueuePrefix 是自动声明队列的名称前缀。
QueuePrefix string
// ReconnectInterval 是连接断开后的重试间隔。
ReconnectInterval time.Duration
// Logger 用于输出 handler 错误和重连状态。
Logger realtime.LogSink
}
RabbitMQOptions configures a RabbitMQ-backed realtime.Broker. RabbitMQOptions 配置 RabbitMQ broker;空值会使用本地开发友好的默认值。