rabbitmq1-概述及其使用docker安装

一、mq的应用场景:

这里有一篇博文写的非常的好,所以这里直接给出这个博文的连接,MQ应用场景分析的十分好的一篇博文,在这里我在补充一些应用场景;
- 1、其实上面的一篇博文中主要讲的是应用的解耦,多个应用拆分开来各个环节互不干扰,同时提高效率
- 2、通知:例如通知所有后台商家,周五晚上进行系统维护不要上架商品,这个时候就可以使用发MQ的布订阅模式
- 3、限流(流量削峰):rabbitmq中有一个流控的东西触发之后就可以限制消息的发送频率,从而可达到限流的目的,可使用与秒杀等高并发的场景在恢复正常后依旧按照正常的思路去跑
- 4、分布式事务,在我的一篇博文中已经讲到过分布式事务,由于rabbitmq只要消息投递成功就一定确保消费的机制,所以特别的适合解决分布式事务最终一致性的要求的特点,具体的可以查看此篇博文里面有一个流程的小例子,有可能还是依旧没有讲清楚后面的博文会继续讲到https://blog.csdn.net/weixin_42849915/article/details/81865476

二、几种mq的对比

对比的分别有:rabbitmq、kafka、rocketmq
activemq现在不太活跃,同时官网好像在研究下一代产品apollo,所以这里不做对比
- tps:kafka>rocketmq>rabbitmq
这个里面主要是rabbitmq保证消息的可靠性在吞吐量上做了取舍,这里我们要一分为二的看待,假如我们要做日志系这个时候吞吐量肯定使我们的首选kafka就是值得拥有,但是如果对于分布式事务或者对数据一致性有要求的那么rabbitmq就是首选了,
- 成熟程度:rabbitmq>kafka>rocketmq
- 消息延迟:rabbitmq 是微妙级、rocketmq和kafka是毫秒级,这意味着什么大家想想。
- web控制台的支持:只有rabbitmq有
具体的对比可以看看下面的图
855287-20171024155839519-979725979.jpg

4、使用docker简化安装:

不会过多的讲解docker的知识,只是为本篇服务,其次建议使用docker因为在本地安装需要安装erlang和rabbitmq如果哪一个安装不成功需要清理注册表什么的太淘神费力,同时容易把本地的环境给搞乱,直接使用官方给的镜像。我们是开发不是运维所以在学习的时候建议吧关注点放到rabbitmq本身;
ps:下文以及所有后续的博文,MQ特指RabbitMQ
- 1、安装docker

环境:centos6.8 x64 
1、因为系统自带的repo中不带docker需要安装epel
rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
2、安装docker
yum install -y docker-io
3、启动docker
service docker start
ps:网上前几篇教程,千篇一律的都是需要升级kernel,依据我的实践centos6.8可以不用升级kernel,按照上述步骤即可安装成功。
  • 2、拉去rabbitmq的镜像:/rabbitmq/”>https://hub.docker.com//rabbitmq/
    image.png
    下面的是镜像的tag,带有alpine的是用最小linux镜像构建的,体积最小可以达5M初学者不建议这么折腾,而且 Alpine Linux使用了muslmusl实现的DNS服务不会使用resolv.conf文件中的search和domain两个配置,通过DNS来进行服务发现时需要注意。,带有-management的是带有web控制台的,点开其他的Dockerfile可以看到form rabbitmq 所以是包含有rabbitmq的就不用在安装rabbitmq了(群里面初学者问的),
    image.png
本博文选用版本:rabbitmq:3.7.7-management
docker pull rabbitmq:3.7.7-management
出现下图就算是成功
docker images 查看镜像是否安装成功

image.png
- 3、启动rabbitmq

1、docker images 查看rabbitmq的镜像id
2、docker run -d -p 15672:15672 -p 5672:5672 900c4b7b944e 运行

image.png
- 4、打开控制台:http://ip:15672
用户名:guest
密码:guest
添加新用户,
image.png
设置virtual hosts
image.png
为用户授权,刚添加的用户是没有授权的,如果你在连接的时候包no access相关的错误,你就要来这里授权了
image.png
image.png
image.png
image.png
到此为止今天的博文就结束了。下一篇主要讲解一些概念,然后就是开始操作了。

猜你喜欢

转载自blog.csdn.net/weixin_42849915/article/details/81977968