zoukankan      html  css  js  c++  java
  • 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

     

     

  • 相关阅读:
    php 不依赖数据实现删除图片,核心代码
    php插入htm htm插入php的变量
    php 删除指定文件 glob,unlink
    glob函数 循环遍历子目录下的文件
    对函数及递归的通俗理解
    glob 遍历函数
    修改 ueditor1_4_3-utf8-php 它的图片上传地址
    thinkphp 自动跟新时间
    用Hadoop构建电影推荐系统
    Hive导入10G数据的测试
  • 原文地址:https://www.cnblogs.com/jim-xu/p/11592022.html
Copyright © 2011-2022 走看看