首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务结构可靠收集服务升级后的数据丢失

服务结构可靠收集服务升级后的数据丢失
EN

Stack Overflow用户
提问于 2017-02-22 15:13:29
回答 1查看 769关注 0票数 0

为什么在微服务升级之后可靠的集合是空的,并且没有调用事件OnDataLossAsync从外部备份恢复状态?

我们有基于状态服务的大规模系统。

代码语言:javascript
复制
<StatefulServiceType ServiceTypeName="UserServiceType" HasPersistedState="true" />

HasPersistedState被设置为true,并且在VM失败的情况下,数据在副本中复制,数据仍然有效,并且使用OnDataLossAsync恢复,但升级后集合为空。

我已经尝试了所有升级选项(删除,保留,自动升级)应用程序,结果相同-集合是空的。

目前,我们决定将数据复制到blob存储中,并在服务更新(这并不是完美的解决方案)之后恢复它,数据恢复需要几分钟时间,使某些服务在那个时候不可用/不一致。

因此,我们正在寻找的解决方案,允许保存数据后,升级。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-22 22:57:22

升级有状态服务会使而不是按设计删除可靠集合中的数据。整个service平台就是围绕着解决这个问题而构建的,它通过滚动的状态服务升级来解决。

我猜你不是真的在执行滚动升级,而是在删除和重新创建服务。这就是模式中默认的“移除应用程序”设置所做的--当您停止调试(从而删除状态)时,它将删除应用程序。“自动升级”选项不会删除应用程序,下次按F5时将自动为您执行滚动升级。如果您的状态在这种情况下消失了,那么我敢打赌您的服务代码中肯定有一个bug。尝试使用一个全新的有状态服务项目。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42395345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档