Centos7オフラインRabbitMQのをインストールし、クラスタを構成します

Centos7オフラインRabbitMQのをインストールし、クラスタを構成します

免責事項:この記事は従って、ブロガーオリジナル記事です。 CC BY-SA 4.0 再現著作権の契約を、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/Alger_magic/article/details/82868267

目的:Centos7オフラインのRabbitMQをインストールし、クラスタを構成します

環境:

系统:Centos 7.5
环境:
  • 1
  • 2

まず、RabbitMQのをインストールします。

1.依存ダウンロードとインストールパッケージは、RabbitMQの2つのインストールは、RPM、アーランとsocatに関する依存します

  1. centos7が19.3以降が必要です(https://packagecloud.io/rabbitmq/erlang ErlangでのRPMインストールパッケージをページの対応するバージョンを選択し、アーランをダウンロードしてください。
    ここに画像を挿入説明

  2. RPMインストールパッケージsocatに関するcentos7ダウンロードするページのバージョン)http://www.rpmfind.net/linux/rpm2html/search.php?query=socat(x86-64で、socatに関するをダウンロードしてください。
    ここに画像を挿入説明

  3. インストールパッケージのバージョンcentos7をダウンロードするhttp://www.rabbitmq.com/install-rpm.htmlページでは、RabbitMQのダウンロード
    ここに画像を挿入説明

PS:あなたはまた、直接リソースをダウンロードすることができますhttps://download.csdn.net/download/alger_magic/10716820

2. RPMインストール

  1. rpmファイルは、カスタムフォルダに置かれ、centos7にコピーにダウンロードされます。

  2. あなたはYUM * .rpmのインストールをインストール使用することができ、インストールするには、rpmコマンドを使用します。
    アーラン19.3.6.11-2.el6.x86_64.rpm -ivh RPM sudoの
    sudoのRPM -ivh socatに関する-1.7.3.2-2.el7.x86_64.rpm
    sudoのRPM -ivhのRabbitMQ-サーバー3.7.8-1.el7。 noarch.rpm

    PS:
    窓のcentos7を使用して、マウスが直接(コピー推測はプロセスが欠落している可能性がありされていること)パケットエラーに求められることがあり、インストール時に、CentOSのに仮想マシンインストールされたコピーの回転数をドラッグして使用します。
    解決策は、WinSCPのアップロードまたは過去の使用のUディスクのコピーを使用することです。
    ここに画像を挿入説明

3.スタートRabbitMQの

  1. sudoのサービスのRabbitMQサーバの起動の実行
    プロンプトは、図に示す成功したスタートを示します。
    ここに画像を挿入説明

  2. 構成管理のRabbitMQアカウント。
    実行rabbitmqctl ADD_USER管理者の管理、アカウントのパスワードは、管理者管理者である設定
    ここに画像を挿入説明

  3. 管理者を設定するために実行rabbitmqctl set_user_tags管理者管理者、管理者権限
    ここに画像を挿入説明

  4. 実行RabbitMQの-プラグインrabbitmq_management、オープンのRabbitMQ Web管理を有効にします。
    ここに画像を挿入説明

  5. :のためのマネジメントリンクがHTTP:// localhostを:15672には、ログインアカウントのパスワードはadmin管理者に設定されています
    ここに画像を挿入説明

  6. 登陆管理端,并打开访问权限。
    a.登陆后台
    ユーザログインの背景を使用します
    b.查看用户权限,默认状态下权限是不允许访问(此时程序访问5672端口是连接被拒绝)。ビューのユーザー権限、デフォルトのアクセス許可は、アクセスを許可されていません
    c.点击用户名,进入用户页面,直接点击设置权限。此时刷新页面回到Users页面,权限变成可访问。
    ここに画像を挿入説明
    ここに画像を挿入説明
    ここに画像を挿入説明
    PS:常见问题
    一. http://ip:15672不能访问,确认两点:1. 添加用户、给用户设置管理员权限、rabbitmq-plugins这三步是否执行成功。2. 使用firewall打开5672/15672端口。具体步骤如下:

sudo service firewalld start
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
sudo service firewalld start(如果系统不要求开启防火墙,可以在设置完以后再关闭它)
备注:即使防火墙处于关闭状态,也应该先打开端口再关闭,否则在有些机器上会仍然端口不通。

 

二、RabbitMQ集群部署:

1.按照前面的方式在想要集群的多台主机上安装好RabbitMQ实例

2.集群配置

1.更改主机/etc/hosts,加入主机节点。 如下所示三台主机均在/etc/hosts中添加,然后三台主机相互之间可以ping通rabbit-node

vim /etc/hosts
添加内容:
192.168.1.201 rabbit-node1
192.168.1.202 rabbit-node2
192.168.1.203 rabbit-node3

2. 由于RabbitMQ集群的主机需要使用同一个erlang.cookie。所以需要将多台主机的erlang.cookie设置为同一个。

  1. erlang.cookie位置: 如果是使用rpm包安装的rabbitmq, erlang.cookie的位置在/var/lib/rabbitmq/.erlang.cookie;如果是源码编译安装,erlang.cookie文件位置在~/.erlang.cookie

  2. 例如上面的三台主机操作流程如下:如果以rabbit-node1的erlang.cookie作为集群的erlang.cookie.

1. 在node1的主机上 chmod 777 /var/lib/rabbitmq/.erlang.cookie.(改变只读权限,让node2,node3可以获取)
2. 在node2主机上执行:
    chmod 777 /var/lib/rabbitmq/.erlang.cookie   
    scp -r rabbitmq-node1:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
    输入yes
    输入node1的密码
    提示: .erlang.cookie  100%  20,即执行成功
3. 同样在node3主机上执行:
    chmod 777 /var/lib/rabbitmq/.erlang.cookie   
    scp -r rabbitmq-node1:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
    输入yes
    输入node1的密码
    提示: .erlang.cookie  100%  20,即执行成功
 4. 在三台主机上使用cat /var/lib/rabbitmq/.erlang.cookie查看erlang.cookie是否统一,如果已统一,再分别执行chmod 400 /var/lib/rabbitmq/.erlang.cookie,恢复原本权限

 

3. 配置集群

  1. 在三台主机上停止当前Rabbitmq-server, 分别执行service rabbitmq-server stop,如有问题,可以使用ps查看rabbitmq进程号,在kill -9 杀掉。
  2. 然后执行service rabbitmq-server start 开启服务.
  3. 分别在三台主机上执行rabbitmqctl cluster_status查看集群状况,此时只有本机的记录。打印输出如下:
Cluster status of node rabbit@ rabbit-node ...
[{nodes,[{disc,[rabbit@ rabbit-node]}]},
 {running_nodes,[rabbit@ rabbit-node]},
 {cluster_name,<<"rabbit@ rabbit-node">>},
 {partitions,[]},
 {alarms,[{rabbit@ rabbit-node,[]}]}] 
  1. 将 rabbit-node1, rabbit-node2, rabbit-node3组成集群。
1.在 rabbit-node2上执行:
    rabbitmqctl stop_app
    rabbitmqctl join_cluster rabbit@rabbit-node1
    rabbitmqctl start_app

2.同样在 rabbit-node3上执行:
	rabbitmqctl stop_app
	rabbitmqctl join_cluster rabbit@rabbit-node1
	rabbitmqctl start_app
3.集群就建立完成了(rabbit-node2, rabbit-node3之间会自动建立连接)。
4.在三台主机上分别执行rabbitmqctl cluster_status查看集群状态,结果如下:
	Cluster status of node rabbit@rabbit-node1 ...
	[{nodes,[{disc,['rabbit@rabbit-node1','rabbit-node2',
              	  'rabbit@rabbit-node3']}]},
	 {running_nodes,['rabbit@rabbit-node1','rabbit@rabbit-node2',
                	 'rabbit@rabbit-node3']},
	 {cluster_name,<<"rabbit@rmq-cluster-1">>},
	 {partitions,[]},
	 {alarms,[{'rabbit@rabbit-node1',[]},
	          {'rabbit@rabbit-node2',[]},
	          {'rabbit@rabbit-node3',[]}]}]
表示集群创建成功,从任意一个节点的rabbitmq web管理端也可以看到各个节点状态

如图:
ここに画像を挿入説明

三、为RabbitMQ安装配置负载均衡器HAProxy:

1.下载安装

1.下载地址http://www.rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/haproxy-1.5.18-7.el7.x86_64.rpm
2. 在集群以外的一台主机上安装HAProxy(如主机不足也可以安装在其中一台,示例安装在rabbit-node1), rpm -ivh haproxy-1.5.18-7.el7.x86_64.rpm.

2. 配置负载均衡

1. HAProxy程序的配置文件默认在/etc/haproxy/haproxy.cfg
2. vim /etc/haproxy/haproxy.cfg,在末尾添加,如已有负载均衡配置,注释掉旧的配置

####################################################################
listen http_front
        bind 0.0.0.0:8100           #监听端口  
        stats refresh 30s           #统计页面自动刷新时间  
        stats uri /haproxy?stats            #统计页面url  
        stats realm Haproxy Manager #统计页面密码框上提示文本  
        stats auth admin:admin      #统计页面用户名和密码设置  
        #stats hide-version         #隐藏统计页面上HAProxy的版本信息

#####################我把RabbitMQ的管理界面也放在HAProxy后面了###############################
listen rabbitmq_admin 
    bind 0.0.0.0:8101
    server node1 192.168.1.201:15672
    server node2 192.168.1.202:15672
    server node3 192.168.1.203:15672
####################################################################
listen rabbitmq_cluster 
    bind 0.0.0.0:5671
    option tcplog
    mode tcp
    timeout client  3h
    timeout server  3h
    option          clitcpka
    balance roundrobin      #负载均衡算法(#banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数)
    #balance url_param userid
    #balance url_param session_id check_post 64
    #balance hdr(User-Agent)
    #balance hdr(host)
    #balance hdr(Host) use_domain_only
    #balance rdp-cookie
    #balance leastconn
    #balance source //ip
    server   node1 192.168.1.201:5672 check inter 5s rise 2 fall 3   #check inter 2000 是检测心跳频率,rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用
    server   node2 192.168.1.202:5672 check inter 5s rise 2 fall 3
    server   node3 192.168.1.203:5672 check inter 5s rise 2 fall 3

 

3. 重启HAProxy, sudo service haproxy restart
4. 在浏览器输入http://rabbit-node1:8100/haproxy?stats, 查看HAProxy状态,如下图
ここに画像を挿入説明

5. 安装已完成,可使用HAProxy配置的端口(示例中5671)进行rabbitmq操作,测试负载均衡效果

 

6、rabbitmq常用命令

    add_user        <UserName> <Password>

    delete_user    <UserName>

    change_password <UserName> <NewPassword>

    list_users

    add_vhost <VHostPath>

    delete_vhost <VHostPath>

    list_vhostsset_permissions [-p <VHostPath> <ユーザー名> <正規表現> <正規表現> <正規表現>

    clear_permissions [-p <VHostPath>] <ユーザー名>

    list_permissions [-p <VHostPath>]

    list_user_permissions <ユーザー名>

    list_queues [-p <VHostPath>] [<QueueInfoItem> ...]

    list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]

    list_bindings [-p <VHostPath>]

    list_connections [<ConnectionInfoItem> ...]

おすすめ

転載: www.cnblogs.com/mayhh/p/11425532.html
おすすめ