32、深入探索 Akka 集群:从基础到实践

深入探索 Akka 集群:从基础到实践

1. 系统架构与前期考量

在系统开发中,Akka 能将部署决策更多地作为配置项而非代码处理。拥有多个代码库可极大地便利大型团队在代码库上的协作,它通过消除通信渠道和将代码提交隔离到单独的仓库,避免了布鲁克斯法则(给已经延迟的项目增加更多资源会使项目更延迟)带来的问题。

在构建系统时,建议在系统复杂到难以作为单体应用管理之前,或者至少在有基于数据的充分理由(与性能或团队工作相关)时,再考虑构建分布式系统。无论一开始决定构建单体应用还是服务,都应从第一天起将不同的关注点封装到库中,这样在准备实际部署单独的应用程序之前,团队就能从处理不同代码库中受益,后续拆分应用时也能更轻松地管理代码共享。

2. 集群的定义与关键职责

集群是一组相互通信的服务器,集群中的每个服务器被称为节点或成员。集群应能动态改变规模,并在发生故障时将影响降至最低,因此集群需要处理两项关键职责:故障检测和在整个集群中传播所有可用成员的一致视图。

3. 故障检测机制

随着节点数量的增加,节点故障或网络临时分区的可能性也会增大。集群是一个动态实体,当服务器关闭或不可用时会缩小,当添加服务器(例如处理更多负载)时会扩大。节点通过向其他成员发送消息来确定这些成员是否可用,根据回复或无回复来判断成员的可用性。

为了降低监控其他节点健康状况的复杂性,Akka 中的故障检测仅监控节点旁边的一定数量的节点。例如,在一个由六个节点组成的集群环中,每个节点可能监控其后的两个节点是否发生故障。Akka 集群中每个节点监控的默认最大节点数为五个。

Akka 通过节点之间发送心跳并接收响应来实现故

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值