rabbitmq基础-java-1、快速入门

这篇具有很好参考价值的文章主要介绍了rabbitmq基础-java-1、快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、AMQP

        AMQP,即Advanced Message Queuing Protocol(高级消息队列协议),一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件传递消息,不受客户端/中间件不同产品、不同开发语言等条件的限制。该协议是一种二进制协议,提供客户端应用于消息中间件之间异步、安全、高效的交互。相对于我们常见的REST API,AMQP更容易实现,可以降低开销,同时灵活性高,可以轻松的添加负载平衡和高可用性的功能,并保证消息传递,在性能上AMQP协议也相对更好一些。

2、Java实例-简单模式(Simple Mode)

        简单模式(Simple Mode):这是最基本的消息模型,其中生产者将消息发送到队列,消费者从中获取消息并进行处理。在这种模式下,每个消息只能由一个消费者处理,但可以实现多个任务并行处理。

rabbitmq基础-java-1、快速入门,rarbbitmq,java

2.1、项目结构-聚合工程

rabbitmq基础-java-1、快速入门,rarbbitmq,java

2.2、导包-主pom

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.itcast.demo</groupId>
    <artifactId>mq-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>publisher</module>
        <module>consumer</module>
    </modules>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.12</version>
        <relativePath/>
    </parent>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--AMQP依赖,包含RabbitMQ-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <!--单元测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!--Jackson-->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>
    </dependencies>
</project>

2.3、生产者publisher-pom

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>mq-demo</artifactId>
        <groupId>cn.itcast.demo</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>publisher</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

2.4、消费者consumer-pom

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>mq-demo</artifactId>
        <groupId>cn.itcast.demo</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>consumer</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

3、yml配置

3.1、生产者publisher-yml

logging:
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
spring:
  rabbitmq:
    host: 192.168.18.11
    port: 5672
    virtual-host: /
    username: guest
    password: guest

3.2、消费者consumer-yml

logging:
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
spring:
  rabbitmq:
    host: 192.168.18.11
    port: 5672
    virtual-host: /
    username: guest
    password: guest

4、生产者发送消息

@SpringBootTest
public class SpringAmqpTest {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    void testSendMessage2Queue() {
        String queueName = "hello.queue1";
        String msg = "hello, amqp!";
        rabbitTemplate.convertAndSend(queueName,msg);
    }
}

5、消费者接收消息

@Slf4j
@Component
public class MqListener {

    @RabbitListener(queues = "hello.queue1")
    public void listenSimpleQueue(String msg){
        System.out.println("消费者收到了simple.queue的消息:【" + msg +"】");
    }
}

6、测试

6.1、发消息

rabbitmq基础-java-1、快速入门,rarbbitmq,java

6.2、查看消息

rabbitmq基础-java-1、快速入门,rarbbitmq,java

6.3、接收消息

rabbitmq基础-java-1、快速入门,rarbbitmq,java文章来源地址https://www.toymoban.com/news/detail-820417.html

到了这里,关于rabbitmq基础-java-1、快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RabbitMQ快速入门

             启动rabbitmq后,在浏览器中输入http://ip:15672/,就可以看到rabbitmq的控制台。 参照控制界面说明: 5672端口:AMQP(Advanced Message Queuing Protocol)协议的默认端口,用于客户端与RabbitMQ服务器之间的通信。 15672端口:RabbitMQ的管理界面,默认使用HTTP协议,用于监控和管

    2024年01月23日
    浏览(26)
  • RabbitMQ - 01 - 快速入门

    目录 界面总览 创建队列 选择默认交换机 发布消息 查看消息 通过实现以下目标快速入门                    RabbitMQ Management 界面总览 通道: 传输消息的通道 路由: 接收和路由(分发)消息 队列: 存储消息 消息队列的流程:  生产者将消息发送给路由,路由分发消息到各个队列存

    2024年03月12日
    浏览(42)
  • RabbitMQ --- 简介、快速入门

    微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应 异步通讯:就像发邮件,不需要马上回复 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。   同步通

    2023年04月26日
    浏览(29)
  • 【RabbitMQ】快速入门及基本使用

    Ⅰ、什么是消息队列?         消息队列是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及

    2024年01月20日
    浏览(24)
  • RabbitMQ-同步和异步区别&快速入门

    服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。 1.1.1

    2024年04月26日
    浏览(23)
  • 基础篇_快速入门(Java简介,安装JDK,cmd命令行运行Java文件产生乱码问题的解决方式,IDE工具,实用工具)

    Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今,Java 仍是企业和开发人员的首选开发平台,全球有数百万开发人员运行超过 51 亿台 Java 虚拟机。 它是 Java Virtual Machine 也就是 Java 虚拟机的缩写,它的职责是解释执

    2024年01月23日
    浏览(35)
  • RabbitMQ入门 消息队列快速入门 SpringAMQP WorkQueue 队列和交换机 Fanout Direct exchange RAbbitMQ单体部署

    微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。 1.

    2024年04月08日
    浏览(48)
  • MQ的快速入门及RabbitMQ的五种工作模式

    目录 MQ基本知识 MQ基本概念 MQ概述 MQ的优势和劣势 优势 劣势 RabbitMQ 简介 基础架构 相关概念 JMS RabbitMQ安装 在线拉取镜像 安装MQ 访问控制台(http://ip地址:15672) 工作模式 简单模式(生产者消费者模式) Work Queues 工作队列模式 Pub/Sub 订阅模式 Routing 路由模式 Topics 通配符模式

    2024年02月13日
    浏览(24)
  • RabbitMQ入门到实战——基础篇

    初识RabbitMQ:高性能异步通讯组件   场景:1.对结果不关心时异步。订单状态-异步,查询-同步 2.影响性能。调用链超长,可改成异步  kafka日志收集     交换机只负责路由消息,没有消息保存能⼒ 发信息前,queue需要binding绑定交换机 给每个项目创建自己的用户user和虚拟主机

    2024年01月23日
    浏览(22)
  • 【ELK解决方案】ELK集群+RabbitMQ部署方案以及快速开发RabbitMQ生产者与消费者基础服务...

    前言: 大概一年多前写过一个部署ELK系列的博客文章,前不久刚好在部署一个ELK的解决方案,我顺便就把一些基础的部分拎出来,再整合成一期文章。大概内容包括:搭建ELK集群,以及写一个简单的MQ服务。 如果需要看一年多之前写的文章,可以详见下列文章链接(例如部署

    2023年04月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包