您的位置:402cc永利手机版 > 互联网动态 > 【www.402.com】集群与网络分区,网络的网络

【www.402.com】集群与网络分区,网络的网络

2019-11-24 03:39

www.402.com 1

RabbitMQ 集群与网络分区

关于network partition

网络设备故障导致的网络分裂。比如,存在ABCDE五个节点,AB处于同一子网,BCD处于另外一子网,中间通过交换机相连。若两个子网间的交换机故障了即发生了网络分区,AB和CDE便不能通讯。
某些系统是partition-tolerant的,也即,即使发生了网络分区系统分裂为了多个子系统,整个系统仍能正常工作。

RabbitMQ cluster不能很好地处理Network Partition。RabbitMQ将queue、exchange、bindings等信息存储在Erlang的分布式数据库Mnesia中。所以出现Network partition时RabbitMQ的众多行为与Mnesia的行为密切相关。

Network Partition的检测
若某一node在一段时间内(取决于net_ticktime的设置)不能与另一node取得联系,则Mnesia认为未能与之取得联系的node宕掉了。若两个node彼此恢复联系了,但都曾以为对方宕掉了,则Manesia断定发生过Network partition。

发生Network Partition后RabbitMQ的行为
若发生了network partition,cluster中的双方(或多方)将独立存在,每一方都将认为其他方已经崩溃了。Queues、bindings、exchanges可以各自独立的创建、删除。对于Mirrored queues,处于不同network partition的每一方都会拥有各自的master,且各自独立的读写。(也可能发生其他诡异的行为)。若network partition恢复了,cluster的状态并不能自动恢复到network partition发生前的状态,直至采取措施进行修复。

由suspend/resume引起的 partitions
只要cluster中的不同node自身没有失效但之间的通信发生了中断都可认为是发生了Partitions。比如,整个OS的挂起会导致其中的cluster nodes的挂起,但这些nodes却不认为自身失效或停止了,而cluster中的其它nodes不能与之取得联系,会认为这些nodes down掉了。举个例子:若cluster中的一个node运行在笔记本电脑上,合上电脑屏幕就有可能导致node挂起。另外,若cluster中的node运行在虚拟机中,则管理程序可能导致虚拟机挂起,从而使node挂起。

如何从network partition中恢复
首先选一个最信任的partition,Mnesia使用该partition中的状态,其他partitions中发生的变化都将丢失。
停止其他partitions中的所有nodes,之后重启这些nodes。当这些nodes重新加入cluster后将从信任的partition恢复状态。
最后还需重启信任的partition中的所有nodes以清除network partition的警告信息

RabbitMQ自动处理partitions
RabbitMQ提供了两种自动处理network partitions的方式:pause-minority模式和autoheal模式(默认为ignore模式,也即需要手工处理)
在pause-minority模式下,察觉其他nodes down掉后RabbitMQ将自动暂停认为自己是少数派的 nodes(例如小于或等于总nodes数的一半),network partition一旦发生,“少数派”的nodes将立刻暂停,直至partition结束后重新恢复。这可以保证在network partition发生时,至多只有一个partition中的nodes继续运行。(牺牲可用性保证一致性)

在autoheal模式下一旦发生了partition,RabbitMQ将自动确定一个优胜partition,然后重启所有不在优胜partition中的nodes。获胜的partition为拥有最多客户端连接的partition(若连接相同则为节点最多的partition)。关于自动处理partitions的设置在配置文件的cluster_partition_handling参数中进行。

两种自动处理partitions模式的适用场景
network partitions自动处理并不能保证cluster不出任何问题。一般来说可作如下选择:
ignore:若网络非常可靠。所有nodes在同一机架,通过交换机连接,该交换机也是通往外部网络的出口。在cluster的某一部分故障时不希望其余部分受影响。或者cluster只有两个node。
pause_minority:网络较不可靠。cluster处于EC2的3个AZ中,假定每次至多只有其中一个AZ故障,想要剩余的AZ继续提供服务而故障的AZ中的nodes在AZ恢复后重新自动加入到cluster。   
autoheal:网络很不可靠。与数据完整性相比更关注服务的持续性。cluster只有两个node。

www.402.com ,关于pause-minority模式
暂停的nodes上Erlang VM将继续运行但不监听任何端口或者做其他工作。它们将每秒检测一次cluster中的其他nodes是否可见,若可见则从pause状态唤醒。
注意:
nodes在启动时不会进入paused状态,即使是处于“少数派”;
RabbitMQ可能会暂停非严格意义上的“少数派”中的nodes。如,包含多于总nodes总数一半的nodes。因此在只包含两个nodes的cluster中使用pause-minority模式并非好主意,因为在network partition发生或者node失败时有可能两个node都会暂停。然而,在包含两个以上nodes的cluster中pause_minority模式要比ignore更安全;
对于因cluster nodes 挂起引起的partitions pause_minority模式无能为力。因为挂起的node将不能看到剩余node是否恢复“可见”,因而不能触发从cluster中断开。

CentOS 5.6 安装RabbitMQ

RabbitMQ客户端C 安装详细记录

用Python尝试RabbitMQ

RabbitMQ集群环境生产实例部署

Ubuntu下PHP RabbitMQ使用

在CentOS上安装RabbitMQ流程

RabbitMQ概念及环境搭建 

RabbitMQ入门教程 

RabbitMQ 的详细介绍:请点这里
RabbitMQ 的下载地址:请点这里

本文永久更新链接地址:

集群与网络分区 关于network partition 网络设备故障导致的网络分裂。比如,存在ABCDE五个节点,AB处于同一子网,BCD处于另外一子...

“人脑连接组计划”(Human Connectome Project)利用扫描数据绘制的脑细胞髓鞘分布图。髓鞘是包在神经元分支外面的白色膜层,成分是髓磷脂。髓磷脂含量分布是表示神经元分支和信息传递速度的重要指标。人脑连接组计划准备用5年时间绘制出人脑的线路图。

(文/Elizabeth Quill)每晚约有6、7次,我们熟睡中的身体会表现出非凡的协调本领。

当你流连在黑甜乡的最深处时,身体的支持系统还在依照它们自己的时间表运行。神经细胞在你脑中吟唱着,嘈嘈切切的低语形成了标志着深度睡眠的慢波。不过,心脏仍按着自己的节奏将血液通过血管泵往全身,这种神经系统的细声细语与它并没有什么关系。同样地,空气在似乎随意的呼吸之间溜进鼻孔、穿过气管;肌肉的伸缩令双腿像毫无来由一般来回抽搐。大体上而言,肌肉、脑细胞、呼吸道和肺、心脏和血管的网络是各自独立运作的。

不过每隔几个小时,大约在短短30秒的时间内,各网络之间的藩篱会烟消云散。忽然之间,不同的网络统一了步调,深睡眠中所有各自为政的活动开始与周围环境建立关联。每一个网络——分别由自己的肌肉、细胞或分子集体运行——都加入了一个更大的群体。

这种变化标志着由深睡眠向浅睡眠的过渡,研究人员最近才了解它的细节过程。我们采用了一种全新的视角,去审视身体中无数的网络是在何时、以何种方式联结起来,形成一个超级网络的。

“当我从一种状态转向另一种状态时,生理系统之间的联系立刻改变了。”波士顿大学的生物物理学家普拉门•伊万诺夫(Plamen Ivanov)说,“这相当出人意料。”

而这种现象不仅发生在身体中,日常生活中类似的情况一直都在发生。各种类型的系统时时相连。火车站附近出现了公交车站,使得通勤者可以从一个交通网络进入另一个。新的朋友加入了你的社交圈,将你的交际网络和他们的连接起来。电话、银行、电厂全部登陆互联网,并在网上互联互通。

长久以来,人们想弄明白参与者(player)——不管是身体器官、人员、公交车站、公司还是国家——是如何连接、交互,创造出网络(network)结构的。20世纪90年代后期,随着网络科学的突飞猛进,网络如何运作以及为何有时又会发生故障,这些问题都得到了深入而细致的分析。但是近来一些研究者意识到,仅仅了解独立的网络如何工作是不够的,研究网络之间如何交互同样重要。如今,前沿领域不再是网络科学,而是研究 网络的网络 (network of networks)的科学。

“当我们孤立地考量单一的一个网络,我们便错失了相当多的背景信息。”加州大学戴维斯分校的物理学家、工程师雷萨•德苏萨(Raissa D’Souza)说,“我们会做出与真实系统不符的错误预测。”

和单一网络一样,网络的网络也比比皆是。你早上醒来,去上班并开动脑筋,便是在连接不同的网络了。当你向朋友介绍一名家庭成员,或者在微博上发送一条消息并同步到其他社交网络(比如说果壳,哈哈),同样的事情也在发生。其实只要你连接互联网,就是在进入互相依存的系统——互联网以电网为支撑,而电网通过通信网得到指令。如果经济衰退导致你的投资贬值,你便能感觉到这种系统出问题时的后果。

本文由402cc永利手机版发布于互联网动态,转载请注明出处:【www.402.com】集群与网络分区,网络的网络

关键词: www.402.com 402cc永利手机版