c# - Azure Service Fabric 可靠服务状态?

标签 c# azure azure-service-fabric

我是 Azure Service Fabric 的新手,我正在尝试了解有状态服务的工作原理以及状态的管理方式。

假设一个具有这些副本的有状态服务:

  • 一个主要
  • 两个活跃的辅助
  • 一个闲置的辅助设备

有状态服务具有开放的通信端点,可以从许多无状态服务中调用该端点。当主副本更改状态时,更改将复制到两个事件的辅助副本。我说得对吗?

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

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

另外,我希望在主副本和事件辅助副本之间划分请求?除了专门标记为辅助副本的请求之外,所有请求都转到主副本?

最佳答案

Microsoft 网站上有大量有关此内容的文档。

但是基本原理似乎是:

  • 状态在多个副本中进行复制。
  • 交易用于复制状态
  • 主节点负责写入并向副本发送更新
  • 服务结构执行批处理以提高效率
  • 当主服务器因故障、负载平衡或升级而发生故障时,事件辅助服务器之一会在主服务器完成后立即接管。我的经验表明,一旦主节点即将宕机,您就无法保存任何状态。
  • 有多种方法可以读取事件的辅助节点,但我自己还没有这样做

据我所知,底线是设计服务时假设它们会失败,但一切都会正常运行。当主服务器出现故障时,其中一个辅助服务器几乎会立即接管。

关于c# - Azure Service Fabric 可靠服务状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38657033/

相关文章:

c# - 使用 ConcurrentExclusiveSchedulerPair 作为异步 ReaderWriterLock 等价物

c# - DebuggerEvents.OnEnterRunMode 事件在 Visual Studio 2012 中不起作用

azure - 在azure vm上运行ansible时出现库错误

AZURE - 将 VM ARM 模板保存到模板

azure - 尝试访问 Service Fabric 服务时出现 ERR_CONNECTION_TIMED_OUT

azure - 如何安装旧版本的azure service Fabric运行时?我需要5.6版本

c# - 使用微服务过程中的步骤向导 UI

c# - 莫名其妙的 MissingFieldException

function - 您可以使用Azure函数来触发Azure逻辑应用程序吗?

c# - WCF:在 IErrorHandler 中提供通用 FaultException