zoukankan      html  css  js  c++  java
  • rabbitmq

     
    ----------------------------------------------------------------------RabbitMQ------------------------------------------------------------------------------
    RabbitMQ是一个在AMQ基础上完整的,可复用的消息系统。-------------------遵循Mozilla Public License开源协议。
        概念:
            Exchange:----------------消息交换机,它指定消息按什么规则,路由到哪个队列。
          Queue:-----------------绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
          Routing Key:-----------路由关键字,exchange根据这个关键字进行消息投递。
          vhost:-------------------虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
          producer:--------------消息生产者,就是投递消息的程序。
          consumer:--------------消息消费者,就是接受消息的程序。
          channel:-----------------消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。
        MQ:全称为Message Queue--------------消息队列(MQ)是一种应用程序的通信方法。
            1:应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,无需专用链接来链接他们。
            2:消息传递指的是:程序之间通过在--消息--中发送数据进行通信,而不是直接调用彼此来通信,直接调用通常是用于--:诸如诸如远程过程调用的技术。
            3:排队指的是:应用程序通过队列来通信。
            4:队列的使用除去了接收和发送同时执行放入要求。
        安装:
            安装配置epel源:---------------$ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
            安装erlang:--------------------$ yum -y install erlang
            安装RabbitMQ:----------------$ yum -y install rabbitmq-server
        注意:service rabbitmq-server start/stop
        安装API:
                pip install pika//easy_install pika
                https://pypi.python.org/pypi/pika---------------------源码
                
                
                
                
                
                
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    
    ----------------------------------------------------------------RabbitMQ源码安装-------------------------------------------------------------------------------
        
        官网地址:rabbitmq
        http://www.rabbitmq.com/releases/rabbitmq-server/
        官网地址:erlang
        http://erlang.org/download/
        一、概念:
             Broker:简单来说就是消息队列服务器实体。
           Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
           Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
           Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
           Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
           vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
           producer:消息生产者,就是投递消息的程序。
           consumer:消息消费者,就是接受消息的程序。
           channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。
    
        二、安装RabbitMQ
             CentOS:
                  1.先安装erlang
                       # PS: 注意安装操作首先要切换到root工作环节中
                       # 在命令 如果$ 表示是普通用户,
                       yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 
                       yum -y install ncurses-devel 
                       yum install ncurses-devel 
                       wget http://erlang.org/download/otp_src_19.3.tar.gz
                       tar -xzvf otp_src_19.3.tar.gz
                       cd otp_src_19.3
                       ./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe 
                       make && make install
                       配置erlang环境
                       vi /etc/profile  #在最后添加下文
                       PATH=$PATH:/usr/local/erlang/bin
                       使环境变量生效
                       source /etc/profile
                       测试一下是否安装成功,在控制台输入命令erl
                       crt+z 退出
                  2.安装rabbitmq
            
                       wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.8/rabbitmq-server-3.5.8.tar.gz
                       tar -zxvf rabbitmq-server-3.5.8.tar.gz
                       cd abbitmq-server-3.5.8
                       make
                       make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install
                       配置erlang环境
                       vi /etc/profile  #在最后添加下文
                       PATH=$PATH:/usr/local/erlang/bin:/usr/local/rabbitmq/sbin
                       使环境变量生效
                       source /etc/profile
                  3. 启动:rabbitmq-server
                        rabbitmq-server start
                  4. 检查服务启动状态
                        [root@node01 ~]# netstat -lnpt|grep beam
                        tcp        0      0 0.0.0.0:5672                0.0.0.0:*                   LISTEN      19733/beam          
                        tcp        0      0 0.0.0.0:25672               0.0.0.0:*                   LISTEN      19733/beam          
                        tcp        0      0 0.0.0.0:15672               0.0.0.0:*                   LISTEN      19733/beam          
                        [root@node01 ~]# 
                        #  表示启动成功
        三、管理命令
               启动:rabbitmq-server start
               关闭:rabbitmqctl stop
               状态:rabbitmqctl status
    
        四、插件
            启动web管理插件
                rabbitmq-plugins enable rabbitmq_management
                如果报错
                错误解决:
                    Error: {cannot_write_enabled_plugins_file,"/etc/rabbitmq/enabled_plugins",            enoent}
                    mkdir /etc/rabbitmq
                    重新启动输入地址:localhost:15672,帐号默认为guest,密码guest,此帐号默认只能在本机访问。不建议打开远程访问。你可以创建一个帐户,并设置可以远程访问的角色进行访问。
                    如:
                    rabbitmqctl add_user supery 123                # 创建用户supery
                    
                    rabbitmqctl  set_user_tags  supery administrator        # 给创建的supery用户administrator角色
    
        五、用户管理
             默认的guest帐户相当于root帐户
             rabbitmqctl add_user username password 添加帐户
             rabbitmqctl change_password username newpassword 修改密码
             rabbitmqctl delete_user username 删除帐户
             rabbitmqctl list_users 列出所有帐户
             rabbitmqctl  set_user_tags  User  Tag 设置角色(administrator、monitoring、policymaker、management、其它)
             立即生效,不需重启
    
        六、创建配置文件
        [root@node01 ~]# ll /etc/rabbitmq/
        total 8
        -rw-r--r-- 1 root root 23 Mar  5 10:07 enabled_plugins
        -rw-r--r-- 1 root root 51 Mar  5 10:12 rabbitmq.config
        [root@node01 ~]# cat /etc/rabbitmq/rabbitmq.config 
        [{rabbit, [{loopback_users, ["root","supery"]}]}].
    
        操作步骤:
            vi /etc/rabbitmq/rabbitmq.config
            将[{rabbit, [{loopback_users, ["root","supery"]}]}]. 复制到文件中即可
            
            
            
            esc
            :x  保存并退出
            
        七、重启rabbitmq-server并测试访问
        rabbitmqctl stop
        rabbitmqctl start
        浏览器访问
            1. 查看自己的服务器ip地址
            ifconfig
            # inet addr:172.24.129.3        ===> 服务器ip地址
            2. 浏览器访问
            http://39.104.109.159:15672      ===> 输入用户密码登录即可
            
        登录成功!完成
    
    -----------------------redis---------------
    关系型数据库:
        mysql oracle
    非关系型数据库:
        NoSql  redis
    
    
    先有的memcache后有的redis-------------数据相对不安全
    数据备份
    
    下载:https://github.com/MicrosoftArchive/redis/releases
        
    redis-----------------有持久化
    端口号:6379
    优点:访问速度快
    缺点:存储在缓存不够安全。
    
    请求---------------数据库------------返回
    放入到缓存
    求求--------------缓存---------------数据库
    redis:
        key:value
        name:"yuan"
        name:[]
        name:{"":""}
        name:{}
        name:12
    memcache:
        集群
        key:value    --------value只能是字符串
    消息队列

     https://www.cnblogs.com/pyyu/p/10318053.html

    =======

    rabbitmq-server服务端

    1.下载centos源
    wget -O /etc/yum.repos.d/CentOS-Base.repo   http://mirrors.cloud.tencent.com/repo/centos7_base.repo
    2.下载epel源
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
    3.清空yum缓存并且生成新的yum缓存
    yum clean all
    yum makecache
    4.安装erlang
       $ yum -y install erlang
    5.安装RabbitMQ
       $ yum -y install rabbitmq-server
    6.启动(无用户名密码):
        systemctl start/stop/restart/status rabbitmq-server

    设置rabbitmq账号密码,以及角色权限设置

    # 设置新用户yugo 密码123
    sudo rabbitmqctl add_user yugo 123

    # 设置用户为administrator角色
    sudo rabbitmqctl set_user_tags yugo administrator

    # 设置权限,允许对所有的队列都有权限
    对何种资源具有配置、写、读的权限通过正则表达式来匹配,具体命令如下:
    set_permissions [-p <vhostpath>] <user> <conf> <write> <read>

    sudo rabbitmqctl set_permissions -p "/" yugo ".*" ".*" ".*"

    #重启服务生效设置
    service rabbitmq-server start/stop/restart
    rabbitmq相关命令

    // 新建用户
    rabbitmqctl add_user {用户名} {密码}

    // 设置权限
    rabbitmqctl set_user_tags {用户名} {权限}

    // 查看用户列表
    rabbitmqctl list_users

    // 为用户授权
    添加 Virtual Hosts :   
    rabbitmqctl add_vhost <vhost>   

    // 删除用户
    rabbitmqctl delete_user Username

    // 修改用户的密码
    rabbitmqctl change_password Username Newpassword
       
    // 删除 Virtual Hosts :   
    rabbitmqctl delete_vhost <vhost>   
       
    // 添加 Users :   
    rabbitmqctl add_user <username> <password>   
    rabbitmqctl set_user_tags <username> <tag> ...   
    rabbitmqctl set_permissions [-p <vhost>] <user> <conf> <write> <read>   
       
    // 删除 Users :   
    delete_user <username>  

    // 使用户user1具有vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
    rabbitmqctl  set_permissions -p vhost1 user1 '.*' '.*' '.*'

    // 查看权限
    rabbitmqctl list_user_permissions user1

    rabbitmqctl list_permissions -p vhost1

    // 清除权限
    rabbitmqctl clear_permissions [-p VHostPath] User

    //清空队列步骤
    rabbitmqctl reset
    需要提前关闭应用rabbitmqctl stop_app ,
    然后再清空队列,启动应用
    rabbitmqctl start_app
    此时查看队列rabbitmqctl list_queues

    查看所有的exchange:                              rabbitmqctl list_exchanges
    查看所有的queue:                                 rabbitmqctl list_queues
    查看所有的用户:                                   rabbitmqctl list_users
    查看所有的绑定(exchange和queue的绑定信息):         rabbitmqctl list_bindings
    查看消息确认信息:
    rabbitmqctl list_queues name messages_ready messages_unacknowledged
    查看RabbitMQ状态,包括版本号等信息:rabbitmqctl status

    #开启web界面rabbitmq
    rabbitmq-plugins enable rabbitmq_management

    #访问web界面
    http://server-name:15672/

    ===============================================

    rabbitmq 源码安装

    官网地址:rabbitmq
    http://www.rabbitmq.com/releases/rabbitmq-server/
    官网地址:erlang
    http://erlang.org/download/

    一、概念:
         Broker:简单来说就是消息队列服务器实体。
       Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
       Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
       Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
       Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
       vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
       producer:消息生产者,就是投递消息的程序。
       consumer:消息消费者,就是接受消息的程序。
       channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

    二、安装RabbitMQ
         CentOS:
              1.先安装erlang
          # PS: 注意安装操作首先要切换到root工作环节中
          # 在命令 如果$ 表示是普通用户,
                   yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
                   yum -y install ncurses-devel
                   yum install ncurses-devel
                   wget http://erlang.org/download/otp_src_19.3.tar.gz
                   tar -xzvf otp_src_19.3.tar.gz
                   cd otp_src_19.3
                   ./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe
                   make && make install
                   配置erlang环境
                   vi /etc/profile  #在最后添加下文
                   PATH=$PATH:/usr/local/erlang/bin
                   使环境变量生效
                   source /etc/profile
                   测试一下是否安装成功,在控制台输入命令erl
          crt+z 退出
              2.安装rabbitmq
     
                   wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.8/rabbitmq-server-3.5.8.tar.gz
                   tar -zxvf rabbitmq-server-3.5.8.tar.gz
                   cd abbitmq-server-3.5.8
                   make
                   make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install
          配置erlang环境
                   vi /etc/profile  #在最后添加下文
                   PATH=$PATH:/usr/local/erlang/bin:/usr/local/rabbitmq/sbin
          使环境变量生效
                   source /etc/profile
        3. 启动:rabbitmq-server
        rabbitmq-server start
        4. 检查服务启动状态
        [root@node01 ~]# netstat -lnpt|grep beam
        tcp        0      0 0.0.0.0:5672                0.0.0.0:*                   LISTEN      19733/beam         
        tcp        0      0 0.0.0.0:25672               0.0.0.0:*                   LISTEN      19733/beam         
        tcp        0      0 0.0.0.0:15672               0.0.0.0:*                   LISTEN      19733/beam         
        [root@node01 ~]#
        #  表示启动成功
           
    三、管理命令
           启动:rabbitmq-server start
           关闭:rabbitmqctl stop
           状态:rabbitmqctl status

    四、插件
        启动web管理插件
            rabbitmq-plugins enable rabbitmq_management
            如果报错
      错误解决:
                Error: {cannot_write_enabled_plugins_file,"/etc/rabbitmq/enabled_plugins",            enoent}
                mkdir /etc/rabbitmq
                重新启动输入地址:localhost:15672,帐号默认为guest,密码guest,此帐号默认只能在本机访问。不建议打开远程访问。你可以创建一个帐户,并设置可以远程访问的角色进行访问。
                如:
       rabbitmqctl add_user supery 123    # 创建用户supery
               
       rabbitmqctl  set_user_tags  supery administrator  # 给创建的supery用户administrator角色

    五、用户管理
         默认的guest帐户相当于root帐户
         rabbitmqctl add_user username password 添加帐户
         rabbitmqctl change_password username newpassword 修改密码
         rabbitmqctl delete_user username 删除
         帐户
         rabbitmqctl list_users 列出所有帐户
         rabbitmqctl  set_user_tags  User  Tag 设置角色(administrator、monitoring、policymaker、management、其它)
         立即生效,不需重启

    六、创建配置文件
    [root@node01 ~]# ll /etc/rabbitmq/
    total 8
    -rw-r--r-- 1 root root 23 Mar  5 10:07 enabled_plugins
    -rw-r--r-- 1 root root 51 Mar  5 10:12 rabbitmq.config
    [root@node01 ~]# cat /etc/rabbitmq/rabbitmq.config
    [{rabbit, [{loopback_users, ["root","supery"]}]}].

    操作步骤:
     vi /etc/rabbitmq/rabbitmq.config
     将[{rabbit, [{loopback_users, ["root","supery"]}]}]. 复制到文件中即可
     
     
     
     esc
     :x  保存并退出
     
    七、重启rabbitmq-server并测试访问
    rabbitmqctl stop
    rabbitmqctl start
    浏览器访问
     1. 查看自己的服务器ip地址
     ifconfig
     # inet addr:172.24.129.3  ===> 服务器ip地址
     2. 浏览器访问
     http://39.104.109.159:15672   ===> 输入用户密码登录即可
     
    登录成功!完成
      
     

  • 相关阅读:
    将备份中的数据插入到数据库中的具体步骤
    C#三层架构(获取中文拼音和给密码加密)
    C# 三层架构项目体会(1)
    leetcode——Best Time to Buy and Sell Stock
    leetcode——Binary Tree Maximum Path Sum
    leetcode——Valid Palindrome
    leetcode——Word Ladder II
    学习制作SLG游戏(一)
    leetcode——Maximum Gap
    cocos2d学习资源收集
  • 原文地址:https://www.cnblogs.com/dingyunfeng/p/12900149.html
Copyright © 2011-2022 走看看