zoukankan      html  css  js  c++  java
  • RabbitMQ(一)安装篇

    1. RabbitMQ 的介绍
    ➢ 什么是 MQ?
    MQ 全称为 Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。
    ➢ 要解决什么样的问题?
    在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

    2. RabbitMQ 安装与使用
    安装 RabbitMQ
    1. 安装 Linux 以及必要的依赖包(Centos7)

    1.准备
    Linux系统的一些基本工具(安装简洁版Linux需要安装这些工具)
    yum install lrzsz wget vim unzip net-tools -y
    安装RabbitMQ所需要的依赖包
    yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto
    2.下载安装包
    
    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.2/rabbitmq-server-3.7.2-1.el7.noarch.rpm
    wget http://erlang.org/download/otp_src_19.3.tar.gz

    2. 下载 RabbitMQ 的安装包

    3.安装RabbitMQ
    解压erlang 源码包
    tar -zxvf otp_src_19.2.tar.gz(应该用这个tar -xvf otp_src_19.3.tar.tar 最终测应使用tar -vxf memcached-1.4.34.tar.gz)
    手动创建erlang 的安装目录
    mkdir /usr/local/erlang
    进入erlang的解压目录
    cd otp_src_19.3
    配置erlang的安装信息
     ./configure --prefix=/usr/local/erlang --without-javac
     编译并安装
    make && make install
    配置环境变量
    vim /etc/profile
    将这些配置填写到profile文件的最后
    ERL_HOME=/usr/local/erlang
    PATH=$ERL_HOME/bin:$PATH
    export ERL_HOME PATH
    启动环境变量配置文件
    source /etc/profile
    安装RabbitMQ
    rpm -ivh --nodeps rabbitmq-server-3.7.2-1.el7.noarch.rpm

    4.服务启动 rabbitmq-server start 这里可能会出现错误,错误原因是/var/lib/rabbitmq/.erlang.cookie文件不够 解决方案 chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie chmod 400 /var/lib/rabbitmq/.erlang.cookie

    启动之后界面:

    3. 安装,修改相关配置

    
    查看启动进程:
    ps -ef | grep rabbit
    5.使用浏览器登录RabbitMQ的管理平台:http://RabbitMQ服务器IP:15672
    RabbitMQ默认情况无法直接访问管理平台
    解决方案
    添加管理台的插件(用于Web浏览器管理RabbitMQ)
    rabbitmq-plugins enable rabbitmq_management
    
    使用默认用户名guest登录
    账号:guest
    密码:guest
    注意:这里guest只允许本机登录访问需要创建用户并授权远程访问命令如下
    
    rabbitmqctl add_user root root
    rabbitmqctl set_user_tags root administrator
    rabbitmqctl set_permissions -p / root '.*' '.*' '.*'

      打开浏览器,输入http://RabbitMQ服务器IP:15672

     

     如果你能正常启动,却打不开RabbitMQ的管理平台,请检查防火墙是否关闭,centos7关防火墙:

    centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可: 

    sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

    1-4 RabbitMQ 核心概念


    RabbitMQ 结构图

    AMQP 核心概念
    ➢Server:又称 Broker 接收客户端的连接,实现 AMQP 实体服务
    ➢ Connection:链接,用于应用程序链接到 Broker
    ➢ Channel:网络通道,Channel 是进行消息读写的一个通道每一个 Channel 都表示一个会话,有点类似我们之前的Session 概念
    ➢Message:消息,消息就是我们真正用来进行传输的数据,Message 由两部分组成,Properties 和 Body,Properties用于对消息就行修饰,比如优先级或是否持久等,Body则是消息数据的主体
    ➢ Virtual host:虚拟地址,用于进行逻辑隔离,一个 Server拥有过多个 Vitual hsot,一个 Virual hsot 会拥有多个Exchange(交换机)和 Queue(队列)
    ➢ Exchange:交换机,用于具体接收消息并将消息根据绑定路由 key 存入到指定的队列中
    ➢ Binding:绑定,就是将 Exchange 和 Queue 链接在一起,通过一个 Routing key 进行绑定
    ➢ Routing key:路由规则,消息发送到 Exchang 后会根据这个规则将消息存入对应的 Queue
    ➢ Queue:队列也称 Message Queue 简称 MQ,用于存放消息,并使用队列的结构先进先出、后进后出

    RabbiMQ 执行流程

  • 相关阅读:
    学习ESLint的规则配置,ESLint语法检测配置说明
    慎用Request.Params获取参数值
    [C#.NET 拾遗补漏]04:你必须知道的反射
    .NET Web应用中为什么要使用async/await异步编程
    Asp.Net Core Web Api 使用 Swagger 生成 api 说明文档
    网页打印尺寸设置
    Object 标签遮挡 Div 显示
    C# 之 批量插入数据到 SQLServer 中
    PrintDocument打印、预览、打印机设置和打印属性的方法
    JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
  • 原文地址:https://www.cnblogs.com/shenlailai/p/10805935.html
Copyright © 2011-2022 走看看