3 Star 2 Fork 1

vrv_media/go-micro-framework

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
mq.go 2.57 KB
一键复制 编辑 原始数据 按行查看 历史
package mq
import (
"context"
"github.com/apache/rocketmq-client-go/v2/consumer"
"github.com/apache/rocketmq-client-go/v2/primitive"
"github.com/apache/rocketmq-client-go/v2/producer"
)
// Producer 普通消息的发送接口
type Producer interface {
ProducerStart() error // 开启生产者Client
ProducerStop() error // 结束生产者Client
// MessageSync 同步发送(Synchronous):这是最常见的一种发送方式,客户端发送消息后,会等待服务器端的响应。
// 只有当消息完全被服务器接收,客户端才会继续执行。这种方式适用于对可靠性要求较高的场景。
// shardingKeyValue用作选择特定的queue发送,如果不需要,可以为nil
MessageSync(topic string, data []byte, shardingKeyValue *string) error
// MessageSyncDelayTime 用同步的方式发送延迟消息
// shardingKeyValue用作选择特定的queue发送,如果不需要,可以为nil
MessageSyncDelayTime(topic string, data []byte, delayTimeLevel int, shardingKeyValue *string) error
// MessageAsync 异步发送(Asynchronous):客户端在发送消息后不会立即等待服务器的响应,而是通过一个回调接口来处理服务器的响应,
// 这样可以提高消息发送的吞吐量。这种方式适用于对响应时间要求较敏感的场景。
// shardingKeyValue用作选择特定的queue发送,如果不需要,可以为nil
MessageAsync(topic string, data []byte, callback func(ctx context.Context, result *primitive.SendResult, err error), shardingKeyValue *string) error // 发送异步消息
// MessageOneWay 单向发送(One-way):这种方式是最轻量级的一种发送方式,客户端只负责发送消息,
// 不等待服务器的响应,也不关心消息是否被服务器接收。这种方式的可靠性最低,但吞吐量最高,适用于对可靠性要求不高的日志收集等场景。
// shardingKeyValue用作选择特定的queue发送,如果不需要,可以为nil
MessageOneWay(topic string, data []byte, shardingKeyValue *string) error // 发送异步消息
}
// TransactionProducer 事务消息的发送接口
type TransactionProducer interface {
ProducerStart(...producer.Option) error // 开启生产者Client
ProducerStop() error
// MessageInTransaction 发送事务消息
MessageInTransaction(topic string, data []byte, shardingKeyValue *string) error
}
type Consumer interface {
Subscribe() error // 订阅消息
ConsumerStart(...consumer.Option) error // 开启消费者Client
ConsumerStop() error // 结束消费者Client
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/vrv_media/go-micro-framework.git
git@gitee.com:vrv_media/go-micro-framework.git
vrv_media
go-micro-framework
go-micro-framework
4d2a37d3a8d1

搜索帮助