首页 > 其他分享 >rabbitMq

rabbitMq

时间:2023-08-24 17:33:43浏览次数:29  
标签:System rabbitMq 消息 println message public out

 

@Service
public class OrderItemServiceImpl  {

    /**
     * https://blog.csdn.net/aetawt/article/details/128957417
     * 监听方式获取消息 消息只消费一次,其他消费者消费后,本消费者不再消费
     * @RabbitHandler:标注在方法上
     * @RabbitListener: 标注在类、方法上
     * 使用 @RabbitHandler +  @RabbitListener 接受不同类型的消息
     */
    @RabbitListener(queues = {MqConstant.SEARCH_DATA_QUEUE})
    public void recieveOrderMessage(Message message,  Channel channel) throws IOException {
        System.out.println("收到了消息了--->" + message + " ====》内容:" + new String(message.getBody()));
        System.out.println("渠道数量:" + channel.getChannelNumber());

        MessageProperties messageProperties = message.getMessageProperties();
        System.out.println("消息处理完成---------------------------------");
        //消息顺序,自增
        long deliveryTag = messageProperties.getDeliveryTag();
        System.out.println(deliveryTag);
        //回复,签收消息, fasle表示只签收当前消息,true签收所有
        channel.basicAck(deliveryTag, false);
    }


/**
 * RabbitTemplate 拉取的方式获取消息
 */
@Component
public class RabbitListenerConfig {
    @Autowired
    private RabbitTemplate rabbitTemplate;
    @PostConstruct
    public void receive(){
        Thread thread = new Thread(){
          public void run(){
              while (true){
                  System.out.println("*************ready");
                  String message = (String)rabbitTemplate.receiveAndConvert(MqConstant.SEARCH_DATA_QUEUE,1000*2);
                  System.out.println("*************receive:"+message);
              }
          }
        };
        thread.start();
    }


    @Autowired
    private RabbitTemplate rabbitTemplate;
    public void produce(String searchData) {
        log.info("消息生产:{}", searchData);
        rabbitTemplate.convertAndSend(MqConstant.xxx_DATA_EXCHANGE, MqConstant.xxx_DATA_QUEUE, searchData);
    }

spring:
  rabbitmq:
    port: 5672
    host: 192.168.xxx
    username: admin
    password: xxx
    virtual-host: sxxx
    publisher-confirm-type: correlated
    publisher-returns: true
    listener:
      direct:
        acknowledge-mode: manual
      simple:
        acknowledge-mode: manual
        retry:
          enabled: true


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
            <version>2.6.8</version>
        </dependency>

 

标签:System,rabbitMq,消息,println,message,public,out
From: https://www.cnblogs.com/xingminghui111/p/17654722.html

相关文章

  • 消息队列 & RabbitMQ
    消息队列&RabbitMQ使用总结1.消息队列定义:messagequeue是消息传递过程中一种存储数据的结构。2.特点:先进先出,可以设置优先级用于大客户优先发货,持久化,消息确认,延时队列用于订单30分钟未支付取消。3.作用:应用解耦,肖峰填谷,异步提高响应速度4.RabbitMQ:四种交换机直接交换......
  • RabbitMQ的学习之快速入门
    快速入门:使用springboot整合springAmqp来创建队列和消息同时创建consumer接收发送的消息第一步:引入依赖,在父类中引入spring-boot-starter-amqp依赖第二步:在yml中建立连接 第三步:创建publisher测试类引入注解,利用 RabbitTemplate生成对象调用方法,这样publisher就创建......
  • RabbitMQ
    初识MQ同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像微信,不需要马上回复。同步通讯SpringCloud中Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题:优点:时效性较强,可以立即得到结果缺点:耦合......
  • RabbitMQ高级,让你彻底掌握
    RabbitMQ(高级篇)消息队列在使用过程中,面临着很多实际问题需要思考:消息可靠性消息从发送,到消费者接收,会经理多个过程:其中的每一步都可能导致消息丢失,常见的丢失原因包括:发送时丢失:生产者发送的消息未送达exchange消息到达exchange后未到达queueMQ宕机,queue将消息丢失......
  • 微服务集成RabbitMq保姆级教程
     本文通过简单的示例代码和说明,让读者能够了解微服务如何集成RabbitMq之前的教程 https://www.cnblogs.com/leafstar/p/17641358.html在这里我将介绍Centos中通过docker进行安装RabbitMq 1.首先你已经有一台可以使用的虚拟机(教程很多) 2.yuminstalldocker-y  3.......
  • rabbitMQ
    目录1消息队列Rabbitmq介绍2rabbitmq安装3基于queue实现生产者消费者4基本使用4.1发送者4.2消费者5消息安全(详见笔记)6持久化(详见笔记)7闲置消费(详见笔记)8发布订阅(详见笔记)9发布订阅高级之Routing(按关键字匹配)(详见笔记)1消息队列Rabbitmq介绍#消息队列 -......
  • rabbitmq中是否支持事务
    是的,RabbitMQ支持事务。在RabbitMQ中,事务是一组操作的原子性操作。可以使用channel.txSelect()方法开始一个事务,并使用channel.txCommit()方法提交事务,或使用channel.txRollback()方法回滚事务。事务可以确保一组操作要么全部成功执行,要么全部回滚。但是需要注意,使用事务会降低Rabb......
  • RabbitMQ与SpringBoot 集成
    1、添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency> 2、添加配置官方配置https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/h......
  • RabbitMQ安装(erlang 与 rabbitmq 版本要对应)
    参考文献版本对照表https://www.rabbitmq.com/which-erlang.html 安装过程中遇到问题相关博客http://blog.csdn.net/qq315737546/article/details/53105418http://blog.csdn.net/leekwen/article/details/23333659如有侵权,请联系删除启动前台运行:rabbitmq-server......
  • RabbitMQ入门
    1简介​ RabbitMQ是采用erlang语言实现AMQP(AdvancedMessageQueuingProtocol,高级消息队列协议)的消息中间件,它最初起源于金融系统,用于在分布式系统中存储转发消息。​ RabbitMQ是目前非常热门的一款消息中间件,不管是互联网行业还是传统行业都在大量地使用RabbitMQ......