• rabbitMQ 各系统安装


    RabbitMQ的安装与客户端的简单实用

    本文主要内容是RabbitMQ的安装步骤【Windows系统与linux上的安装】及客户端的简单使用。

    1、下载

    下载地址:http://www.rabbitmq.com/download.html

    2、Windows上安装

    2.1 安装安装Erlang

    下载erlang:http://www.erlang.org/download/otp_win64_17.3.exe

    安装:

     

    erlang安装完成。

    2.2 安装安装RabbitMQ

    RabbitMQ安装完成。

    启动、停止、重新安装等。

    2.3启用管理工具

    第一步:点击打开RabbitMQ的命令窗口。如图:

    第二步:输入命令rabbitmq-plugins enable rabbitmq_management

    这个命令的意思是安装RabbitMQ的插件。

    第三步:测试是否安装成功。

    方法:访问地址:http://127.0.0.1:15672/

    默认账号:guest/guest

    3、Linux上安装

    3.1安装erlang

    添加yum支持

    cd /usr/local/src/

    mkdir rabbitmq
    cd rabbitmq
    rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
    sudo yum install erlang

    3.2安装RabbitMQ

    上传rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
    安装:
    rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
     
    几个常用命令:
    service rabbitmq-server start
    service rabbitmq-server stop
    service rabbitmq-server restart
     
    chkconfig rabbitmq-server on  //设置开机自启
     
    设置配置文件:
    cd /etc/rabbitmq
    cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/
    mv rabbitmq.config.example rabbitmq.config
    设置用户远程访问:
    vi /etc/rabbitmq/rabbitmq.config
    去掉后面的逗号
    开启web界面管理工具
    rabbitmq-plugins enable rabbitmq_management
    service rabbitmq-server restart
     
    防火墙开放15672端口
    /sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
    /etc/rc.d/init.d/iptables save
     

    4、Deeping和MacOS上安装

    4.1安装erlang

    添加yum支持

    cd /usr/local/src/

    mkdir rabbitmq
    Update the package index:
    # sudo apt-get update
    Install erlang deb package:
    # sudo apt-get install erlang

    4.2安装RabbitMQ

    上传rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
    安装:
    Update the package index:
    # sudo apt-get update
    Install rabbitmq-server deb package:
    # sudo apt-get install rabbitmq-serve
     
    几个常用命令:
    service rabbitmq-server start
    service rabbitmq-server stop
    service rabbitmq-server restart
     
    去掉后面的逗号
    开启web界面管理工具
    rabbitmq-plugins enable rabbitmq_management
    service rabbitmq-server restart
     
    防火墙开放15672端口
    /sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
    /etc/rc.d/init.d/iptables save

    5、客户端的简单介绍

    1、界面的介绍

    注意设置虚拟主机与添加用户这块。

    关于虚拟主机,Virtual Host,其实是一个虚拟概念,类似于权限控制组,一个Virtual Host里面可以有若干个Exchange和Queue,但是权限控制的最小粒度是Virtual Host

    用户角色有下面几种:
    1. 超级管理员(administrator)
    可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
    1. 监控者(monitoring)
    可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
    1. 策略制定者(policymaker)
    可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)
    1. 普通管理者(management)
    仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
    1. 其他
    无法登陆管理控制台,通常就是普通的生产者和消费者。
     
     
    php连接执行代码
    <?php
    /*************************************
    * PHP amqp(RabbitMQ) Demo - consumer
    * Author: Linvo
    * Date: 2012/7/30
    *************************************/
    //配置信息
    $conn_args = array(
        'host' => '192.168.1.93',
        'port' => '5672',
        'login' => 'guest',
        'password' => 'guest',
        'vhost'=>'/'
    );
    $e_name = 'e_linvo'; //交换机名
    $q_name = 'q_linvo'; //队列名
    $k_route = 'key_1'; //路由key
    
    //创建连接和channel
    $conn = new AMQPConnection($conn_args);
    if (!$conn->connect()) {
        die("Cannot connect to the broker!
    ");
    }
    $channel = new AMQPChannel($conn);
    
    //创建交换机
    $ex = new AMQPExchange($channel);
    $ex->setName($e_name);
    $ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型
    $ex->setFlags(AMQP_DURABLE); //持久化
    echo "Exchange Status:".$ex->declare()."
    ";
    
    //创建队列
    $q = new AMQPQueue($channel);
    $q->setName($q_name);
    $q->setFlags(AMQP_DURABLE); //持久化
    echo "Message Total:".$q->declare()."
    ";
    
    //绑定交换机与队列,并指定路由键
    echo 'Queue Bind: '.$q->bind($e_name, $k_route)."
    ";
    
    //阻塞模式接收消息
    echo "Message:
    ";
    while(True){
        $q->consume('processMessage');
        //$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答
    }
    $conn->disconnect();
    
    /**
    * 消费回调函数
    * 处理消息
    */
    function processMessage($envelope, $queue) {
        $msg = $envelope->getBody();
        echo $msg."
    "; //处理消息
        $queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答
    }
     
    转载至 https://www.cnblogs.com/yangh965/p/5862347.html
  • 相关阅读:
    腾讯课堂目标2017初中数学联赛集训队作业题解答-8
    2016猿辅导初中数学竞赛训练营作业题解答-10
    2016猿辅导初中数学竞赛训练营作业题解答-9
    2016猿辅导初中数学竞赛训练营作业题解答-8
    分类讨论的经典之作: 一道烧脑的数学竞赛压轴题解法赏析
    腾讯课堂目标2017初中数学联赛集训队作业题解答-7
    2016猿辅导初中数学竞赛训练营作业题解答-7
    腾讯课堂目标2017初中数学联赛集训队作业题解答-6
    正则:千分位
    为什么vue中的data用return返回呢?
  • 原文地址:https://www.cnblogs.com/akidongzi/p/8359545.html
Copyright © 2020-2023  润新知