rabbitmq1-概述

作者: fkxuexi | 来源:发表于2018-08-23 11:25 被阅读3次

一、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的镜像: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
    到此为止今天的博文就结束了。下一篇主要讲解一些概念,然后就是开始操作了。

相关文章

  • rabbitmq1-概述

    一、mq的应用场景: 这里有一篇博文写的非常的好,所以这里直接给出这个博文的连接,MQ应用场景分析的十分好的一篇博...

  • 概述

    Web 基础 HTTP(HyperText Transfer Protocol,超文本传输协议)。 WWW(Wor...

  • 概述

    计算机网络由若干结点和链路组成。网络间可以通过路由器互连起来,构成的网络称为互连网(internet)。inter...

  • 概述

    资源 主页:http://opencv.org文档:http://docs.opencv.org/master/问...

  • 概述

    1、分类 创建型:Singleton,Builder,Prototype,Abstract Factory,Fac...

  • 概述

    2018年7月26日,是我开始记录我和我男朋友的爱情故事的第一天,也是我和他在一起的第99天。 其实我们刚在一...

  • 概述

    电路交换、分组交换 电路交换由于电话通信系统,分组交换用于网络数据传输。 电路交换两个用户独占一条物理链路;分组交...

  • 概述

    课程大纲: 1、图像的基本构成2、像素读写3、图像像素值统计信息4、像素值数学运算5、图像RGB彩色空间6、色彩空...

  • 概述

    作者认为这套需求过程可以适用于多种软件开发的情况。这套需求过程虽然不是唯一的解决方案,但学习这个过程可以获得很多帮...

  • 概述

    1、计算机网络向用户提供的最重要的功能有两个连通性和共享。2、网络由若干结点和连接这些结点的链路组成。结点可以是计...

网友评论

    本文标题:rabbitmq1-概述

    本文链接:https://www.haomeiwen.com/subject/jcdpiftx.html