Rabbitmq消息队列详解(一)——基础介绍

news2024/11/23 9:20:03

安装rabbitmq

本机:

http://erlang.org.download/otp_win64_21.3.exe

在这里插入图片描述

一直next

https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.14/:rabbitmq-server-3.7.14.exe

全选,next

进入RabbitMQ安装目录下的sbin目录

rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述

http://localhost:15672访问

guest guest

docker:

# 下载镜像
docker pull rabbitmq

# 启动镜像
docker run --name rabbitmq  -p 15672:15672 -p 5672:5672 -d rabbitmq:latest

# 进去镜像实例中安装管理界面
docker exec -it rabbitmq bash

# 镜像实例中输入命令安装管理台
rabbitmq-plugins enable rabbitmq_management

# 访问localhost:15672,输入用户名密码:guest/guest登录即可

docker start

#开机自动启动
docker update --restart=always id

MQ引言

消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的浸入,轻松的实现系统间的解耦。别名消息中间件,通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。

不同MQ特点

Activemq

Apache,完全支持JMS规范的消息中间件,丰富的API。

kafka

Apache开源的发布-订阅消息系统,主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的是用于日志的手机和传输。不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。

Rocketmq

阿里开源,基于java开发,高吞吐量、高可用性、适合大规模分布式系统用用的特点。它对消息的可靠传输及事务性做了优化,目前在阿里巴巴中被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binglog分发场景。

Rabbitmq

基于Erlang语言,AMQP协议来实现。AMQP的主要特点是面向消息、队列、路由、可靠性、安全。AMQP协议更多用在企业系统内对数据的一致性、稳定性和可靠性要求很高的场景,对性能和高吞吐量的要求还在其次。

Rabbitmq比kafka可靠,Kafka更适合IO高吞吐的处理,一般应用于大数据的日志处理等。

AMQP概论

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议。消费者收到的每一条消息都必须进行确认(自动确认和自行确认)。AMQP是一种链接协议,这是和JMS的本质区别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式,这使得实现了AMQP的provider天然性就是跨平台的。

包括的要素:

  • 生产者、消费者、消息
  • 信道(每一个线程都对应一个信道,多个线程可共享一个tcp/ip)
  • 交换器(每一个队列都需要绑定交换器来路由消息)、队列、绑定、路由键(生产者的消息根据路由键发送到对应队列,一个队列可以绑定多个key)

在这里插入图片描述

在这里插入图片描述

交换器类型

Direct Exchange

交换器根据路由键key(全一致)分配到对应的队列

在这里插入图片描述

Fanout Exchange

没有路由键key,消息直接分配到所有的队列

在这里插入图片描述

Topic Exchange

生产者发消息,携带路由key,根据分隔符“.”识别到对应的队列。*指匹配单个,#指匹配所有。

队列事先设置好范围,用*,#表示,可识别路由key。

如下图,usa.#指可以接收routing key为usa开头的所有key,比如:usa.xx.xxx

usa.*则只能接收routing key为usa.xx的key。

在这里插入图片描述

虚拟主机headers

虚拟主机:rabbitmq中细分成几个小的rabbitmq。可分别给多个系统使用。

类似数据库,整个rabbitmq就是mysql,一个虚拟机就是库。

Rabbitmq管理页面

创建交换机

Durable指持久化,存放到磁盘。

默认自带6个交换器

在这里插入图片描述

创建队列

在这里插入图片描述

创建用户

自带guest,guest。

在这里插入图片描述

点击virtual hosts,创建虚拟主机

名称最好/开头

在这里插入图片描述

点击用户,绑定该用户使用虚拟机的权限

在这里插入图片描述

5672端口是客户端的访问端口;

25672是集群搭建访问的端口;

15672是访问管理页面的端口。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实操!用Zabbix+500元硬件如何平替5万元动环检测系统,实现UPS温湿度烟雾等数据采集存储、告警、大屏展示?

感谢本文作者 王志杰 。诚邀社区伙伴积极投稿! 前提 ►架构展示: ►大屏展示: ►所需软件: Zabbix Grafana 安装Zabbix-agent2的采集服务器 MThings串口调试软件 厂家自带UPS监控软件 USR-VCOM有人虚拟串口软件 ►所需硬件&a…

maven第二篇:IDE创建maven项目

前面将maven安装好了,当然起不会直接用,而是结合着一起用,那么现在就用IDE创建一个maven,来进行演示。 前提 IDE默认是带有maven软件,但是一般不习惯用起自带的,所以前提就是安装一个maven软件&#xff0…

HUAWEI CLOUD Stack 私有云解决方案(HCS)

HUAWEI CLOUD Stack 私有云解决(HCS) 注明: 本文介绍的版本为HUAWEI CLOUD Stack 6.5(也叫华为云Stack或HCS), 在华为6.5版本以前的名字是FusionCloud 6.3, 最近更新的8.0版本不会差别太大&…

Java开发学习(三十九)----SpringBoot整合mybatis

一、回顾Spring整合Mybatis Spring 整合 Mybatis 需要定义很多配置类 SpringConfig 配置类 导入 JdbcConfig 配置类 导入 MybatisConfig 配置类 Configuration ComponentScan("com.itheima") PropertySource("classpath:jdbc.properties") Import({JdbcC…

Trie 字典树

Trie Trie,又称字典树或前缀树。是一棵有根的多叉树。用于高效存储和查找字符串集合。 字典树从根到树上某一结点的路径就是一个字符串。 一棵字典树的构造过程图解: 字典树的度和字符集有关,英文字符集是26个字母,那么字典树的…

通用vue组件化登录页面

一、首页设置大体的样式布局 1.首先建立一个login文件夹,在里面建立对应的login.vue文件 2.设置登录页面的背景图,在App.vue文件中使用router-view进行展示登录组件 3.先给App.vue的div元素设置高度100%,之后在login.vue里面去设置背景图 …

财务管理系统|基于Springboot开发实现公司财务管理系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

知识库软件应该具备的7个基本功能

SaaS公司最大的业务挑战是:如何留住客户,客户与你达成合作关系后,如何让其与你继续合作,达成长期合作关系。对于SaaS产品,丢失客户的成本是很昂贵的,赢得一个新客户的成本是留住现有客户的5到25倍&#xff…

Vue脚手架的使用

一、通过命令行使用vue-cli的指令创建 1. 安装:npm i -g vue/cli-init 2. 创建Vue项目(Vue2.0项目): ​ (1)创建文件夹:vue2-demo ​ (2)进入文件夹:cd v…

[Leetcode] 相交链表

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据保证整个链式结构中不存在环。注意,函数返回结果后&#xf…

【 java 集合】Set 接口及常用实现类总结

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

JavaEE【Spring】:Spring事务和事务传播机制

文章目录前言一、Spring 中事务的实现1、MySQL 中的事务使用2、Spring 编程式事务(了解)3、Spring 声明式事务(自动)① Transactional 作用范围② Transactional 参数说明③ 注意事项Ⅰ. 抛出异常Ⅱ. 手动回滚④ Transactional ⼯…

2022年亚太地区大学生数学建模竞赛/2022年亚太杯1月加赛E题思路

问题1. 基本数据分析数据集中的OWID_WRL是什么?一般是指世界world。a) 哪些国家曾经拥有过核武器?现拥有核武器的国家有9个,分别为:美国、俄罗斯、英国、法国、中国、印度、巴基斯坦、以色列,朝鲜。曾经拥有核武的国家…

【python】导入同级、下级、上级目录中的模块

不想把代码都堆到一个文件里面,希望写的分层次,但又不是web框架,有入口文件和目录规则, 这个时候就要自己分包了,会遇到这个问题,明明ide智能追踪可以定位到包引用,但是却报错module undefine&a…

5G NR标准 第15章 上行功率和定时控制

第15章 上行功率和定时控制 上行链路功率控制和上行链路时序控制是本章的主题。 功率控制用于控制干扰,主要是针对其他小区的干扰,因为同一小区内的传输通常是正交的。 时序控制确保不同的设备以相同的时序接收,这是保持不同传输之间正交性…

Nacos设置为windows自启动服务

序言 众所周知,在 Windows 环境下想要启动 nacos 需要运行 bin 目录下的 startup.cmd。这样的启动方式需要保证 cmd 窗口一直开着,只要把这个窗口关掉,nacos 服务就停了。 所以为了避免人为的误关窗口,把 nacos 注册成一个 wins…

【可视化】无法理解PCA,条件概率,最小二乘回归?可视化帮你!

主成分分析PCA2D示例首先,只考虑两个维度的数据集,比如高度和重量。这个数据集可以绘制成平面上的点。但如果想要整理出变量,PCA会找到一个新的坐标系,其中每个点都有一个新的(x,y)值。坐标轴实际上没有任何物理意义。它们是高度和…

【JavaScript】如何转换blob数据与file文件还有url

大家好,关于blob对象和file对象有了解多少呢,它们都是一种文件的表示形式,文件之间是可以互相转换的,顺带一提,还有经常用到的临时文件路径tempFileURL。 文章目录文件类型Blob对象File对象URL临时路径文件类型 首先&…

c++ -- STL容器--vector

STL中最常用的容器为Vector&#xff0c;可以理解为数组#include <iostream> #include <vector> #include <algorithm> using namespace std;void myPrint(int val) {cout <<val<<endl; }//vector容器存放内置数据类型void test01() {//创建了一个…

数据库(tidb、clickhouse、hive)概念笔记

目录 1、有哪些分布式数据库 2、OLAP、OLTP、HTAP 3、TIDB、clickhouse、hive 一、TIDB 1. TiDb 核心特性&#xff1a; 2. TiDb 整体架构&#xff1a; 3.TiDB 存储&#xff1a; 二、clickhouse 三、hive 1.什么是 Hive&#xff1f; 2.Hive 架构和如何运作&#xff1…