RabbitMQ详解(七):RabbitMQ知识点补充(RPC实现)

十、RabbitMQ知识点补充

1、RPC实现

1)、实现思路
在这里插入图片描述
1)当客户端启动时,创建一个匿名的回调队列

2)客户单为RPC请求设置2个属性:replyTo用来告知RPC服务端回复请求时的目的队列,即回调队列;correlationId用来标记一个请求

3)请求被发送到rpc_queue队列中

4)RPC服务端监听rpc_queue队列中的请求,当请求到来时,服务端会处理并且把带有结果的消息发送给客户端。接收的队列就是replyTo设定的对调队列

5)客户端监听回调队列,当有消息时,检查correlationId属性,如果与请求匹配,那就是结果了

2)、使用SpringBoot实现RPC

消费者:

@Component
public class RabbitReceiver {

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(value = "rpc_queue", durable = "true"),
            exchange = @Exchange(value = "rpc_exchange"),
            key = "rpc"
    ))
    @RabbitHandler
    public String onMessage(String message) {
        System.out.println("消费端:" + message);
        return message;
    }
}

生产者:

@Component
public class RabbitProducer {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void send(String message) {
        Object result = rabbitTemplate.convertSendAndReceive("rpc_exchange", "rpc", "hello world");
        System.out.println("回调结果:" + result);
    }
}

测试类:

    @Autowired
    private RabbitProducer rabbitProducer;

    @Test
    public void sendTest() {
        rabbitProducer.send("rpc test");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邋遢的流浪剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值