之前的章节都是在说一方发指令,另一方执行这种情况,指令发送者不关系指令的完成情况,或者不需要阻塞去获得结果,结果异步通知。
但很多时候是需要阻塞得去获得执行结果的,比如http的请求。
在rabbitmq使用RPC的关键就是ReplyTo
属性
err = ch.ExchangeDeclare("rpc_topic", amqp.ExchangeTopic, true, false, false, false, nil)
failOnError(err, "Failed to declare a exchange")
q, err := ch.QueueDeclare("", false, false, true, false, nil)
failOnError(err, "Failed to declare a queue")
msgs, err := ch.Consume(q.Name, "", true, false, false, false, nil)
failOnError