springboot|rabbitmq实现rpc方式远程同步调用

洛阳泰山      2022-04-25     709

关键词:

上篇相关文章 Springboot项目整合Rabbitmq详细教程

服务端代码示例

    @Resource
    private RabbitTemplate rabbitTemplate;


    /**
     *  同步	对外发送消息的方法
     * @param msg	具体的消息内容
     * @throws Exception
     */
    public String syncSend(String msg) 
        MessageProperties messageProperties=new MessageProperties();
        Message message=new Message(msg.getBytes(StandardCharsets.UTF_8),messageProperties);
        String uuid = UUID.randomUUID().toString();
        CorrelationData data = new CorrelationData(uuid);
        log.info("【发送的消息-社会信用代码】:" + msg);
         Object result=rabbitTemplate.convertSendAndReceive("data_exchange","data_queue", message,data);
        log.info("【同步消息返回结果-msgResult】:",result);
        return result.toString();

    

消费端代码示例


    @RabbitListener(queues ="data_queue")
    public String gis2dMessage(Message message,Channel channel)
        ackOrReject(message,channel,true);
        return "测试啊啊";
    

    private void ackOrReject(Message message, Channel channel, boolean result)  
        try 
            if (result) 
                channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
             else 
                channel.basicReject(message.getMessageProperties().getDeliveryTag(), false);
            
        catch (IOException e)
            new IOException();
        
    

yml配置 reply-to 默认等待时间为5s,若是消费者处理时间太长,添加下面配置

spring:
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: leaniot
    password: leaniot
    virtual-host: /3d_gis
    template:
      reply-timeout: 10000

测试结果

 觉得不错,记得点赞支持!!!

springboot+rabbitmq实现rpc调用(代码片段)

...很简单。今天松哥通过一个简单的案例来和大家分享一下SpringBoot+RabbitMQ如何实现一个简单的RPC调用。注意关于RabbitMQ实现RPC调用,有的小伙伴可能会有一些误解,心想这还不简单?搞两个消息队列queue_1和queue_2࿰... 查看详情

springboot+rabbitmq实现rpc调用(代码片段)

...很简单。今天松哥通过一个简单的案例来和大家分享一下SpringBoot+RabbitMQ如何实现一个简单的RPC调用。注意关于RabbitMQ实现RPC调用,有的小伙伴可能会有一些误解,心想这还不简单?搞两个消息队列queue_1和queue_2࿰... 查看详情

Spring Boot 和异步 RabbitMQ RPC

】SpringBoot和异步RabbitMQRPC【英文标题】:SpringbootandasynchronousRabbitMQRPC【发布时间】:2021-08-2522:23:26【问题描述】:我正在尝试实现RabbitMQRPC模式(请求/响应)。这对我来说是全新的技术。所以我很难过。这是一个网络应用,内置... 查看详情

rabbitmq远程执行任务rpc。(代码片段)

如果想发一条命令给远程机器,再把结果返回这种模式叫RPC:远程过程调用发送方将发送的消息放在一个queue里,由接收方取。接收方再把执行结果放在另外一个queue里,由发送方取实际上,发送方把1,随机生成的接收queue名2,U... 查看详情

rabbitmq初探——用队列实现rpc

rabbitmq构造rpc前言 rpc——remoteprocedurecall远程调用。在我接触的使用过http协议、thrift框架来实现远程调用。其实消息队列rabbitmq也可以实现。 原理 我们称调用远程服务者为Client,远程服务提供者为Server。Client充当生产... 查看详情

rabbitmq学习:利用rabbitmq实现远程rpc调用(代码片段)

一、rabbitmq实现rpc调用的原理·rabbitmq实现rpc的原理是:客户端向一个队列中发送消息,并注册一个回调的队列用于接收服务端返回的消息,该消息需要声明一个叫做correaltionId的属性,该属性将是该次请求的唯一标识。服务端在... 查看详情

rabbitmq实现rpc

实现RPC首先要弄明白,RPC是个什么东西。(RPC)RemoteProcedureCallProtocol远程过程调用协议在一个大型的公司,系统由大大小小的服务构成,不同的团队维护不同的代码,部署在不同的机器。但是在做开发时候往往要用到其它团队的方... 查看详情

rabbitmq实现rpc

实现RPC首先要弄明白,RPC是个什么东西。(RPC)RemoteProcedureCallProtocol远程过程调用协议在一个大型的公司,系统由大大小小的服务构成,不同的团队维护不同的代码,部署在不同的机器。但是在做开发时候往往要用到其它团队的方... 查看详情

rpc使用rabbitmq实现

...在本地实现测试学习双向连接客户端和服务端配置:连接rabbitmq服务器定义消息队列配置发送请求的模板:交换机、消息队列。配置监听处理:监听的队列、消息转换处理配置处理类:处理类、发布的接口。RPC,全称为RemoteProcedu... 查看详情

rabbitmq:rpc的实现(代码片段)

原文:RabbitMQ(四):RPC的实现一、RPC  RPC(RemoteProcedureCall)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。有很多方式可以实现,譬如UNIXRPC、RESTAPI、WCF和SOAP。这些传统... 查看详情

基于rabbitmq的跨平台rpc框架

RabbitMQRpcprotocobufRabbitMQ实现RPChttps://www.cnblogs.com/LiangSW/p/6216537.html 基于RabbitMQ的RPChttps://blog.csdn.net/lmw1239225096/article/details/79453317 RabbitMQ之RPC实现https://blog.csdn.ne 查看详情

rabbitmq中rpc的实现及其通信机制(代码片段)

RabbitMQ中RPC的实现:客户端发送请求消息,服务端回复响应消息,为了接受响应response,客户端需要发送一个回调队列的地址来接受响应,每条消息在发送的时候会带上一个唯一的correlation_id,相应的服务端处理计算后会将结果返... 查看详情

rabbitmq与springboot搭配实现监听

...实例,后面自己补了一个demo,便于理解。demo中主要利用springboot的配置方式,一、消费者(也就是watcher)配置配置都采用spring的注解进行配置1、创建连接  @BeanpublicConnectionFactorycreateConnectionFactory(){Cachin 查看详情

[springboot]springboot整合rabbitmq实现通过rabbitmq进行项目的连接(代码片段)

目录什么是RabbitMQ  消息队列:接受并转发消息,类似于快递公司消息队列的优点消息队列的特性RabbitMQ特点RabbitMQ核心概念Producer:消息生产者Message:消息Exchange:交换机Binding:绑定交换机和队列Routingkey:路由键,决定路由规则... 查看详情

rabbitmq实现的rpc(代码片段)

1.主要思路1.生产者发布任务时,指定properties,告知消费者处理任务完毕之后,将结果存储到reply_to指定的Queue中,本次任务的id是correlation_id2.消费者消费完消息,即处理完任务,将结果存储到reply_to指定的Queue中,同时指定correlat... 查看详情

springboot整合rabbitmq实现死信队列(代码片段)

...bitMQ实现生产消费(7种通讯方式),本文基于SpringBoot实现RabbitMQ中的死信队列和延迟队列。概 查看详情

rpc原理及实现

...强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。2调用分类RPC调用分以下两种:同步调用客户方等待调用执行完成并返回结果... 查看详情

RabbitMQ RPC 以异步方式?

】RabbitMQRPC以异步方式?【英文标题】:RabbitMQRPCinanasyncway?【发布时间】:2020-09-0407:08:38【问题描述】:我正在为一个使用RabbitMQ和RPC的客户开发一个项目,我不太了解RabbitMQ,我正在努力在互联网上找到一些不错的示例。我需要... 查看详情