• (转)RabbitMQ入门(一)


    原文:https://juejin.cn/post/6844904021283569678

    MQ (Message Que)的作用

    1. 异步:提高业务上的响应速度。
    2. 解耦:将逻辑处理转移到队列里面来。当消费逻辑有修改时,只改Consumer,不用去改动Producer
    3. 自动补偿与重试:MQ在消费失败后会自动去重试发送消息。
    4. 保证消费顺序:队列本身是先进先出(FIFO)的特性,能够根据消息进入队列的顺序去进行消费
    5. 削峰填谷:这个和异步有些像,不同的是,这个主要是为了减少消费端在某一瞬间承受了巨大的并发量

    目前市面上的几种MQ(RabbitMQ,Kafka,RocketMQ等)

    可以参考下面的文章: 消息中间件部署及比较:rabbitMQ、activeMQ、zeroMQ、rocketMQ、Kafka、redis

    RabbitMQ的主要优点:

    1. erLang语言天生支持高并发
    2. MQ的环境搭建比较简便
    3. 有着较好的消息确认机制以及消息的持久化
    4. 高度可定制的路由策略
    5. 页面管理方便,社区活跃度较高

    RabbitMQ 实战

    CentOS7 下的RabbitMQ安装

    各种环境下安装和使用的官方文档

    1. 安装Erlang环境 wget https://github.com/rabbitmq/erlang-rpm/releases/download/v22.2/erlang-22.2-1.el7.x86_64.rpm #下载最新的Erlang包,当前版本是22.2,因为最新的RabbitMQ的版本为3.8.1,需要的最低版本的erLang为21.3 yum install erlang-22.2-1.el7.x86_64.rpm # 安装erLang 没有安装wget的话要先执行下面命令安装wget yum install wget

    2. 下载rabbitMQ的rpm包 (这里下载的是CentOS7的版本,如果为CentOS8,则连接中的el7要改成el8) wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.1/rabbitmq-server-3.8.1-1.el7.noarch.rpm

    3. 安装RabbitMQ yum install rabbitmq-server-3.8.1-1.el7.noarch.rpm

    4. 启动RabbitMQ chkconfig rabbitmq-server on #设置rabbitmq 服务为开机启动 /sbin/service rabbitmq-server start #启动 /sbin/service rabbitmq-server stop #关闭 或者 /bin/systemctl start rabbitmq-server.service #启动 /bin/systemctl start rabbitmq-server.service #关闭

    5. 启动UI插件,创建登录用户 rabbitmq-plugins enable rabbitmq_management #启动管理插件,下次无需再手动启动该插件 rabbitmqctl list_users #查看当前有多少用户

      [root@c5 ~]# rabbitmqctl list_users
      Listing users ...
      user    tags
      guest   [administrator]
      复制代码

      那我们需要手动添加一个用户,并且用户权限也要设置为administrator rabbitmqctl add_user admin 123456 #设置用户账号和密码 rabbitmqctl set_user_tags admin administrator #设置权限

      然后就可以使用admin账号进行登录了

      在这里插入图片描述

    附:端口号作用

    在这里插入图片描述 默认的端口15672:rabbitmq管理平台端口号 默认的端口5672: rabbitmq消息中间内部通讯的端口 默认的端口号25672 rabbitmq集群的端口号

    总结:

    1. 安装过程中,erLang版本的问题
    2. UI界面和端口的问题
    3. 登录用户及权限分配的问题

    疑难问题

    1. 浏览器访问15672端口(默认队列用的是5672端口,UI用的是15672端口),用默认的 guest/guest登录 然而此时我浏览器访问的时候却遇到这样一个情况:UI管理端口被拒绝了

      在这里插入图片描述 解决方法: 这是因为当前的UI插件还没有启动,执行下面命令即可。 rabbitmq-plugins enable rabbitmq_management #启动管理插件,下次无需再手动启动该插件
    2. 使用guest访问时发现该账户是有访问限制的。

      在这里插入图片描述 解决方法: 需要手动给他创建一个账户。 那我们需要手动添加一个用户,并且用户权限也要设置为administrator rabbitmqctl add_user admin 123456 #设置用户账号和密码 rabbitmqctl set_user_tags admin administrator #设置权限

    然后就可以使用admin账号进行登录了


    作者:来杯java
    链接:https://juejin.cn/post/6844904021283569678
    来源:稀土掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    前端mvc mvp mvvm 架构介绍(vue重构项目一)
    SPA页面缓存再优化二
    消除浏览器对input输入框的自动填充
    单页面系统的一些性能优化
    城市联动组件插件思想分析
    前端性能优化点总结
    ui-router 1.0以上的 $stateChangeStart
    (转) view视图的放大、缩小、旋转
    (转)代码中实现button
    objective-c 强弱引用、properties的学习
  • 原文地址:https://www.cnblogs.com/liujiacai/p/15488618.html
Copyright © 2020-2023  润新知