mq

package
v0.7.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 7, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package mq 提供消息队列统一门面。

定义消息队列的通用接口(Publisher、Subscriber、Requester、MQClient), 支持多种后端实现(NATS、Kafka、RabbitMQ 等)。

当前实现:

  • nats: 基于 NATS 的客户端(注意:尚未提供 mq.MQClient 适配器,需自行桥接)

Package mq 提供消息队列统一门面。

定义消息队列的通用接口,支持多种后端实现(NATS、Kafka、RabbitMQ 等)。

使用示例:

// 任意后端实现 Publisher/Subscriber/Requester 接口后即可面向接口编程:
var p mq.Publisher = myPublisher
_ = p.Publish(ctx, "order.created", data)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MQClient

type MQClient interface {
	Publisher
	Subscriber
	Requester

	// Close 关闭客户端连接。
	Close() error
}

MQClient 消息队列客户端接口,组合了 Publisher、Subscriber 和 Requester。

type MessageHandler

type MessageHandler func(ctx context.Context, msg []byte)

MessageHandler 消息处理函数。

type Publisher

type Publisher interface {
	// Publish 发布消息。
	Publish(ctx context.Context, subject string, data []byte) error

	// PublishJSON 发布 JSON 消息。
	PublishJSON(ctx context.Context, subject string, v any) error
}

Publisher 消息发布接口。

type Requester

type Requester interface {
	// Request 发送请求并等待应答。
	Request(ctx context.Context, subject string, data []byte, timeout time.Duration) ([]byte, error)

	// RequestJSON 发送 JSON 请求并等待 JSON 应答。
	RequestJSON(ctx context.Context, subject string, req any, resp any, timeout time.Duration) error
}

Requester 请求-应答接口。

type Subscriber

type Subscriber interface {
	// Subscribe 订阅消息。
	Subscribe(subject string, handler MessageHandler) (Subscription, error)

	// QueueSubscribe 队列订阅(负载均衡,同一队列组内只有一个消费者收到消息)。
	QueueSubscribe(subject, queue string, handler MessageHandler) (Subscription, error)
}

Subscriber 消息订阅接口。

type Subscription

type Subscription interface {
	// Unsubscribe 取消订阅。
	Unsubscribe() error
}

Subscription 订阅句柄。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL