美文网首页
系统的RabbiMQ学习(1)了解MQ

系统的RabbiMQ学习(1)了解MQ

作者: employeeeee | 来源:发表于2020-05-06 17:40 被阅读0次

    RabbiMQ是什么

    RabbiMQ是一个开源的消息代理和队列服务器,用来通过普通协议在不同的应用之间共享数据,RabbiMQ使用Erlang语言编写(所以在安装的时候需要先安装对应的环境),RabbitMQ是基于AMQP协议的。简单的来说,就是可以通过一个API来发布消息比如使用javaAPI发布一个消息,消费者可以是Python语言监听。

    • 与SpringAMOP完美整合 API丰富
    • 集群模式丰富 HA模式 镜像队列
    • 可靠性 可用性

    RabbitMQ高性能原因

    • Erlang语言最初在于交换机领域的架构模式 使RabbitMQ在Broker 之间进行数据交互的新能是非常优秀的。
    • Erlang有和原生Socket一样的延迟

    AMQP高级消息队列协议

    具有现代特性的二进制协议。是一个提供统一消息服务的应用层标砖高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件
    生产者 -server-Virtual host-Exchange-Message Queue
    消费者 监听 Message Queue

    Server: 又称Broker 接受客户端的连接
    Connection: 连接 应用程序与Broker的网络连接
    Channel:网络通道 所有的操作 都是在Channel中进行 信息的消息读写 清空队列消息 什么的 就类似于数据库的session
    Message: 消息 由Properties 和 Body组成。 Properties对消息修饰 优先级等
    Virtual host: 虚拟地址 一个Virtual host可以有多个Exchange和Queue 在后续实际操作中 配置文件中会涉及到 可以理解为数据库中不同的user
    Exchange:交换机,接受消息,根据路由key转发信息到绑定的队列
    Binding:Exchange和Queue之间的虚拟连接,binding中可以包含routingkey
    Routing key: 一个路由规则,虚拟机可以用它来确定䄦路由一个特定的消息
    Queue:消息队列 报错小写并转发给消费者

    RabbitMQ的安装与使用

    官网地址: http://www.rabbitmq.com/ 网站上会有一个ERlang version可以看到erlang和mq版本的对应关系
    下载的时候需要环境和MQ版本对应 不然可能会出错。
    自己安装的时候参考了很多的网上安装方式 最后成功安装的方式如下:

    // erlang环境安装
    yum install erlang
    //我自己的安装目录 这个看个人喜好
    cd /usr/local/src
    //创建了一个文件夹
    mkdir rabbitmq
    //下载
    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
    //安装
    yum install rabbitmq-server-3.7.4-1.el6.noarch.rpm
    //启动
    systemctl start rabbitmq-server
    //启动web端权限 还有很多插件 这里启动的就是可以web端操作rabbitmq
    rabbitmq-plugins enable rabbitmq_management
    //可以查看当前状态
    rabbitmqctl status
    //创建用户
    rabbitmqctl add_user admin admin(可以修改为自己设置的密码)
    //分配管理权限
    rabbitmqctl set_user_tags admin administrator
    // 也是分配权限 后边springboot使用时候有用 
    rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”
    

    然后访问你linux系统的ip://15672
    使用你自己创建的用户名 密码登陆

    image.png

    命令行与管控台

    rabbitmqctl stop_app: 关闭应用
    rabbitmqctl start_app: 启动应用
    rabbitmqctl list_users: 列出所有用户
    rabbitmqctl delete_user username:删除用户
    rabbitmqctl clear_permissions -p vhostpath username 清除用户权限
    rabbitmqctl list_user_permissions username: 列出用户权限
    rabbitmqctl change_password username newpassword 修改密码
    rabbitmqctl add_vhost vhostpath 创建虚拟主机
    rabbitmqctl list_vhosts: 列出所有虚拟主机
    rabbbitmqctl list_permissions -p vhostpath 列出虚拟机主机上所有权限
    rabbitmqctl list_queues:查看所有队列信息
    rabbitmqctl -p vhostpath purge_queue blue 清除某主机上的duilie
    rabbbitmqctl reset: 移除所有数据 在停止后使用
    rabbitmqctl join_cluster<clusternode>[--ram] 组成集群模式
    rabbitmqctl cluster_status 查看集群状态
    rabbitmqctl change_cluster_node_type disc|ram 修改存储形式
    rabbitmqctl forget_cluster_node[--offline] 可以把不好用的节点删除 失败转移
    

    web管控台就没啥说的了 基本上有手就能用 看不明白的地方 翻译一下 还不行的话 关机睡会
    下一节记录 在springboot项目中 使用mq

    相关文章

      网友评论

          本文标题:系统的RabbiMQ学习(1)了解MQ

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