Azure服务结构可靠的服务状态?

时间:2016-07-29 10:54:05

标签: c# azure azure-service-fabric

我是azure服务架构的新手,我正在努力了解有状态服务如何运作以及如何管理状态。

让我们说这些副本有一个有状态的服务:

  • 一个主要
  • 两个活跃的二级
  • 一个空闲的二级

有状态服务具有开放的通信端点,该端点从无状态服务的数量调用。当主副本更改状态时,更改将复制到两个活动的辅助副本。我是对的吗?

是否可以从其中一个无状态服务调用辅助副本,或者只有主副本可以接受请求?

如果可以调用辅助副本,那么在主副本更改状态时会收到通知吗?我厌倦了StateManagerChanged和DictionaryChanged,但只在主副本上调用?

另外,我想在主要副本和活动副本之间分配请求吗?除了专门标记为辅助副本的主要副本之外,所有内容都会转到主要副本吗?

1 个答案:

答案 0 :(得分:2)

Microsoft网站上有很多关于此的文档。

然而,基本知识似乎是:

  • 状态被复制到多个副本中。
  • 交易用于复制州
  • 主要负责编写副本并向副本发送更新
  • 服务结构为了提高效率而进行批量处理
  • 当主服务器因故障,负载平衡或升级而发生故障时,主服务器中的一个会在主服务器完成后立即接管。我对此的体验表明,一旦初级即将失败,您就无法保存任何州。
  • 有很多方法可以阅读活跃的辅助词,但我自己还没有这样做

据我所知,最重要的是设计服务以假设它们会失败并且一切都会运作良好。当主要人员失败时,其中一个辅助人员几乎会立即接管。