• 01 : rabbitmq


    RabbitMQ

    简介:

      RabbitMQ  是一个在AMQP协议标准基础上开发的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器。

      ①、AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。

                 基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

      ②、开源。

      ③、使用 Erlang 语言编写,这是一种面向并发的编程语言,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。

     

    通俗的讲:

    RabbitMQ是一种消息队列 ,用于常见的进程通信。支持点对点,请求应答和发布订阅模式 并且提供多种语言的支持。常见的java,c#,php都支持。

    常被用在异步处理,应用解耦。流量消锋等复杂的业务场景中。和java的kafka一样都属于消息中间件。

     

    接下来我们介绍如何在 Linux 系统上安装 RabbitMQ。后续会在此基础上讲解集群的搭建。

     

    1. 修改host解析 (这里是为了后面做集群)

     [root@node1 ~]# vim /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.6.111  node1

     

    2 . 安装Erlang

     - Rabbitmq 需要erlang环境支持,就像java 程序需要jdk 一样。

     

    安装epel源:

    [root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    安装erlang socat

    [root@node1 ~]# yum -y install erlang socat

     

    3 . 安装rabbitmq

    [root@node1 ~]# mkdir /download&& cd /download

    [root@node1 download]# wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm

    [root@node1 download]# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

    [root@node1 download]# rpm  -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm

     

     卸载rabbitmq的命令: 了解就可以。

    [root@node1 ~]# rpm -qa rabbitmq-server

    rabbitmq-server-3.6.10-1.el7.noarch

    [root@node1 ~]# rpm -e rabbitmq-server-3.6.10-1.el7.noarch

    [root@node1 ~]# rm -rf  /var/lib/rabbitmq/     //清除rabbitmq配置文件

     

    4 . 启动 rabbitmq-server :

    [root@node1 download]# systemctl start rabbitmq-server

    加入开机自启:

    [root@node1 download]# systemctl enable rabbitmq-server

    查看端口:

     

    5 .  启动 rabbitmq  Web 管理界面

    [root@node1 ~]# rabbitmq-plugins enable rabbitmq_management  

    The following plugins have been enabled:

      amqp_client

      cowlib

      cowboy

      rabbitmq_web_dispatch

      rabbitmq_management_agent

      rabbitmq_management

     

    Applying plugin configuration to rabbit@node1... started 6 plugins.

    关闭命令:(了解即可)

    [root@node1 ~]#  rabbitmq-plugins disable rabbitmq_management

     

    6 . web访问rabbitmq

    上面这些做完了,rabbitmq 单机版的部署也完成了,我们可以浏览器访问

    http://192.168.6.111:15672 

    默认用户名和密码都是 guest。我们可以用 guest 登录

     

     

     7 . 安全起见,创建admin账号,删除guest账号:

    # 查看当前所有用户

    [root@node1 ~]# rabbitmqctl list_users

    Listing users

    guest   [administrator]

    [root@node1 ~]#

     

    # 添加新用户

    rabbitmqctl  add_user  username  password

    [root@node1 ~]# rabbitmqctl  add_user  admin admin

    Creating user "admin"

    [root@node1 ~]#

     

    # 设置用户tag,必须是administrator

    rabbitmqctl set_user_tags username administrator

    [root@node1 ~]# rabbitmqctl set_user_tags admin administrator   

    Setting tags for user "admin" to [administrator]

    [root@node1 ~]#

     

    # 赋予用户默认vhost的全部操作权限

    rabbitmqctl set_permissions -p / username ".*" ".*" ".*"

    [root@node1 ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"        

    Setting permissions for user "admin" in vhost "/"

    [root@node1 ~]# rabbitmqctl list_users                               

    Listing users

    admin   [administrator]

    guest   [administrator]

    [root@node1 ~]#

     

    # 查看用户的权限

    rabbitmqctl list_user_permissions  username

     

    8 .  rabbitmq 一些常用命令:

    1 启动监控管理器:rabbitmq-plugins enable rabbitmq_management

    2 关闭监控管理器:rabbitmq-plugins disable rabbitmq_management

    3 启动rabbitmq:rabbitmq-service start (默认是前台启动)

    rabbitmq-service -detached (后台启动)

    /建议使用systemctl start rabbitmq-server

    4 关闭rabbitmq:rabbitmq-service stop

    /建议使用systemctl stop rabbitmq-server

    5 查看所有的队列:rabbitmqctl list_queues

    6 清除所有的队列:rabbitmqctl reset

    7 清除指定队列:rabbitmqctl  purge_queue  name_queue(队列的名字)

    8 关闭应用:rabbitmqctl stop_app

    9 启动应用:rabbitmqctl start_app

     

     

  • 相关阅读:
    sparql学习sparql示例、dbpedia在线验证
    中国绿卡
    逾期率的水有多深,你知道吗?
    ICO和区块链区别
    What are the benefits to using anonymous functions instead of named functions for callbacks and parameters in JavaScript event code?
    Link static data in sql source control
    sql data compare
    viewbag
    多态的实际使用
    win10 sedlauncher.exe占用cpu处理
  • 原文地址:https://www.cnblogs.com/jim-xu/p/11592022.html
Copyright © 2020-2023  润新知