加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜阳站长网 (https://www.0558zz.cn/)- AI行业应用、低代码、混合云存储、数据仓库、物联网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

从微信“挖人”不容易

发布时间:2021-02-06 15:16:25 所属栏目:外闻 来源:互联网
导读:能转换:上层是下层的抽象,下层是上层的实现 底层为上层提供支撑环境! 计算机系统的不同用户 最终用户 工作在由应用程序提供的最上面的抽象层 系统管理员 工作在由操作系统提供的抽象层 应用程序员 工作在由语言处理系统(主要有编译器和汇编器)的抽象层 语

能转换:上层是下层的抽象,下层是上层的实现 底层为上层提供支撑环境!

计算机系统的不同用户

  • 最终用户工作在由应用程序提供的最上面的抽象层
  • 系统管理员工作在由操作系统提供的抽象层
  • 应用程序员工作在由语言处理系统(主要有编译器和汇编器)的抽象层
  • 语言处理系统建立在操作系统之上
  • 系统程序员(实现系统软件)工作在ISA层次,必须对ISA非常了解

编译器和汇编器的目标程序由机器级代码组成

操作系统通过指令直接对硬件进行编程控制ISA处于软件和硬件的交界面(接口)
 

NWR模型的一些设置会造成脏数据和版本冲突问题,所以一般要引入vector clock算法来解决这个问题。

需要保证系统中有max(N-W+1,N-R+1)个节点可用。

关于NWR模型,建议阅读 分布式系统的事务处理,写的很通俗易懂。

vector clock:时钟向量,多版本数据修改

参见 分布式系统的事务处理,写的很通俗易懂。

lease机制

chubby、zookeeper 获得lease(租约)的节点得到系统的承诺:在有效期内数据/节点角色等是有效的,不会变化的。

lease机制的特点:

  • lease颁发过程只需要网络可以单向通信,同一个lease可以被颁发者不断重复向接受方发送。即使颁发者偶尔发送lease失败,颁发者也可以简单的通过重发的办法解决。
  • 机器宕机对lease机制的影响不大。如果颁发者宕机,则宕机的颁发者通常无法改变之前的承诺,不会影响lease的正确性。在颁发者机恢复后,如果颁发者恢复出了之前的lease 信息,颁发者可以继续遵守lease的承诺。如果颁发者无法恢复lease信息,则只需等待一个最大的lease超时时间就可以使得所有的lease都失效,从而不破坏lease机制。
  • lease机制依赖于有效期,这就要求颁发者和接收者的时钟是同步的。(1)如果颁发者的时钟比接收者的时钟慢,则当接收者认为lease已经过期的时候,颁发者依旧认为lease有效。接收者可以用在lease到期前申请新的lease的方式解决这个问题。(2)如果颁发者的时钟比接收者的时钟快,则当颁发者认为lease已经过期的时候,可能将lease颁发给其他节点,造成承诺失效,影响系统的正确性。对于这种时钟不同步,实践中的通常做法是将颁发者的有效期设置得比接收者的略大,只需大过时钟误差就可以避免对lease的有效性的影响。

工程中,常选择的lease时长是10秒级别,这是一个经过验证的经验值,实践中可以作为参考并综合选择合适的时长。

双主问题(脑裂问题)

lease机制可以解决网络分区问题造成的“双主”问题,即所谓的“脑裂”现象。配置中心为一个节点发放lease,表示该节点可以作为primary节点工作。当配置中心发现primary有问题时,只需要等到前一个primary的lease过期,就可以安全地颁发新的lease给新的primary节点,而不会出现“双主”问题。在实际系统中,若用一个中心节点作为配置中心发送lease也有很大的风险。实际系统总是使用多个中心节点互为副本,成为一个小的集群,该小集群具有高可用性,对外提供颁发lease的功能。chubby和zookeeper都是基于这样的设计。

(编辑:阜阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读