zoukankan      html  css  js  c++  java
  • ubuntu安装Rabbitmq

    安装

    有两种办法,一是直接从官网下载最新的deb文件,但是在你dpkg -i 时,因为缺少erlang的依赖,只能再通过apt-get install -f 安装erlang,最终也能成功,但是会有一些不舒服的错误提示。

    建议使用另一个官网上提供的安装办法(有洁僻的使用)。

    首先,修改 /etc/apt/sources.list文件,最后一行加上:

    deb http://www.rabbitmq.com/debian/ testing main
    

    然后,命令行先后执行以下两句加rabbitmq的公钥为可信:

    wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
    sudo apt-key add rabbitmq-signing-key-public.asc
    

     现在,可以先update,然后安装了

    apt-get update
    sudo apt-get install rabbitmq-server
    

     用此步骤安装,屏幕上会一路很爽地刷到最后,你见到如下信息,说明OK了。。。

    Setting up rabbitmq-server (3.6.0-1) ...
    Adding group `rabbitmq' (GID 114) ...
    Done.
    Adding system user `rabbitmq' (UID 106) ...
    Adding new user `rabbitmq' (UID 106) with group `rabbitmq' ...
    Not creating home directory `/var/lib/rabbitmq'.
     * Starting message broker rabbitmq-server                           [ OK ]
    Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
    Processing triggers for ureadahead (0.100.0-16) ...
    

     然后,我们可以 ps -ef|grep rabbit 看看情况:

    rabbitmq  2102     1  0 10:44 ?        00:00:00 /usr/lib/erlang/erts-5.10.4/bin/epmd -daemon
    rabbitmq  2124     1  0 10:44 ?        00:00:00 /bin/sh -e /usr/lib/rabbitmq/bin/rabbitmq-server
    rabbitmq  2386  2124  2 10:44 ?        00:00:00 /usr/lib/erlang/erts-5.10.4/bin/beam -W w -A 64 -P 1048576 -K true -B
    i -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.0/ebin -noshell
    -noinput -s rabbit boot -sname rabbit@two -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl
    errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@two.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@two-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.0/plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@two-plugins-expand"
    -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@two"
    -kernel
    inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672
    rabbitmq  2469  2386  0 10:44 ?        00:00:00 inet_gethost 4
    rabbitmq  2470  2469  0 10:44 ?        00:00:00 inet_gethost 4
    

     看上去没什么问题。我们进入安装目录看看状态。

    cd /usr/lib/rabbitmq/bin/
    yancheng@two:/usr/lib/rabbitmq/bin$ sudo ./rabbitmqctl status
    Status of node rabbit@two ...
    Error: unable to connect to node rabbit@two: nodedown
    
    DIAGNOSTICS
    ===========
    
    attempted to contact: [rabbit@two]
    
    rabbit@two:
      * connected to epmd (port 4369) on two
      * epmd reports node 'rabbit' running on port 25672
      * TCP connection succeeded but Erlang distribution failed
      * suggestion: hostname mismatch?
      * suggestion: is the cookie set correctly?
      * suggestion: is the Erlang distribution using TLS?
    
    current node details:
    - node name: 'rabbitmq-cli-2507@two'
    - home dir: /home/yancheng
    - cookie hash: LzLUNZfZaIrZKLsr1kLeAg==
    

    必然会报错,其实用两种方法安装都会有这个问题。在这个bin目录下有一个rabbitmq-server,你使用它停止服务也停不了,感觉上好象就没安装成功。。。所以,我们需要做一些配置的工作。

    配置

    现在我们来修改一些东西,首先,还是官网上提供的命令,停止服务:

    invoke-rc.d rabbitmq-server stop
    

    这回真的能停止掉,所以从此命令来看,应该还有一个rabbitmq-server脚本才对,的确,我们可以在 /etc/init.d/ 目录下找到真正起作用的(开机自启动的)rabbitmq-server脚本。感兴趣的可以自己打开此文件看看内容。

    我要说的是,在安装成功的提示中,说新建了一个rabbitmq用户,的确,自启动的服务是用这个用户启动的,所以当前你登录的帐号是没办法查询状态,也就是上面你看不到状态的原因。我们可以这样:

    invoke-rc.d rabbitmq-server status
    

    这也是可以的(前提你要先启动服务,invoke-rc.d rabbitmq-server start)

    于是我们做的配置就是让当前用户,比如我一直使用的是yancheng账户,能够执行某些脚本。我需要手工修改一下/usr/lib/rabbitmq/bin目录下的两个脚本,让它可用。

    rabbitmqctl 用于添加用户和查看信息等,以及rabbitmq-plugins,用于添加插件。修改方法基本一样,就是添加一个HOME,指到 /var/lib/rabbitmq ,也就是要与启动的rabbitmq服务中使用的HOME一致,因为当前登录的HOME是/home/yancheng,大概如下:

    RABBITMQ_USE_LONGNAME=${RABBITMQ_USE_LONGNAME} 
    HOME=/var/lib/rabbitmq 
    exec ${ERL_DIR}erl 
        -pa "${RABBITMQ_HOME}/ebin" 
        ...
    

    现在,我们可以查看状态 sudo ./rabbitmqctl status 了。应该是成功了。

    添加用户并加入管理员:

    sudo ./rabbitmqctl add_user admin admin123 
    sudo ./rabbitmqctl set_user_tags admin administrator
    

     启用WEB管理台:

    sudo ./rabbitmq-plugins enable rabbitmq_management 
    

     一切都跟以前一样了。

    默认端口:

    • 4369 (epmd), 25672 (Erlang distribution)
    • 5672, 5671 (AMQP 0-9-1 without and with TLS)
    • 15672 (if management plugin is enabled)
    • 61613, 61614 (if STOMP is enabled)
    • 1883, 8883 (if MQTT is enabled)

     

       控制台打开方式:

    http://localhost(ip):15672

    python3安装关于rabbitmq的模块:

    pip3 install pika

    pip3 install Celery

    pip3 install Haigha

  • 相关阅读:
    增加正则项Regularization to Prevent Overfitting
    feature_column、fc.input_layer以及各种类型的column如何转化
    input_fn如何读取数据
    matplotlib.pyplot如何绘制多张子图
    机器学习之杂乱笔记
    Adobe Flash Player
    LSTM/GRU-讲得非常细致
    anaconda python36 tensorflow virtualenv
    畅通工程-HZNU寒假集训
    食物链-HZUN寒假集训
  • 原文地址:https://www.cnblogs.com/guqing/p/6573954.html
Copyright © 2011-2022 走看看