modulepackage
1.2.0
Repository: https://github.com/jokerlianother/rabbitmq.git
Documentation: pkg.go.dev
# README
以下是更新后的README.md文档,其中包括如何使用这个客户端以及注意事项:
RabbitMQ Go 客户端
RabbitMQ Go 客户端是一个用于与 RabbitMQ 通信的 Go 语言库。它允许您轻松地创建、发布和消费消息,同时提供了灵活的配置选项。
安装
使用以下命令安装 RabbitMQ Go 客户端库:
go get github.com/JokerLiAnother/rabbitmq
使用示例
创建 RabbitMQ 实例
要使用 RabbitMQ Go 客户端,首先创建一个 RabbitMQ
实例。您可以选择使用默认选项或自定义配置。以下是创建实例的两种方法:
使用默认选项
import (
"github.com/your/package/rabbitmq"
)
func main() {
// 使用默认选项创建 RabbitMQ 实例
mq, err := rabbitmq.NewDefaultRabbitMQ("amqp://guest:guest@localhost:5672/", "my_exchange", "direct", "my_queue", true)
if err != nil {
log.Fatalf("Failed to create RabbitMQ instance: %v", err)
}
defer mq.Close()
// 其他操作...
}
自定义配置
import (
"github.com/your/package/rabbitmq"
)
func main() {
// 自定义配置创建 RabbitMQ 实例
connectionOptions := rabbitmq.ConnectionOptions{
Heartbeat: 30 * time.Second,
ReConnectInterval: 10 * time.Second,
MaxReconnects: 5,
}
declareParams := rabbitmq.DeclareParams{
Durable: true,
AutoDelete: false,
Exclusive: false,
NoWait: false,
Args: nil,
}
mq, err := rabbitmq.NewRabbitMQ("amqp://guest:guest@localhost:5672/", "my_exchange", "direct", "my_queue", connectionOptions, true, declareParams)
if err != nil {
log.Fatalf("Failed to create RabbitMQ instance: %v", err)
}
defer mq.Close()
// 其他操作...
}
发布消息
// 发布消息到队列
func publishMessage(mq *rabbitmq.RabbitMQ, message string) {
body := []byte(message)
if err := mq.Publish(body); err != nil {
log.Printf("Failed to publish message: %v", err)
}
}
消费消息
// 消费消息
func consumeMessages(mq *rabbitmq.RabbitMQ) {
callback := func(msg string) {
log.Printf("Received message: %s", msg)
// 处理消息...
}
if err := mq.Consume(false, false, false, callback); err != nil {
log.Printf("Failed to start consuming messages: %v", err)
}
}
配置选项
DeclareParams
DeclareParams
用于配置交换机和队列的声明参数。以下是一些可用的参数:
Durable
:是否持久化,默认为true
。AutoDelete
:是否自动删除,默认为false
。Exclusive
:是否排他,默认为false
。NoWait
:是否不等待,默认为false
。Args
:额外的参数,类型为amqp.Table
。
ConnectionOptions
ConnectionOptions
用于配置连接和重连参数。以下是一些可用的参数:
Heartbeat
:心跳间隔,默认为0
(禁用心跳)。ReConnectInterval
:重连间隔,默认为0
(禁用重连)。MaxReconnects
:最大重连次数,默认为0
(不限制)。
ConsumerOptions
ConsumerOptions
用于配置消费者的参数。以下是一些可用的参数:
AutoAck
:是否自动确认消息,默认为false
。Exclusive
:是否排他性,默认为false
。RecoverConsumer
:是否在重连后恢复消费者,默认为false
。Callback
:消息处理回调函数。
注意事项
- 在使用
RabbitMQ
实例后,请确保调用Close()
方法以关闭连接和通道,以释放资源。 - 当配置交换机和队列时,请确保队列名称不为空,否则会导致错误。
- 使用自定义配置时,请确保您了解各个配置参数的含义和影响,以便满足您的需求。
这是一个基本的 RabbitMQ Go 客户端的示例和配置指南。您可以根据自己的需求进行定制和扩展。
# Functions
NewDefaultRabbitMQ Create a publisher with default options.
NewRabbitMQ Create a new instance of RabbitMQ amqpURI: amqp://guest:guest@localhost:5672/ exchange: exchange name exchangeType: exchange type, default direct queue: queue name connectionOptions: connection options autoCreate: auto create exchange and queue if not exists declareParams: exchange and queue declare params.
# Structs
ConnectionOptions 重连等配置参数.
No description provided by the author
DeclareParams exchange and queue declare params.
No description provided by the author