GoとRabbitMQでメッセージの永続化とデータセキュリティを実現するベストプラクティス
GoとRabbitMQによるメッセージの永続化とデータセキュリティのベストプラクティスを実現するためのステップ:
- Amqp.Dial()
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
- チャネル.Qos()
- 丈夫な
- 正しく
ch, err := conn.Channel()
ch.Qos(1, 0, true)
- 丈夫だ。
- ネイティブで言い換えてください、1つの選択肢のみで大丈夫です: 真実
- QueueQueueDeclare
- 壊れにくい
- 確かに
q, err := ch.QueueDeclare(
"myqueue", // 队列名称
true, // durable属性
false, // autoDelete属性
false, // exclusive属性
false, // noWait属性
nil, // args参数
)
- 配送方法
- 2
- 公開する
- 配送方法
- 我行こうとしていたレストランは、予約がないとだめだった。
err = ch.Publish(
"", // exchange
q.Name, // routing key
false, // mandatory
false, // immediate
amqp.Publishing{
DeliveryMode: amqp.Persistent, // deliveryMode属性
ContentType: "text/plain",
Body: []byte("Hello world"),
},
)
- ネイティブに認識される自動確認
- 誤り
- 消費する
- Ack()
msgs, err := ch.Consume(
q.Name, // 队列名称
"", // consumer名称
false, // autoAck属性
false, // exclusive属性
false, // noLocal属性
false, // noWait属性
nil, // args参数
)
for msg := range msgs {
// 处理消息
msg.Ack(false) // 手动确认消息接收
}
上記の手順により、Golang と RabbitMQ のメッセージ永続化とデータの安全性を確立できます。