• RabbitMQ(三) 集群配置


    RabbitMQ——集群配置

    之前不管是搞Redis、SQL、Mongo还是其他的东西,一律都没说过集群要怎么搞,电脑实在是带不动、说透彻点就是懒,懒得搭也懒得写,今日深刻意识到错误,做学问是不能懒的,会被人喷的,发个集群配置的简版吧。

    一点废话

    可以不看,之前用的Windows,最后想想撘集群什么的还是用CentO逼格更高一点,这年头就是搞Linux的看不起Windows、搞Java的看不起搞C#的,就装了两个CentOS7,装上后黑屏!!!查了一堆的解决方案:

    • 虚拟机的显示配置里把3D加速关了,看了看,确实没勾,没用!
    • 本机的BIOS的处理器设置中开启虚拟化设置,没用!!
    • 输入命令“netsh winsock reset”后重启,没用!!!
    • 虚拟机屏幕亮度问题.......

    重装?不可能的,这辈子都不可能重装的,发大招,使用如下命令:

    yum remove gnome-shell
    

    既然你不好好干活,那就下岗吧,完美解决,不得不为我的机智点个赞。

    言归正传

    集群这一块的话,一般有单机集群和多机集群,单机集群实在是不推荐,本来就是为了分散风险,现在搭在一台上,服务器挂了就歇菜了,实在有需求可以看看[https://blog.csdn.net/u013256816/article/details/53264715]。

    这里再说一句废话,很重要,很多博客里也不提这茬,估计是觉得不需要说吧,但咱是个菜鸡啊,搭建集群前最好改一下主机名,否则会比较烦,这里我将“/etc/hostname”中的主机名分别设置为192-168-253-133、192-168-253-134,本来希望找一种方式不修改主机名就达到目的,很遗憾,没找到,知道的大神烦请告诉我一声。改主机名就比较简单了,直接修改/etc/hostname中的名字然后reboot就行。接下来照如下步骤执行即可:

    • 目前有两台服务器133和134,先启动rabbitmq服务:
    rabbitmq-server -detached #这个detached表示在后台运行
    
    • 分别在/etc/hosts下添加133和134配置
    192.168.253.133 192-168-253-133
    192.168.253.134 192-168-253-134
    
    • 使用scp命令将$HOME/.erlang.cookie(自己下载安装的)或者/var/lib/rabbitmq/.erlang.cookie(使用rpm安装的)中的cookie从133拷贝到134服务器上。
    scp $HOME/.erlang.cookie root@192-168-253-134:$HOME/.erlang.cookie
    
    • 开启133服务器的节点
    rabbitmqctl start_app
    
    • 134服务器上的加入cluster中后启动
    rabbitmqctl stop_app
    rabbitmqctl join_cluster rabbit@192-168-253-133
    rabbitmqctl start_app
    

    以上就是多机集群的部署步骤,当然了这种模式下数据结构共享,也就是对于Queue来说每个节点上都有,但是数据只存在某一个节点上,当某个节点故障后,该节点上的数据是无法被消费的,若是做了持久化,只有等待该节点恢复后才可以被消费。那么有没什么方式能够实现数据在各节点间相互同步能,镜像策略可以解决这个问题,不过这种方式会占用各节点之间的网络带宽。当然你有两种方式可以选择:

    • 第一种是在rabbitmq的管理界面的admin/policies/add or update a plicy中配置,markdown懒得搞图,自己找找吧。
    • 第二种自然是敲命令啦:
    rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”}’
    

    这个策略使用比较灵活,也可以选择只同步部分队列,关心的同志们可以详细了解一下,到这里基本上就完成了集群的配置,至于负载啊用Haproxy的比较多,土豪用F5也可以啊,Haproxy后面再说,后面还有一些废话,老司机们可以不看了。

    一些命令

    写了这么多是不是敲命令有点晕?这里我们细说一下,网上抄的:

    • rabbitmq-server –detached:在后台启动rabbitmq;
    • rabbitmqctl add_user admin admin:添加用户;
    • rabbitmqctl set_user_tags admin administrator:修改用户角色;
    • rabbitmqctl list_users:查看用户列表;
    • rabbitmqctl set_permissions -p / admin "." "." ".*":使用户拥有所有资源的配置、写、读权限以便管理其中的资源;
    • rabbitmqctl delete_user admin:删除用户;
    • rabbitmqctl change_password admin admin:修改用户密码;
    • rabbitmqctl add_vhost myvhost:添加新的vhost;
    • rabbitmqctl delete_vhost myvhost:删除指定的vhost;
    • rabbitmqctl status:查看服务器状态;
    • rabbitmqctl list_queues:查看队列信息;
    • rabbitmqctl start_app:开启应用;
    • rabbitmqctl stop_app:关闭应用;
    • rabbitmq-plugins enable rabbitmq_management:启用图形界面;
    • rabbitmqctl -p / purge_queue queue1:清空队列queue1中的数据;
      更多参数见rabbitmqctl,不做缀诉了。
  • 相关阅读:
    Spark Streaming 调优指南
    Hive实战之Youtube数据集
    【源码解析】BlockManager详解
    Spark操作HBase问题:java.io.IOException: Non-increasing Bloom keys
    Spark实战之读写HBase
    ZooKeeper的简单理解
    Flume-ng源码解析之Source组件
    Flume-ng源码解析之Sink组件
    Flume-ng源码解析之Channel组件
    Flume-ng源码解析之启动流程
  • 原文地址:https://www.cnblogs.com/krockey/p/9037450.html
Copyright © 2020-2023  润新知