|
|
51CTO旗下网站
|
|
移动端

2.3.6.3 服务分区和故障恢复

《Microsoft Azure 管理与开发(下册)平台服务PaaS》本书由世纪互联蓝云Microsoft Azure 开发技术支持团队的资深工程师们编写,主要阐述MicrosoftAzure PaaS 服务的开发应用,涉及计算服务、集成认证服务、数据存储服务、大数据服务等方面的内容。本节为大家介绍服务分区和故障恢复。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-12 18:02

2.3.6.3 服务分区和故障恢复

在Reliable Service 章节中,了解到这种服务类型可以允许选择分区方案,例如设置分区键的范围和分区计数。而Reliable Actors 则只能使用一种分区方案,那就是UniformInt64Partition,在默认情况下,Actor 会被随机放到分区中,形成统一分布,如图2.3.6-7。

Reliable Actors 在创建Actor 时,会生成一个与之关联的唯一ID,并且使用ActorId 类表示,ActorId 是一个不透明的ID 值,可以随机生成,也可以自定义ID 值,Reliable Actors会使用Hash 算法将ActorId 转换为Int64 类型值,之后通过转换后的Int64 值来映射到相应的分区。因此Reliable Actors 只能够使用UniformInt64Partition 分区方案。

随机生成ActorId,代码示例:

  1. ActorProxy.Create<IMyActor>(ActorId.CreateRandom()); 

自定义ActorId,代码示例:

  1. ActorProxy.Create<IMyActor>(new ActorId(Guid.NewGuid()));  
  2. ActorProxy.Create<IMyActor>(new ActorId("myActorId"));  
  3. ActorProxy.Create<IMyActor>(new ActorId(1234)); 

当自定义ActorId 值时,可以使用Guid、字符串和Int64 数字。当使用Guid,字符串都会经过Hash 算法转换成Int64;当直接使用Int64 作为ActorId 时,就不再进行Hash 算法转换,Reliable Actors 将直接使用该值映射分区。所以如果想要手动控制Actor 所在分区时,可以使用该方法来设置。

Reliable Actors 故障恢复与Reliable Service 是类似的,在Reliable Actors 服务中,每个Actor 都存在多个副本,但只有主副本工作,多个副本的状态数据会进行同步。当主副本出现问题时,就会选择一个副本作为新的主副本,并在新副本中启动Actor,然后还原状态。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员必读—网络应用(第2版)

本书虽然是《网管员必读—网络应用》的改版,但它绝不是简单的修改,而是完完全全的重写,内容更实用、更专业。全书共9章,13个大小方案,...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊