rabbitmq的routingkey的作用,最新Java笔试题分享

2022-09-14 09:56:33
        if(ack){

            //如果confirm返回成功 则进行更新

            brokerMessageLogMapper.changeBrokerMessageLogStatus(messageId, Constants.ORDER_SEND_SUCCESS, new Date());

        } else {

            //失败则进行具体的后续操作:重试 或者补偿等手段

            System.err.println("异常处理...");

        }

    }

};



//发送消息方法调用: 构建自定义对象消息

public void sendOrder(Order order) throws Exception {

    // 通过实现 ConfirmCallback 接口,消息发送到 Broker 后触发回调,确认消息是否到达 Broker 服务器,也就是只确认是否正确到达 Exchange 中

    rabbitTemplate.setConfirmCallback(confirmCallback);

    //消息唯一ID

    CorrelationData correlationData = new CorrelationData(order.getMessageId());

    rabbitTemplate.convertAndSend("order-exchange", "order.ABC", order, correlationData);

}

}




利用rabbitTemplate(import org.springframework.amqp.rabbit.core.RabbitTemplate;需要在pom.xml中导入amqp的依赖)的convertAndSend方法就可以发送,这里order-exchange为交换机exchange,order.ABC为routingKey,并没有指定对应消息需要发往哪个队列,还有指定消息回调。



[](

)在消息的消费者端:

---------------------------------------------------------------------------

@Component

public class OrderReceiver {

//配置监听的哪一个队列,同时在没有queue和exchange的情况下会去创建并建立绑定关系

@RabbitListener(bindings = @QueueBinding(

        value = @Queue(value = "order-queue",durable = "true"),

        exchange = @Exchange(name="order-exchange",durable = "true",type = "topic"),

        key = "order.*"

    )

)

@RabbitHandler//如果有消息过来,在消费的时候调用这个方法

public void onOrderMessage(@Payload Order order, @Headers Map<String,Object> headers, Channel channel) throws IOException {

    //消费者操作

    System.out.println("---------收到消息,开始消费---------");

    System.out.println("订单ID:"+order.getId());



    /**

总结:心得体会

既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。

学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。

面试大厂,最重要的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。

最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

大厂Java架构核心笔记(适合中高级程序员阅读):

习路线,避免低效学习。

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

大厂Java架构核心笔记(适合中高级程序员阅读):

  • 作者:普通网友
  • 原文链接:https://blog.csdn.net/m0_61439560/article/details/120205706
    更新时间:2022-09-14 09:56:33