rabbitmq 简易RPC调用示例(后附go代码))
rabbimq 库代码获取
https://github.com/streadway/amqp
用例概述
- 客户端
客户端创建匿名队列q,并且从该队列获取消息(No wait return)
客户端向消息队列rpc_test发送消息,消息中包含:
CorrelationId: “32”,// 待服务端解析原样返回
ReplyTo: q.Name, // 待服务端解析后将结果发送到指定队列,供客户端获取解析,根据CorrelationId做消息匹配 - 服务端
服务端创建队列rpc_test,并且从该队列获取消息,
收到消息后,解析客户端消息CorrelationId,ReplyTo(客户端要求将消息发送到该队列)
服务将返回结果,和CorrelationId打包,返回到ReplyTo对应队列,供客户端解析使用
客户端
package main
import (
"fmt"
"log"
"test1/amqp"
)
func failOnError(err error, msg string) {
if err != nil {
fmt.Printf("%s: %s\n", msg, err)
}
}
func f6(){
conn, err := amqp.Dial("amqp://fm:1@192.168.7.29:5672/fm")
failOnError(err, "Failed to connect to