首页 > 其他分享 >k01_mq入门

k01_mq入门

时间:2024-03-11 20:00:14浏览次数:31  
标签:k01 入门 RabbitMQ mq1 mq 镜像 MQ 集群

MQ概念

MQ(MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker(经纪人)

image-20230730090408818

安装RabbitMQ

我们在Centos7虚拟机中使用Docker来安装。

1.1.下载镜像

方式一:在线拉取

docker pull rabbitmq:3-management

方式二:从本地加载

在课前资料已经提供了镜像包:

image-20210423191210349

上传到虚拟机中后,使用命令加载镜像即可:

docker load -i mq.tar

1.2.安装MQ

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

docker run \
 -e RABBITMQ_DEFAULT_USER=itcast \
 -e RABBITMQ_DEFAULT_PASS=123321 \
 --name mq \
 --hostname mq1 \
 -p 15672:15672 \
 -p 5672:5672 \
 -d \
 rabbitmq:3-management

2.集群部署

接下来,我们看看如何安装RabbitMQ的集群。

2.1.集群分类

在RabbitMQ的官方文档中,讲述了两种集群的配置方式:

  • 普通模式:普通模式集群不进行数据同步,每个MQ都有自己的队列、数据信息(其它元数据信息如交换机等会同步)。例如我们有2个MQ:mq1,和mq2,如果你的消息在mq1,而你连接到了mq2,那么mq2会去mq1拉取消息,然后返回给你。如果mq1宕机,消息就会丢失。
  • 镜像模式:与普通模式不同,队列会在各个mq的镜像节点之间同步,因此你连接到任何一个镜像节点,均可获取到消息。而且如果一个节点宕机,并不会导致数据丢失。不过,这种方式增加了数据同步的带宽消耗。

我们先来看普通模式集群。

2.2.设置网络

首先,我们需要让3台MQ互相知道对方的存在。

分别在3台机器中,设置 /etc/hosts文件,添加如下内容:

192.168.150.101 mq1
192.168.150.102 mq2
192.168.150.103 mq3

并在每台机器上测试,是否可以ping通对方:

RabbitMQ消息模型

RabbitMQ官方提供了5个不同的Demo示例,对应了不同的消息模型:

image-20210717163332646

标签:k01,入门,RabbitMQ,mq1,mq,镜像,MQ,集群
From: https://www.cnblogs.com/2580p/p/18066938

相关文章

  • k01创建第一个springboot程序
    创建springboot程序的方式有两种1、在spring官网创建,https://start.spring.io/2、使用idea程序创建。一般情况下我们都是使用idea软件创建的,因为这样会更方便1、使用spring官网创建(SpringInitializr)(初学使用)(一般不用)我们只需要在网站上输入(https://start.spring.i......
  • k01_mysql
    视图---事务---游标---存储过程---触发器1、视图创建视图--创建一个名为:view_student_info的视图,将student的所有信息放在视图中CREATEVIEWview_student_infoASSELECT*FROMstudent--指定创建视图名中的字段名称(默认创建的视图字段与原表完全相同,但是也可以不同)CRE......
  • 性能测试入门:做一次简单的性能测试
    当前,性能测试已经是一名软件测试工程师必须要了解,甚至熟练使用的一项技能了,在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门性能测试。突然让做性能测试怎么办?日常工作中,项目改造或项目架构升级都需要......
  • RabbitMQ调研
    Swarm集群上部署RabbitMQ镜像队列集群Authoredby付建钧##1.为什么使用RabbitMQ(1)解耦:实现了消费者与生产者之间的解耦(2)异步:将消息写入消息队列,非必要的业务逻辑以异步的方式运行,可以加快业务的相应速度(3)削峰:在高并发的业务场景下,消息队列可以使同步访问变为串行访问达到限......
  • Guzzle 入门教程
    Guzzle入门教程Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。接口简单:构建查询语句、POST请求、分流上传下载大文件、使用HTTPcookies、上传JSON数据等等。发送同步或异步的请求均使用相同的接口。使用PSR-7接口来请求、响应、分流,允许你使......
  • ningx入门
    1、公司产品出现瓶颈?项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。但是慢慢的,使用我们平台的用户越来越多了,并发量慢慢增大了,这时候一台服务器满足不了我们的需求了。于是我们横向扩展,又增加了服务器。......
  • jQuery入门
    jQuery入门基本概念:jQuery是一个快速,小型且功能丰富的JavaScript库。借助易于使用的API(可在多种浏览器中使用),使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得更加简单。个人理解:jQuery是js的一个库,本质就是封装好的js函数,可以和javascript一起使用,使用jQuery可以简化开发1......
  • 搭建交换机模拟环境及SSH连接,华为NSP软件入门使用教程
    如果你是通过搜索搜到了这篇文章,那么一定是工作或者学习中需要用交换机,但是又没物理机测试学习,所以需要搭建本地的虚拟环境学习。这篇文章是我进行交换机命令入门学习写的,笔者之前也是网上搜索,关于交换机的内容实在太少了。所以记录下来,给后来者少走弯路1.华为ENSP软件下载官......
  • 给python入门者的帮助,关于函数和装饰器的理解。
    有时候学习不能过于较真,至少在合适的时机之前,还是闷头吞知识,等吃饱了,就有精力(足够的能量储备,足够的经验)来理解更深的理解,但是很多时候,包括我自己,都喜欢在吃饱之前就研究自己在吃什么,为什么这个东西能吃这种问题。最近发现几年前写的一篇关于python函数return的一些理解,又被查......
  • Django入门
    Django入门启动django项目之后如何添加更多的功能回想自己编写的web框架如果要添加功能就去urls.py和views.py【1】添加URL映射在项目的urls.py文件中,通过导入相应的应用(app)及其视图函数,并使用path()或include()函数来定义URL映射规则。例如,如果要在名为"myap......