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,不做缀诉了。

转载于:https://www.cnblogs.com/krockey/p/9037450.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql update实质,UPDATE注射(mysql+php)的两个模式

UPDATE注射(mysqlphp)的两个模式2021-01-23 7:48:35424UPDATE注射(mysqlphp)的两个模式文/安全天使SuperHei2005.8.11一.测试环境:OS:Windowsxpsp2php:php4.3.10(mysql4.1.9apache1.3.33二.测试数据库结构:-----start-----数据库:test------------------…

数据库系统的特点

数据结构化数据的共享性高,冗余度低且易扩充数据独立性高数据由数据库管理系统统一管理和控制

SNF软件开发机器人-子系统-导出-导入功能-多人合作时这个功能经常用到

导出 导出可以将资源表和子系统导出并形成一个json文件。 1.效果展示: 2.使用说明: 点击导出按钮后会弹出一个导出页面。页面的左侧可以选择功能,右侧可以选择资源表,选择功能的同时右侧中功能所需的资源表也会被选择。当功能之间…

基于物理的渲染-用真实的环境光照亮物体

目前,在游戏引擎中用于照亮物体的光源非常丰富。其中,比较常用的有:平行方向光、点光源、聚光灯以及体积光等,但它们都是对真实光源的近似,并不能很好地模拟真实世界中的复杂光照情况。为了增加光照效果的真实感&#…

php中取出数组中指定的值,PHP除开数组中指定的值

PHP去除数组中指定的值//一维数组简单的做法 unset($arr[array_search($value,$arr)])$arr array("a","b","c","d");function isHave($var){if($var!"b")return true;}$arr_filter array_values(array_filter($arr,"…

实体以及实体型和实体集

实体(Entity) 客观存在并可相互区别的事物称为实体。 可以是具体的人、事、物或抽象的概念。 属性(Attribute) 实体所具有的某一特性称为属性。 一个实体可以由若干个属性来刻画。 实体型(Entity Type&#xf…

mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法 | 很文博客

不常用:MySQL中的LOCATE和POSITION函数LOCATE(substr,str)POSITION(substr IN str)返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0:mysql> SELECT LOCATE(bar, ‘foobarbar);-> 4mysql…

什么是数据的完整性约束

为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。

Python--协程(gevent模块)

一:前言 协程又称为微线程,纤程。英文名Coroutine:协程是一种用户态的轻量级线程 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复之前保存的寄存器上下文和…

ffmpeg 0.6.3 代码, 经过我努力,能够在vs 2005 下单步调试代码

1. ffmpeg-0.6.3_modify.7z 是修改后的ffmepg的代码; 2.ffmpeg-0.6.3_srouce.tar.bz2 是ffmpeg原始代码; 3.SDL-devel-1.2.15-VC.zip 是图像显示使用使用的sdl代码; 4.w_cc_p_10.1.020.exe 是vc 2005 需要使用的编译器&#xff1b…

克隆CentOS6虚拟机eth0被修改为eth1如何修改eth0

2019独角兽企业重金招聘Python工程师标准>>> 直接修改 /etc/sysconfig/network-script/ifcfg-eth0 删掉UUID HWADDR 配置静态地址 然后: rm -rf  /etc/udev/rules.d/70-persistent-net.rules然后reboot 转载于:https://my.oschina.net/hengbao666/blog/…

[Hnoi2013]消毒

Description 最近在生物实验室工作的小T遇到了大麻烦。 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为abc,a、b、c 均为正整数。为了实验的方便,它被划分为abc个单位立方体区域,每个单位立方体尺寸 为111。用(i,…

php按照文件名字排序,php readdir 排序问题,如何按照日期进行排序

目前是这么写的:function posts_get($directory,$ext){if (is_dir($directory)) {$handle opendir($directory);while ($file readdir($handle)){$subdir $directory . / .$file;if ($file ! . && $file !.. && is_dir($subdir)){posts_get($sub…

关系模型的名词

关系(Relation)一个关系对应通常说的一张表元组(Tuple)表中的一行即为一个元组属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名主码(Key)也称码键…

物理卷、卷组、逻辑卷

参考文章: 相关文献 谢谢作者分享!

fibonacci数列的题目——剑指Offer

https://www.nowcoder.net/practice/c6c7742f5ba7442aada113136ddea0c3?tpId13&tqId11160&tPage1&rp1&ru/ta/coding-interviews&qru/ta/coding-interviews/question-ranking 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出…

如何高效的编写与同步博客 (.NET Core 小工具实现)

系列目录 [如何高效的编写与同步博客(一)- 编写 ]如何高效的编写与同步博客(二)- 快速发布到多个渠道一.前言 写博客,可以带给我们很多好处,比如可以让我们结识更多志同道合的人;在写博客过程中…

java appendable,org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8

上传文件奇怪的错误2016-10-14 11:00:52,254 nuoshang.bluejay.common.shiro.cache.RedisCache.put(RedisCache.java:54) DEBUG - SET nameshiro-activeSessionCache key70qv5bejsihmgot7hroqg6q0lv2016-10-14 11:00:52,254 nuoshang.bluejay.common.shiro.cache.LCache.fire(L…