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

49 篇文章 2 订阅
36 篇文章 1 订阅

安装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是访问管理页面的端口。

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wzq_55552

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值