• 在 CentOS 6.4上安装rabbitmq


    在本节中,我们将来学习如何在CentOS 6.4上安装erlang,具体的Erlang版本是R15B03-1。
    在安装之前,需要先要安装一些其他的软件,否则在安装中间会出现一些由于没有其依赖的软件模块而失败。
    1、首先要先安装GCC GCC-C++ Openssl等以来模块:

    Java代码 [这里是图片001]

    1. yum-yinstallmakegccgcc-c++kernel-develm4ncurses-developenssl-devel

    2、再安装ncurses模块

    Java代码 [这里是图片002]

    1. yum-yinstallncurses-devel
    2. yuminstallncurses-devel

    3、下载Erang源代码文件otp_src_R15B03-1.tar.gz文件,并对其付权限和解压文件:

    Java代码 [这里是图片003]

    1. chmod+xotp_src_R15B03-1.tar.gz
    2. tar-xzvfotp_src_R15B03-1.tar.gz
    3. mvotp_src_R15B03-1erlang_R15B#重命名解压厚的文件

    4、下面是安装erlang的重头戏,依次执行以下操作:

    Java代码 [这里是图片004]

    1. cderlang_R15B/

    2. ./configure–prefix=/usr/local/erlang–with-ssl–enable-threads–enable-smp-support–enable-kernel-poll–enable-hipe–without-javac//不用java编译,故去掉java避免错误

    3. make&&makeinstall//编译后安装

    5、配置erlang环境:

    Java代码 [这里是图片005]

    1. vi/etc/profile
    2. ERL_HOME=/usr/local/erlang
    3. exportPATH= P A T H : PATH: PATH:ERL_HOME/bin

    好了,现在erlang的已经配置好了,现在我们来测试一下是否安装成功,在控制台输入命令erl,如果在erlang shell里出现下图所示就说明安装成功了:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Hod7o8r-1661633633581)(http://dl2.iteye.com/upload/attachment/0085/7813/b7cb3f04-2ce7-3e21-8c90-81fc90e0be4f.png “点击查看原始大小图片”)]

    2**、xmlto**

    直接yum:

    yum install xmlto
    
    • 1

    3、安装rabbitMQ

    wget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.0/rabbitmq-server-3.3.0-1.noarch.rpm

    yuminstallrabbitmq-server-3.3.0-1.noarch.rpm

    /etc/init.d/rabbitmq-server start

    管理界面

    rabbitmq-pluginsenablerabbitmq_management

    /etc/init.d/rabbitmq-server restart

    增加用户

    rabbitmqctl add_user zwh 111111

    设置用户角色

    rabbitmqctlset_user_tags zwh administrator

    打开 15672、5672端口。

    登录: http://ip:15672

    设置

    vi /etc/rabbitmq/rabbitmq-env.conf

    NODENAME=rabbit@prp2p-qd10
    NODE_IP_ADDRESS=10.143.37.29
    NODE_PORT=5672

    5、管理

    Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。

    1). 服务器启动与关闭

    启动: rabbitmq-server –detached

    关闭:rabbitmqctl stop

    若单机有多个实例,则在rabbitmqctlh后加–n 指定名称

    2). 插件管理

    开启某个插件:rabbitmq-pluginsenable xxx

    关闭某个插件:rabbitmq-pluginsdisablexxx

    注意:重启服务器后生效。

    3).virtual_host管理

    新建virtual_host: rabbitmqctladd_vhost xxx

    撤销virtual_host:rabbitmqctl delete_vhost xxx

    4). 用户管理

    新建用户:rabbitmqctl add_user xxxpwd

    删除用户: rabbitmqctl delete_user xxx

    改密码: rabbimqctlchange_password {username} {newpassword}

    设置用户角色:rabbitmqctlset_user_tags {username} {tag …}

    Tag可以为 administrator,monitoring, management

    5). 权限管理

    权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}

    Vhostpath

    Vhost路径

    user

    用户名

    Conf

    一个正则表达式match哪些配置资源能够被该用户访问。

    Write

    一个正则表达式match哪些配置资源能够被该用户读。

    Read

    一个正则表达式match哪些配置资源能够被该用户访问。

    6). 获取服务器状态信息

    服务器状态:rabbitmqctl status

    队列信息:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem …]

    Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,

    messages_unacknowledged,messages,consumers,memory

    Exchange信息:rabbitmqctllist_exchanges[-p vhostpath] [exchangeinfoitem …]

    Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.

    Binding信息:rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem …]

    Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments

    Connection信息:rabbitmqctllist_connections [connectioninfoitem …]

    Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。

    Channel信息:rabbitmqctl list_channels[channelinfoitem …]

    Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked

    6、

    客户端连接测试

    客户端采用Java来进行测试连接,下载rabbitmq所需jar包,并加入服务器端对应的ip、端口以及rabbitmq的用户名和密码,如图:

    这里写图片描述

    消息发送端与消息接收端均采用上述相同的配置,随后就可进行消息在不同客户端之间的传递。

    1、实验环境

    3

    rabbitmq-node1.com192.168.1.112

    rabbitmq-node2.com192.168.1.113

    rabbitmq-node3.com192.168.1.128

    2、配置前检查同步时间

    #ntpdatepool.ntp.org

    3、注意一定要修改hosts

    #cat?/etc/hosts

    192.168.1.112???rabbitmq-node1.com?rabbitmq-node1

    192.168.1.113???rabbitmq-node2.com?rabbitmq-node2

    192.168.1.128???rabbitmq-node3.com?rabbitmq-node3

    4、安装erlang

    #yum?-y?install?erlang

    5、安装rabbitqmq

    #wget?http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.6/rabbitmq-server-2.8.6-1.noarch.rpm

    #yum?-y?install?rabbitmq-server-2.8.6-1.noarch.rpm

    ?

    [root@rabbitmq-node1?~] #?/etc/init.d/rabbitmq-server?start

    Starting?rabbitmq-server:?SUCCESS

    rabbitmq-server.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CAgY1rGx-1661633633583)(http://www.centoscn.com/uploads/allimg/141216/010422A48-0.jpg “r2.jpg”)]

    #?rabbitmqctl?status????????//查看状态

    6、安装插件管理界面

    #mkdir?-m?777?/etc/rabbitmq/?(如果目录已经存在直接执行?#?chmod?777?/etc/rabbitmq/)

    #rabbitmq-plugins?enable?rabbitmq_management

    重启rabbitmq-server

    #rabbitmqctl?stop

    #/etc/init.d/rabbitmq-server?start

    查看管理端口有没有启动:

    #?netstat?-tnlp|grep?55672

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JzWcD3rE-1661633633585)(http://www.centoscn.com/uploads/allimg/141216/0104224956-1.jpg “r3.jpg”)]

    浏览器打开http://IP:55672账号密码都是guest

    注意:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。

    如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(/etc/rabbitmq/rabbitmq.config)中设置loopback_users为[]。

    /etc/rabbitmq/rabbitmq.config文件完整内容如下(注意后面的半角句号):

    [{rabbit,[{loopback_users,[]}]}].

    7、rabbitmq集群配置

    (1)设置每个节点Cookie

    Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节点是通过一个magiccookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信

    #?cat?/var/lib/rabbitmq/.erlang.cookie?

    EJARCZORCOTEQWFGPWXR

    (2)停止所有节点RabbitMQ服务,然后使用detached参数独立运行,这步很关键,尤其增加节点停止节点后再次启动遇到无法启动都可以参照这个顺序

    [root@rabbitmq-node3?~] #rabbitmq-server?-detached

    [root@rabbitmq-node2?~] #rabbitmq-server?-detached

    [root@rabbitmq-node1?~] #rabbitmq-server?-detached

    (3)关于节点类型(ram|disk)

    ram节点的状态保存在内存中,disk节点保存在磁盘中被加入的节点为disk,如本例中rabbit@host2为ram节点,rabbit@host1,rabbit@host3为ram节点,可以通过rabbitmqctlcluster命令改变加入的集群以及节点类型该命令后可以加多个节点名称,指定的节点就会变成disk节点

    [root@rabbitmq-node3?~] #rabbitmqctl?cluster_status

    [root@rabbitmq-node3?~] #rabbitmqctl stop_app

    [root@rabbitmq-node3?~] #rabbitmqctl?reset

    [root@rabbitmq-node3?~] #rabbitmqctl?cluster

    [root@rabbitmq-node3?~] #rabbitmqctl?start_app

    ?

    指定为 ram

    [root@rabbitmq-node2?~] #rabbitmqctl stop_app

    [root@rabbitmq-node2?~] #rabbitmqctl?reset

    [root@rabbitmq-node2?~] #rabbitmqctl join_cluster--ram?rabbit@rabbitmq-node3

    [root@rabbitmq-node2?~] #rabbitmqctl?start_app

    ?

    指定为disc

    [root@rabbitmq-node1?~] #rabbitmqctl stop_app

    [root@rabbitmq-node1?~] #rabbitmqctl?reset

    [root@rabbitmq-node1?~] #rabbitmqctl join_cluster?rabbit@rabbitmq-node3?

    [root@rabbitmq-node1?~] #rabbitmqctl?start_app

    (4)自动配置集群,默认文件是没有的,如果需要必须手动创建

    [root@rabbitmq-node1?~] #?cat?/etc/rabbitmq/rabbitmq.conf?

    [

    ?

    ...

    ?

    {rabbit,?[

    ?

    ...

    ?

    {cluster_nodes,?[ 'rabbit@rabbitmq-node1' , 'rabbit@rabbitmq-node2' ,? 'rabbit@rabbitmq-node3' ]},

    ?

    ...

    ?

    ]},

    ?

    ...

    ?

    ].

    ?

    [root@rabbitmq-node1?~] #?cat?/etc/rabbitmq/rabbitmq-env.conf?

    RABBITMQ_MNESIA_BASE= /var/lib/rabbitmq/// 需要使用的MNESIA数据库的路径

    RABBITMQ_LOG_BASE= /var/log/rabbitmq///log 的路径

    RABBITMQ_PLUGINS_DIR= /usr/lib/rabbitmq/lib/rabbitmq_server-2 .8.6 /plugins// 插件的路径

    (5)启动后就自动加入集群了

    [root@rabbitmq-node1?~] #rabbitmq-server?-detached

    [root@rabbitmq-node1?~] #?rabbitmqctl?cluster_status

    Cluster?status?of?node? 'rabbit@rabbitmq-node1' ...

    [{nodes,[{disc,[ 'rabbit@rabbitmq-node1' , 'rabbit@rabbitmq-node3' ]},

    ????????? { ram ,[ 'rabbit@rabbitmq-node2' ]}]},

    ? {running_nodes,[ 'rabbit@rabbitmq-node2' , 'rabbit@rabbitmq-node3' ,

    ????????????????? 'rabbit@rabbitmq-node1' ]}]

    ... done .

    (6)在浏览器中可以看到所有节点的信息,如果其他节点信息没有显示启用web管理就好

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E4J06aEe-1661633633586)(http://www.centoscn.com/uploads/allimg/141216/01042260Y-2.jpg “r5.jpg”)]

    ]

  • 相关阅读:
    【C++】.h文件与.c文件的区别
    隐式神经表示二:超分网络学习傅里叶系数Local Texture Estimator for Implicit Representation Function
    简单理解推挽输出和开漏输出
    如何在Python中实现找到两个未知特征来从其余样本中聚类已知样本?
    jboss/CVE-2017-7504
    代码随想录 -- day46 --139.单词拆分
    多人的姿态检测|tensorflow multipose
    2024现代Android开发趋势
    ubuntu16.04下thrift安装及遇到的问题
    孤儿进程,守护进程,僵尸进程
  • 原文地址:https://blog.csdn.net/m0_67401499/article/details/126565421