• 【动力节点】最新rabbitmq笔记-1-6章What is RabbitMQ?


    1. What is RabbitMQ

    1.1简介

    动力节点最新RabbitMQ视频
    RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件;
    RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色;
    AMQP协议(http://www.amqp.org),即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计;
    我们学的协议有哪些:(http、ftp)

    1.2 相关网址

    | 官网:https://www.rabbitmq.com

    1.3 消息中间件(MQ=Message Queue)

    简单来说,消息中间件就是指保存数据的一个容器(服务器),可以用于两个系统之间的数据传递。
    消息中间件一般有三个主要角色:生产者、消费者、消息代理(消息队列、消息服务器);


    rabbitmq-java-client rabbitmq-server rabbitmq-java-client
    生产者发送消息到消息服务器,然后消费者从消息代理(消息队列)中获取数据并进行处理;

    1.4 常用的消息中间件

    目前比较主流的几个消息中间件:

    |

    • RabbitMQ
    • kafka(大数据领域)
    • RocketMQ(阿里巴巴开源)献给Apache组织
    • pulsar(最近一两年流行起来的)
      |
      | — |

    2. MQ(Message Queue)的应用场景

    2.1 异步处理

    下订单:下订单–》加积分–》发红包–》发手机短信

    下订单—向MQ 发消息–》积分系统,红包系统,手机短信系统接收消息

    同步是阻塞的(会造成等待),异步是非阻塞的(不会等待);
    大流量高并发请求、批量数据传递,就可以采用异步处理,提升系统吞吐量;

    2.2系统解耦

    多个系统之间,不需要直接交互,通过消息进行业务流转;

    2.3 流量削峰

    高负载请求/任务的缓冲处理;

    2.4日志处理

    主要是用kafka这个服务器来做;
    日志处理是指将消息队列用于在日志处理中,比如Kafka解决大量日志传输的问题;
    loger.info(…)
    ELK 日志处理解决方案:
    loger.error(…) -->logstash收集消息–> 发送消息的kafka --> elastic search (es) -->Kibana ELK日志处理平台

    3. RabbitMQ运行环境搭建

    RabbitMQ是使用Erlang语言开发的,所以要先下载安装Erlang

    3.1 Erlang及RabbitMQ安装版本的选择

    下载时一定要注意版本兼容性
    版本兼容说明地址:https://www.rabbitmq.com/which-erlang.html
    我们选择的版本

    3.2下载Erlang

    Erlang官网

    Linux下载:

    说明:wget 是linux命令,可以用来下载软件

    3.3 安装Erlang

    3.3.1 安装erlang前先安装Linux依赖库

    yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

    说明:yum -y install 安装linux的一些依赖库的命令 ,-y表示自动确认;

    3.3.2 解压erlang压缩包文件

    tar -zxvf otp_src_25.1.1.tar.gz

    3.3.3 配置

    切换到解压的目录下,运行相应命令

    | cd otp_src_25.1.1

    ./configure

    3.3.4 编译

    make

    3.3.5安装

    make install

    安装好了erlang后可以将解压的文件夹删除:

    rm -rf otp_src_25.1.1

    3.3.6 验证erlang是否安装成功

    在命令行输入: erl 如果进入了编程命令行则表示安装成功,然后按ctrl + z 退出编程命令行;

    3.4 下载RabbitMQ

    从RabbitMQ官网https://www.rabbitmq.com找到下载链接
    Linux:下载3.10.11

    | wget

    https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.11/rabbitmq-server-generic-unix-3.10.11.tar.xz

    generic 是通用的意思,这个版本也就是通用的unix版本

    3.5 安装RabbitMQ

    解压RabbitMQ的压缩包,即安装完成,无需再编译

    tar -xvf rabbitmq-server-generic-unix-3.10.11.tar.xz -C /usr/local/

    说明 -C 选项是指定解压目录,如果不指定会解压到当前目录
    此时rabbitmq就安装好了;

    4. 启动及停止RabbitMQ

    4.1启动RabbitMQ

    切换到安装目录的sbin目录下:

    | #启动

    ./rabbitmq-server -detached

    说明:
    -detached 将表示在后台启动运行rabbitmq;不加该参数表示前台启动;
    rabbitmq的运行日志存放在安装目录的var目录下;
    现在的目录是:/usr/local/rabbitmq_server-3.10.11/var/log/rabbitmq

    4.2 查看RabbitMQ的状态

    切换到sbin目录下执行:

    ./rabbitmqctl -n rabbit status

    说明:-n rabbit 是指定节点名称为rabbit,目前只有一个节点,节点名默认为rabbit
    此处-n rabbit 也可以省略

    4.3 停止RabbitMQ

    切换到sbin目录下执行:

    ./rabbitmqctl shutdown

    4.4 配置path环境变量

    vi /etc/profile

    | RABBIT_HOME=/usr/local/rabbitmq_server-3.10.11
    PATH= P A T H : PATH: PATH:RABBIT_HOME/sbin

    export RABBIT_HOME PATH

    刷新环境变量,命令如下

    source /etc/profile

    5. RabbitMQ管理命令

    ./rabbitmqctl 是一个管理命令,可以管理rabbitmq的很多操作。
    ./rabbitmqctl help可以查看一下有哪些操作
    查看具体子命令 可以使用 ./rabbitmqctl help 子命令名称

    5.1 用户管理

    用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
    这些操作都是通过rabbitmqctl管理命令来实现完成。
    查看帮助:

    rabbitmqctl add_user --help

    相应的命令
    (1) 查看当前用户列表

    rabbitmqctl list_users

    (2) 新增一个用户

    | 语法:rabbitmqctl add_user Username Password

    示例: rabbitmqctl add_user admin 123456

    5.2 设置用户角色

    | rabbitmqctl set_user_tags User Tag

    示例:rabbitmqctl set_user_tags admin administrator

    说明:此处设置用户的角色为管理员角色

    5.3 设置用户权限

    rabbitmqctl set_permissions -p / admin “." ".” “.*”

    说明:此操作是设置admin用户拥有操作虚拟主机/下的所有权限
    查看用户权限

    ./rabbitmqctl list_permissions

    6. web管理后台

    Rabbitmq有一个web管理后台,这个管理后台是以插件的方式提供的,启动后台web管理功能,切换到sbin目录下执行:

    6.1 启用管理后台

    | # 查看rabbitmq 的插件列表
    ./rabbitmq-plugins list
    #启用
    ./rabbitmq-plugins enable rabbitmq_management
    #禁用

    ./rabbitmq-plugins disable rabbitmq_management

    6.2防火墙操作

    | systemctl status firewalld --检查防火墙状态
    systemctl stop firewalld --关闭防火墙,Linux重启之后会失效

    systemctl disable firewalld --防火墙置为不可用,Linux重启后,防火墙服务不自动启动,依然是不可用

    6.3 访问

    | http://192.168.131.131:15672
    用户名/密码为我们上面创建的admin/123456

    注意上面改成你的虚拟主机的ip地址

    备注:如果使用默认用户guest、密码guest登录,会提示User can only log in via localhost
    说明guest用户只能从localhost本机登录,所以不要使用该用户。

    6.4 通过web页面新建虚拟主机


    建完后如下

  • 相关阅读:
    虚拟机搭建负载均衡,mysql主从复制和读写分离(一、搭建虚拟机)
    类成员的访问控制属性
    at定时任务
    实现在Qt窗口中嵌套SDL
    打开量化投资的黑箱
    node.js的错误处理
    js识别爬虫,js识别手机,识别文章标题后js跳转
    【FreeSwitch开发实践】UniMRCP编译与安装
    视频转高清gif动态图片(Python代码实现)
    PySide6 Tutorials (一)表格小部件魔改
  • 原文地址:https://blog.csdn.net/Java___interview/article/details/130425806