rabbitmq的几种模式以及springboot整合rabbitmq

springboot整合rabbitMQ 登录rabbitMQ后台。拉取rabbitMQ镜像。查看容器是否启动成功。运行rabbitMQ。安装docker参考。查看镜像是否拉取成功。第二步:生产者(publisher)创建test。新建一个父项目和两个子项目。一个为生产者、一个为消费者。我这里使用的是vm虚拟机做演示。application.yml 配置。消费者(consumer)接收代码。 阅读详情

1. 正文

1. 工作者模式: 
2. 发布订阅模式
3. 路由模式
4. topic主体模式。
5. Springboot整合rabbitMQ

2. 工作者模式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UBKVcTy9-1620143869110)(assets\1618900602190.png)]

特点:
    1. 一个生产者
    2. 由多个消费。
    3. 统一个队列。
    4. 这些消费者之间存在竞争关系。

用处:
    比如批量处理上. rabbitMQ里面积压了大量的消息。 

生产者

package com.tyt.worker;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Producer {
    public static void main(String[] args) throws Exception{
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置主机地址
        connectionFactory.setHost("192.168.31.145");
//        创建 连接对象Connection
        Connection connection = connectionFactory.newConnection();

//创建信道
        Channel channel = connection.createChannel();
//        创建队列
        /**
         * String queue, 队列的名称
         * boolean durable,是否该队列持久性,rabbitMQ服务重启后该存放是否存在
         * boolean exclusive,是否该队列独占
         * boolean autoDelete,是否自动删除,如果长时间没有发生消息则自动删除
         * Map<String, Object> arguments 额外参数
         */
        channel.queueDeclare("qy129_worker", true, false, false, null);
        /**发生消息
         * String exchange, 交换机的名称,如果没有则使用“” ,它会自动默认
         * String routingKey, 路由key 如果没有交换机的绑定,使用队列的名称
         * BasicProperties props, 消息的一些额外配置 目前不加
         * byte[] body  消息的内容
         *
         */
        for (int i = 0; i <10 ; i++) {
            String msg = "Hello,rabbitmq,fuck,李浩辰"+i;
            channel.basicPublish("","qy129_worker",null,msg.getBytes());
        }
        channel.close();
        connection.close();

    }
}

消费者01:

package com.tyt.worker;

import com.rabbitmq.client.*;

import java.io.IOException;

public class ConsumerTest01 {
    public static void main(String[] args) throws Exception{
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置主机地址
        connectionFactory.setHost("192.168.31.145");
//        创建 连接对象Connection
        Connection connection = connectionFactory.newConnection();
//创建信道
        Channel channel = connection.createChannel();
        //消费消息(接收消息)
        /**
         * String queue, 队列
         * boolean autoAck, 是否自动确认
         * Consumer callback 回调方法,当队列中存在信息后,会自动触发回调函数
         */
        DefaultConsumer callback = new DefaultConsumer(channel){
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                System.out.println("c1消息的内容:"+new String(body));
            }
        };
        channel.basicConsume("qy129_worker",true,callback);
    }
}

消费者02:

package com.tyt.worker;

import com.rabbitmq.client.*;

import java.io.IOException;

public class ConsumerTest02 {
    public static void main(String[] args) throws Exception{
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置主机地址
        connectionFactory.setHost("192.168.31.145");
//        创建 连接对象Connection
        Connection connection = connectionFactory.newConnection();
//创建信道
        Channel channel = connection.createChannel();
        //消费消息(接收消息)
        /**
         * String queue, 队列
         * boolean autoAck, 是否自动确认
         * Consumer callback 回调方法,当队列中存在信息后,会自动触发回调函数
         */
        DefaultConsumer callback = new DefaultConsumer(channel){
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                System.out.println("c2消息的内容:"+new String(body));
            }
        };
        channel.basicConsume("qy129_worker",true,callback);
    }
}

4. 发布订阅模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1P5edUw9-1620143869115)(assets\1618901774090.png)]

1. 特点:
    1.一个生产者
    2.多个消费者
    3.多个队列。
    4.交换机 转发消息。

生产者:

package com.tyt.fanout;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Producer {
    public static void main(String[] args) throws Exception{
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置主机地址
        connectionFactory.setHost("192.168.31.145");
//        创建 连接对象Connection
        Connection connection = connectionFactory.newConnection();

//创建信道
        Channel channel = connection.createChannel();
//        创建队列
        /**
         * String queue, 队列的名称
         * boolean durable,是否该队列持久性,rabbitMQ服务重启后该存放是否存在
         * boolean exclusive,是否该队列独占
         * boolean autoDelete,是否自动删除,如果长时间没有发生消息则自动删除
         * Map<String, Object> arguments 额外参数
         */
        channel.queueDeclare("qy129_fanout01", true, false, false, null);
        channel.queueDeclare("qy129_fanout02", true, false, false, null);
        /**
         * 创建交换机
         * String exchange, 交换机名称
         * BuiltinExchangeType type,交换机类型
         * boolean durable 是否持久化
         */
        channel.exchangeDeclare("qy129_exchange_fanout", BuiltinExchangeType.FANOUT, true);
        /**
         * 连接交换机和队列
         * String queue,队列名
         * String exchange,交换机名
         * String routingKey 路由器key
         */
        channel.queueBind("qy129_fanout01", "qy129_exchange_fanout", "");
        channel.queueBind("qy129_fanout02", "qy129_exchange_fanout", "");
        /**发生消息
         * String exchange, 交换机的名称,如果没有则使用“” ,它会自动默认
         * String routingKey, 路由key 如果没有交换机的绑定,使用队列的名称
         * BasicProperties props, 消息的一些额外配置 目前不加
         * byte[] body  消息的内容
         *
         */
        for (int i = 0; i <10 ; i++) {
            String msg = "Hello,rabbitmq,fuck,李浩辰"+i;
            channel.basicPublish("qy129_exchange_fanout","",null,msg.getBytes());
        }
        channel.close();
        connection.close();

    }
}

消费者:

package com.tyt.fanout;

import com.rabbitmq.client.*;

import java.io.IOException;

public class ConsumerTest01 {
    public static void main(String[] args) throws Exception{
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置主机地址
        connectionFactory.setHost("192.168.31.145");
//        创建 连接对象Connection
        Connection connection = connectionFactory.newConnection();
//创建信道
        Channel channel = connection.createChannel();
        //消费消息(接收消息)
        /**
         * String queue, 队列
         * boolean autoAck, 是否自动确认
         * Consumer callback 回调方法,当队列中存在信息后,会自动触发回调函数
         */
        DefaultConsumer callback = new DefaultConsumer(channel){
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                System.out.println("c1消息的内容:"+new String(body));
            }
        };
        channel.basicConsume("qy129_fanout01",true,callback);
    }
}

5.路由模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UJVvyyji-1620143869121)(assets\1618904756029.png)]

特点:
    1.一个生产者
    2.多个消费者
    3.多个队列。
    4.交换机 转发消息。
    5.routekey:路由key 只要routekey匹配的消息可以到达对应队列。

生产者:

package com.tyt.direct;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Producer {
    public static void main(String[] args) throws Exception{
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置主机地址
        connectionFactory.setHost("192.168.31.145");
//        创建 连接对象Connection
        Connection connection = connectionFactory.newConnection();

//创建信道
        Channel channel = connection.createChannel();
//        创建队列
        /**
         * String queue, 队列的名称
         * boolean durable,是否该队列持久性,rabbitMQ服务重启后该存放是否存在
         * boolean exclusive,是否该队列独占
         * boolean autoDelete,是否自动删除,如果长时间没有发生消息则自动删除
         * Map<String, Object> arguments 额外参数
         */
        channel.queueDeclare("qy129_direct01", true, false, false, null);
        channel.queueDeclare("qy129_direct02", true, false, false, null);
        /**
         * 创建交换机
         * String exchange, 交换机名称
         * BuiltinExchangeType type,交换机类型
         * boolean durable 是否持久化
         */
        channel.exchangeDeclare("qy129_exchange_direct", BuiltinExchangeType.DIRECT, true);
        /**
         * 连接交换机和队列
         * String queue,队列名
         * String exchange,交换机名
         * String routingKey 路由器key
         */
        channel.queueBind("qy129_direct01", "qy129_exchange_direct", "error");

        channel.queueBind("qy129_direct02", "qy129_exchange_direct", "error");
        channel.queueBind("qy129_direct02", "qy129_exchange_direct", "info");
        channel.queueBind("qy129_direct02", "qy129_exchange_direct", "warning");
        /**发生消息
         * String exchange, 交换机的名称,如果没有则使用“” ,它会自动默认
         * String routingKey, 路由key 如果没有交换机的绑定,使用队列的名称
         * BasicProperties props, 消息的一些额外配置 目前不加
         * byte[] body  消息的内容
         *
         */
        for (int i = 0; i <10 ; i++) {
            String msg = "Hello,rabbitmq,fuck,李浩辰"+i;
            channel.basicPublish("qy129_exchange_direct","info",null,msg.getBytes());
        }
        channel.close();
        connection.close();

    }
}

消费者基本没什么变化,只需要把通道换一下即可。

6. topic主体模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LSgxJfYN-1620143869126)(assets\1618905526157.png)]

1. 绑定按照通配符的模式。
     *: 统配一个单词。
     #: 统配n个单词

hello.orange.rabbit

lazy.orange

生产者

package com.tyt.topic;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Producer {
    public static void main(String[] args) throws Exception{
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置主机地址
        connectionFactory.setHost("192.168.31.145");
//        创建 连接对象Connection
        Connection connection = connectionFactory.newConnection();

//创建信道
        Channel channel = connection.createChannel();
//        创建队列
        /**
         * String queue, 队列的名称
         * boolean durable,是否该队列持久性,rabbitMQ服务重启后该存放是否存在
         * boolean exclusive,是否该队列独占
         * boolean autoDelete,是否自动删除,如果长时间没有发生消息则自动删除
         * Map<String, Object> arguments 额外参数
         */
        channel.queueDeclare("qy129_topic01", true, false, false, null);
        channel.queueDeclare("qy129_topic02", true, false, false, null);
        /**
         * 创建交换机
         * String exchange, 交换机名称
         * BuiltinExchangeType type,交换机类型
         * boolean durable 是否持久化
         */
        channel.exchangeDeclare("qy129_exchange_topic", BuiltinExchangeType.TOPIC, true);
        /**
         * 连接交换机和队列
         * String queue,队列名
         * String exchange,交换机名
         * String routingKey 路由器key
         */
        channel.queueBind("qy129_topic01", "qy129_exchange_topic", "*.orange.*");

        channel.queueBind("qy129_topic02", "qy129_exchange_topic", "*.*.rabbit");
        channel.queueBind("qy129_topic02", "qy129_exchange_topic", "#.tyt.#");
        channel.queueBind("qy129_topic02", "qy129_exchange_topic", "lazy.#");
        /**发生消息
         * String exchange, 交换机的名称,如果没有则使用“” ,它会自动默认
         * String routingKey, 路由key 如果没有交换机的绑定,使用队列的名称
         * BasicProperties props, 消息的一些额外配置 目前不加
         * byte[] body  消息的内容
         *
         */
        for (int i = 0; i <10 ; i++) {
            String msg = "Hello,rabbitmq,fuck,李浩辰"+i;
            channel.basicPublish("qy129_exchange_topic","tyt",null,msg.getBytes());
        }
        channel.close();
        connection.close();

    }
}

7. rabbitMQ整合springboot

springboot引入了相关的依赖后,提供一个工具类RabbitTemplate.使用这个工具类可以发送消息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-veqdrUKm-1620143869131)(assets\1618910290294.png)]

(1)父工程引入相关的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <modules>
        <module>product</module>
        <module>consumer</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.tyt</groupId>
    <artifactId>springboot-rabbit-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-rabbit-parent</name>
    <description>springboot整合rabbitMQ</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!--rabbitMQ的依赖: 启动类加载。读取配置文件:
           springboot自动装配原理: 引用starter启动依赖时,把对应的自动装配类加载进去,该自动装配类可以读取application配置文件中
           内容。 DispatherServlet
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.72</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

  
</project>

(2)相应的生产者和消费的配置

server:
  port: 8080

spring:
  rabbitmq:
    host: 192.168.31.145
  datasource:
    druid:
      username: root
      password: 566666
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3308/hello





注意:(1)主机号需要填写你自己的(2)我的mysql的端口号是3308,默认是3306
(3)生产者

package com.tyt.controller;

import com.tyt.service.FruitService;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Autowired
    private RabbitTemplate rabbitTemplate;
    @Autowired
    private FruitService fruitService;
    @GetMapping("hello")
    public String hello() {
        String one = fruitService.getOne(1);
        rabbitTemplate.convertAndSend("qy129_exchange_fanout", "", one);//相当于经过序列化
        return "下单成功";
    }
}

消费者监听消息

package com.tyt.listener;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class ConsumerListener {
    @RabbitListener(queues = "qy129_fanout01")
    public void listener(Message msg) {
        System.out.println("出库"+msg);
    }
}









springboot 整合 rabbitMQ(2) 解决重复消费问题,实现订阅者模式 阅读详情

相关推荐

一篇文章带你使用 SpringBoot 整合 RabbitMQ

文章目录一、认识 RabbitMQ二、安装 RabbitMQ三、SpringBoot 整合 RabbitMQ1. 加入依赖2. 配置 application.properties 一、认识 RabbitMQ RabbitMQ 简介以 AMQP 协议: (1)RabbitMQ 是开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ 底层是用了 Erlang 语言来编写的,并且 RabbitMQ 是基于 AMQP 协议的. (2)RabbitMQ 不仅仅可以使用 java

南淮北安的博客 6451

RabbitMQ五大模式轻松理解

简要概括RabbitMQ工作模式:1、简单模式 HelloWorld 2、工作队列模式 Work Queue 3、发布订阅模式 Publish/subscribe 4、路由模式 Routing 5、通配符模式 Topic

风影浪子 7969

EastWave应用案例:机箱屏蔽效能仿真

如何使用EastWave对机箱的电磁屏蔽效能进行仿真

2201_76034687的博客 1395

rabbit的工作模式

1. 正文 1. 工作者模式: 2. 发布订阅模式 3. 路由模式 4. topic主体模式。 5. Springboot整合rabbitMQ 2. 工作者模式: 特点: 1. 一个生产者 2. 由多个消费。 3. 统一个队列。 4. 这些消费者之间存在竞争关系。 用处: 比如批量处理上. rabbitMQ里面积压了大量的消息。 生产者 package com.ykq.work; import com.rabbitmq.client.Channel; i

qq_53678217的博客 430

从CST到AD:高效PCB阵列设计与介质优化实战

本文详细解析了从CST电磁仿真软件到Altium Designer(AD)的PCB阵列设计全流程,重点解决毫米波天线等精密设计中模型导出、介质优化和阵列构建的核心难题。通过实战技巧,指导工程师高效处理DXF文件导入、复杂铜皮填充、空气介质实现等关键步骤,确保高精度设计从仿真到制造的顺利转换,提升工作效率与设计可靠性。

weixin_28256233的博客 443

视频教程-SAP S4 HANA FICO COPA 获利能力分析-ERP

SAP S4 HANA FICO COPA 获利能力分析 从业超过8年的SA...

weixin_33456805的博客 1444

RabbitMQ五种工作模式

RabbitMQ五种工作模式 1、简单队列 一个生产者对应一个消费者!! 2、work 模式 一个生产者对应多个消费者,但是一条消息只能有一个消费者获得消息!!! 轮询分发就是将消息队列中的消息,依次发送给所有消费者。一个消息只能被一个消费者获取。 3、发布/订阅模式 一个消费者将消息首先发送到交换器,交换器绑定到多个队列,然后被监听该队列的消费者所接收并消费。 ps:X表示交换器,在RabbitMQ中,交换器主要有四种类型:direct、fanout、topic、headers,这里的交换器是 fa

weixin_41882200的博客 1万+

Hi3559AV100制作ext4文件系统和烧录emmc

1、首先生成所需文件系统,见本博客&lt;Hi3559AV100文件系统制作cramfs&gt;。 2、使用工具生成EXT4文件系统 ./make_ext4fs -s -l 96M rootfs_hi3559av100.ext4 ./rootfs 3、烧录文件系统 mw.b 0x82000000 ff 0x12C00000;tftp 0x82000000 STM_...

阿Sir问道 7036

RabbitMQ五种模式

RabbitMQ是一个广泛使用的开源消息代理软件,它支持多种消息传递模式,每种模式都适用于不同的应用场景。

My_wife_QBL的博客 1129

STM32F407编译下载全流程:从CubeMX到HEX烧录

嵌入式固件开发中,编译与下载是连接代码与硬件的关键闭环。其本质是将高级语言描述的逻辑,经交叉编译(ARM GCC)、链接(ELF生成)、格式转换(HEX/BIN)后,通过调试接口(SWD/UART)写入MCU Flash存储器的过程。该流程涉及工具链协同、二进制格式特性(如Intel HEX的地址映射与无元数据设计)、启动模式(System Memory Bootloader)、Flash选项字节(RDP/WRP)等底层机制,直接决定固件可运行性与安全性。典型应用场景包括STM32F407开发板调试、量产固

weixin_28840811的博客 260

风光储并网对电力系统稳定性影响的仿真研究

本文研究了风光储并网对电力系统稳定性的影响,基于MATLAB/Simulink平台搭建了IEEE 9节点测试系统的风光储并网模型。研究对比了光储、风储和风光储三种并网配置在多种干扰下的稳定性表现。结果表明:光储系统对频率变化最敏感,风储系统具有更强的功率波动适应能力,而风光储联合系统通过互补效应展现出最佳综合稳定性。储能系统在所有配置中均显著改善了频率恢复性能,验证了其在新能源并网中的关键支撑作用。研究为高比例可再生能源电力系统的稳定运行提供了仿真依据和技术参考。

huanghm88的专栏 156

RabbitMQ 的五种工作模式

Work Queues 对于任务过重或任务较多情况使用工作队列可以提高任务处理的速度。例如:短信服务部署多个,只需要有一个节点成功发送即可。

每日一记,每周一结。 1445

构建具有预测维护能力的AI Agent

随着工业4.0的推进,工业设备的复杂性和自动化程度不断提高,设备的稳定运行对于企业的生产效率和经济效益至关重要。预测维护作为一种先进的设备维护策略,能够通过对设备状态的实时监测和分析,提前预测设备故障,从而避免设备意外停机,降低维护成本。本文的目的是详细阐述如何构建具有预测维护能力的AI Agent,涵盖从数据采集、处理、模型训练到实际应用的整个流程,为企业和开发者提供全面的技术指导。本文将按照以下结构进行组织:首先介绍核心概念与联系,包括预测维护和AI Agent的基本原理和架构;

2501_92132293的博客 943

rabbitmq的几种模式(springboot整合rabbitmq)

一、简单模式(单生产者单消费者):将消息直接发送到队列中,供消费者消费 1.创建队列 2.代码实现 1)添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 2)消息生产者 @Autowired

Tz.的博客 1640

8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go)

8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go)

算法大师! 1155

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

springboot几种开发模式_springboot整合rabbitmq的五种模式

SpringBoot-RabbitMQ本案例为springboot整合rabbitmq的五种工作模式。springboot不需要在启动类前加@EnableRabbit和新建ConnectionFactory(),因为可以在yml里配置rabbitmq的选项。本案例开启的消息确认机制,持久化了交换机,队列以及消息,消费者端开启了手动ACK,保证非极端情况下消息的可靠性。配置简单,doem中有详细的注...

weixin_39682301的博客 505

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

RabbitMQ安装 以及 Spring Boot整合

Spring Boot + 整合RabbitMQ 1、docker 配置 RabbitMQ运行环境 docker pull rabbitmq:management # tag为management版本的rabbitmq # 运行容器 docker run -dit --name rabbitmq01 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:manag

RealGUO的博客 170

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

RabbitMQ模式,RabbitMQ和springboot整合,RabbitMQ全链路消息不丢失解决

一,RabbitMQ简介   RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。   优点:跨语言,高并发。 二,实际项目中作用 (一)任务异步处理 场景:用户下单后,根据订单信息进行减库存以及增加积分。 传...

fengtangjiang的博客 209

RabbitMQ学习教程

1、JMS:(定义:由Sun公司早期提出的消息标准,是一个Java平台中关于面向消息中间件(MOM)的API,旨在为java应用提供统一的消息操作)->类似于JDBC数据库API连接规范,JMS相当于消息通信API规范(只不过只针对Java语言)2、AMQP:(定义:在2003年时被提出,最早用于解决金融领不同平台之间的消息传递交互问题,是一种协议)->(1)AMQP只是一种协议,不是从API层进行限定,而是直接定义网络交换的数据格式。

qq_29928745的博客 560

RabbitMQ安装、工作模式和SpringBoot整合RabbitMQ

RabbitMQ 每日一点点进步 不进则退

璃尔 ° 的博客 1960

SpringBoot如何整合RabbitMQ

好久没有写博客了,终日忙于生计,真是人过30不如狗啊,但写点什么好呢?想想当年自己入门时候那痛苦的经历,还是写点优质实用的入门文章吧,既满足了自己好为人师的本性,也能给后辈提供一些帮助。今天咱们就来聊聊springboot整合rabbitmq的那些事吧。SpringBoot的风头之盛不多说了,我是在2016年首次接触springboot的,当时自己要写个APP,后台采用了springboot。当时还真是个新鲜事物,没想到以后几年的发展犹如黄河泛滥,一发不可收拾…rabbitmq官网https。...

ShuSheng007的程序人生 1万+

详解SpringBoot整合RabbitMQ之通配符模式

详解SpringBoot整合RabbitMQ之通配符模式。

. 1万+

Springboot整合RabbitMQ

一、Springboot整合RabbitMQ的代码实现 1.引入Springboot整合RabbitMQ的依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> &l

weixin_49076273的博客 1万+

springboot2.3.1整合RabbitMQ多种工作模式 发送确认,手动应答

springboot2.3.1整合RabbitMQ多种工作模式 发送确认,手动应答

胖虎儿的博客 1万+

springboot整合rabbitmq的五种模式示例

springboot整合rabbitmq RabbitMQ提供了6种消息模型,但是第6种其实是RPC,并不是MQ,因此不予学习。那么也就剩下5种。 1.基本消息模型:生产者–>队列–>一个消费者 2.work消息模型:生产者–>队列–>多个消费者共同消费 3.订阅模型-Fanout:广播,将消息交给所有绑定到交换机的队列,每个消费者都可以收到同一条消息 4.订阅模型-Di...

not only a 程序员的博客 8306

RabbitMQ与SpringBoot整合详解

一、前言   本文章总体简介,会采用Docker下载安装RabbitMQ,详细介绍RabbitMQ优缺点及其相关技术知识点,SpringBoot作为整合学习的基础架构。看完本片文章,你会了解消息队列RabbitMQ,你会使用消息队列RabbitMQ。 二、消息队列   当第一次出现在我脑中这个词语时,我会问自己什么时消息队列?我做的项目为什么没有消息队列?我做的项目可以用消息队列么?如果可以用消息队列这要怎么使用消息队列?消息队列能解决项目什么问题?等等问题会出现在我的脑海…,然而我将会在面文章中对自己慢慢

vanGogh的博客 7184
上一篇: rabbitmq的安装与简单实例
下一篇: jdk8_lambda笔记
TYTvampire
博客等级 码龄7年 4粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值