首页 > 其他分享 >rabbitmq详细实例

rabbitmq详细实例

时间:2023-09-11 21:33:22浏览次数:43  
标签:消费 AMQP Spring RabbitMQ 实例 rabbitmq 详细 Consumer 消息

1. 概述

RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。

FROM 《维基百科 —— RabbitMQ》

Rabbit 科技有限公司开发了 RabbitMQ ,并提供对其的支持。起初,Rabbit 科技是 LSHIFT 和 CohesiveFT 在 2007 年成立的合资企业,2010 年 4 月 被 VMware 的旗下的 SpringSource 收购。RabbitMQ 在 2013 年 5 月成为 GoPivotal 的一部分。

  • 这么一看,Spring Cloud 在消息队列主推 RabbitMQ ,可能还是有原因的,嘿嘿。

2. 安装RabbitMQ

  1. 单机docker安装rabbitmq
//下载RabbitMQ镜像
docker pull rabbitmq:management
//启动
docker run --name rabbit --restart=always -p 15672:15672 -p 5672:5672  -d  rabbitmq:management
RabbitMQ,默认guest用户,密码也是guest。java
  1. 集群部署

docker修改rabbitmq密码,参考Docker修改MySQL,RabbitMQ,Redis密码_docker修改redis密码_JiuYou2020的博客-CSDN博客

3. RabbitMQ-SpringBoot

在 Spring 生态中,提供了 Spring-AMQP 项目,让我们更简便的使用 AMQP 。其官网介绍如下:

  • The Spring AMQP project applies core Spring concepts to the development of AMQP-based messaging solutions. Spring-AMQP 项目将 Spring 核心概念应用于基于 AMQP 的消息传递解决方案的开发。

  • It provides a "template" as a high-level abstraction for sending and receiving messages.

    它提供了一个“模板”作为发送消息的高级抽象。

  • It also provides support for Message-driven POJOs with a "listener container".

    它还通过“侦听器容器”为消息驱动的 POJO 提供支持。

  • These libraries facilitate management of AMQP resources while promoting the use of dependency injection and declarative configuration.

    这些库促进 AMQP 资源的管理,同时促进使用依赖注入和声明性配置。

  • In all of these cases, you will see similarities to the JMS support in the Spring Framework.

    在所有这些情况下,您将看到与 Spring 框架中的 JMS 支持的相似之处。

  • The project consists of two parts; spring-amqp is the base abstraction, and spring-rabbit is the RabbitMQ implementation. 该项目包括两个部分:

Features(功能特性)

  • Listener container for asynchronous processing of inbound messages 监听器容器:异步处理接收到的消息
  • RabbitTemplate for sending and receiving messages RabbitTemplate:发送和接收消息
  • RabbitAdmin for automatically declaring queues, exchanges and bindings RabbitAdmin:自动创建队列,交换器,绑定器。

Spring-Boot 项目中,提供了 AMQP 和 RabbitMQ 的自动化配置,所以我们仅需引入 spring-boot-starter-amqp 依赖,即可愉快的使用。

image-20230910212647855

  • AMQP 里主要要说两个组件:Exchange 和 Queue ,绿色的 X 就是 Exchange ,红色的是 Queue ,这两者都在 Server 端,又称作 Broker ,这部分是 RabbitMQ 实现的。
  • 而蓝色的则是客户端,通常有 Producer 和 Consumer 两种类型(角色)。

3.1 快速入门

代码地址:learning/rabbitmq/rabbitmq-springboot-quickstart at master · JiuYou2020/learning (github.com)

配置文件:

spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

3.1.1 Direct Exchange

Direct 类型的 Exchange 路由规则比较简单,它会把消息路由到那些 binding key 与 routing key 完全匹配的 Queue 中。以下图的配置为例:

image-20230910233223954

  • 我们以 routingKey="error" 发送消息到 Exchange ,则消息会路由到 Queue1(amqp.gen-S9b…) 。
  • 我们以 routingKey="info"routingKey="warning" 来发送消息,则消息只会路由到 Queue2(amqp.gen-Agl…) 。
  • 如果我们以其它 routingKey 发送消息,则消息不会路由到这两个 Queue 中。
  • 总结来说,指定 Exchange + routing key ,有且仅会路由到至多一个 Queue 中。

    标签:消费,AMQP,Spring,RabbitMQ,实例,rabbitmq,详细,Consumer,消息
    From: https://www.cnblogs.com/jiuyou2020/p/17694590.html

相关文章

  • K8s - 安装部署MongoDB数据库教程1(单实例)
    来源:https://www.hangge.com/blog/cache/detail_3158.htmlMongoDB 是一个基于分布式文件存储的数据库。我之前文件中介绍如何使用官方提供的安装包进行 MongoDB 数据库的安装(点击查看),以及如何通过 Docker 来快速搭建 MongoDB 数据库环境(点击查看)。本文接着演示如何在 Ku......
  • 一个详细且完整的公司局域网搭建案例,跟着操作!
    局域网(LocalAreaNetwork,简称LAN),用于将有限范围内(例如一个实验室、一层办公楼或者校园)的各种计算机、终端与外部设备互联成网。公司局域网怎么建立?首先来了解下不同规模企业网络组建方式。10人以下企业网络组建10人以下,规模比较小的公司一般对网络应用需求较低,由于人数少,基本也......
  • PPT| 美的集团632战略规划项目详细介绍 P54
    本人从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.【智能制造数字化咨询】该PPT共54页,由于篇幅有限,以下为部分资料,如需完整原版 方案,点击右上角红色按钮关注+私信。......
  • 超全面详细一条龙教程!从零搭建React项目全家桶(上篇)
    超全面详细一条龙教程!从零搭建React项目全家桶(上篇)兔子先生 ​关注他 101人赞同了该文章 React是近几年来前端项目开发非常火的一个框架,其背景是Facebook团队的技术支持,市场占有率也很高。很多初学者纠结一开始是学react还是vue。个人觉得,有时间的......
  • 3天上手Ascend C编程丨通过Ascend C编程范式实现一个算子实例
    本文分享自华为云社区《3天上手AscendC编程|Day2通过AscendC编程范式实现一个算子实例》,作者:昇腾CANN。一、AscendC编程范式AscendC编程范式把算子内部的处理程序,分成多个流水任务(stage),以张量(Tensor)为数据载体,以队列(Queue)进行任务之间的通信与同步,以内存管......
  • Debezium系列之:监控 Debezium 实例
    Debezium系列之:监控Debezium实例一、概述二、实现步骤三、执行四、打开GrafanaUI五、关闭集群DebeziumJMX相关的技术博客:Debezium系列之:安装jmx导出器监控debezium指标Debezium系列之:为Debezium集群JMX页面增加监控,JMX页面出现异常时发送飞书告警,确保任务能够获取debezium集......
  • Iceberg从入门到精通系列之四:详细整理出Iceberg支持的字段类型,创建包含所有类型的表,并
    Iceberg从入门到精通系列之四:详细整理出Iceberg支持的字段类型,创建包含所有类型的表,并插入数据一、Iceberg表支持的字段类型二、创建包含所有类型的表三、插入数据一、Iceberg表支持的字段类型BOOLEANTINYINTSMALLINTINTEGERBIGINTFLOATDOUBLEDECIMALDATETIMESTAMPSTRINGUUIDFIXE......
  • PyCharm安装教程附激活码超详细
    现在来教大家安装pycharm,第一步:DownloadPyCharm:PythonIDEforProfessionalDevelopersbyJetBrains我们先将上方网址复制到地址栏中,会出现以下页面第二步:接着点击左下方绿色的键,这里要看我们电脑的操作系统是多少,有32位的或64位的(占多数),这里一般下载的是最新版的第三步:我们直......
  • quartus软件下载安装方法,请详细叙述。(答案来自文心一言)
    Quartus软件下载安装方法如下:在Intel官网下载并解压缩Quartus安装包。将Quartus安装包移动到指定位置(建议不要安装在C盘)。双击运行Quartus安装程序,进入安装向导。点击“下一步”并选择“我接受许可协议”。选择要安装的组件并点击“下一步”。选择安装路径并点击“下一步”......
  • Linux下安装Redis的详细安装步骤
    一.Redis安装1.下载linux压缩包【redis-5.0.5.tar.gz】2.通过FlashFXP把压缩包传送到服务器3.解压缩tar-zxvfredis-5.0.5.tar.gz4.进入redis-5.0.5可以看到redis的配置文件redis.conf5.基本的环境安装使用gcc-v命令查看gcc版本已经是4.8.5了,于是就没有再次安装,直接......