• 欢迎光临~

HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】

开发技术 开发技术 2022-01-25 108次浏览

1 RabbitMQ概述

  1. RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址:https://www.rabbitmq.com/
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】

  2. RabbitMQ的结构:
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】

  3. RabbitMQ中的一些角色:

    • channel:操作MQ的工具
    • publisher:生产者
    • consumer:消费者
    • exchange个:交换机,负责消息路由(路由消息到队列中)
    • queue:队列,存储消息(缓存消息)
    • virtualHost:虚拟主机,隔离不同租户的exchange、queue、消息的隔离(是对queue、exchange等资源的逻辑分组)

2 CentOS7环境Docker安装RabbitMQ(单机部署)

2.1 获取镜像

  • 方式1:在线拉取

    docker pull rabbitmq:3-management
    
  • 方式2:本地加载

    • 课前资料已经提供了镜像包:
      HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    • 上传到虚拟机中后,使用命令加载镜像即可:
      docker load -i mq.tar
      

HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】

2.2 安装MQ

  • 执行下面的命令来运行MQ容器:

    docker run 
     -e RABBITMQ_DEFAULT_USER=yubaby 
     -e RABBITMQ_DEFAULT_PASS=123321 
     --name mq 
     --hostname mq1 
     -p 15672:15672 
     -p 5672:5672 
     -d 
     rabbitmq:3-management
    
  • 命令解读:

    • -e给MQ设置环境变量,此处设置了两个环境变量:用户名&密码,用于后续访问MQ&登录MQ管理平台
    • --name是给MQ起名字
    • --hostname给MQ设置主机名(单机部署时不配置也行;但集群部署时必须配置,后面讲MQ集群部署)
    • -p是配置端口映射,此处开放两个端口,15672是MQ管理平台端口,5672是MQ消息通信端口
    • -d是后台运行(此命令,即安装MQ容器)
    • 最后的rabbitmq:3-management是镜像名称

  • 安装&访问
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】

  • 默认界面
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】

  • 添加用户&分配权限
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    虚拟主机隔离

3 RabbitMQ消息模型

https://www.rabbitmq.com/getstarted.html
HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
2.
RabbitMQ官方提供了7个不同的Demo示例(如上)。
在此学习前五个,对应了如下不同的消息模型:
HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】

4 RabbitMQ入门案例"HelloWorld"

4.1 案例简介

  1. 简单队列模式的模型图
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
    官方的HelloWorld是基于最基础的消息队列模型来实现的,只包括三个角色:
    • publisher:消息发布者,将消息发送到队列queue
    • queue:消息队列,负责接受并缓存消息
    • consumer:订阅队列,处理队列中的消息
  2. 案例步骤
    HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】

4.2 案例实现

4.2.1

4.3 小结

  1. 基本消息队列的消息发送流程:
    1. 建立connection
    2. 创建channel
    3. 利用channel声明队列
    4. 利用channel向队列发送消息
  2. 基本消息队列的消息接收流程:
    1. 建立connection
    2. 创建channel
    3. 利用channel声明队列
    4. 定义consumer的消费行为handleDelivery()
    5. 利用channel将消费者与队列绑定
程序员灯塔
转载请注明原文链接:HM-SpringCloud微服务系列4.2【RabbitMQ快速入门】
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com