【发布时间】:2017-10-19 00:03:02
【问题描述】:
我一直在考虑将服务结构用作我们正在构建的新解决方案的平台,并且我对数据/阶段管理很感兴趣。我真的很喜欢可靠服务和参与者模型的概念,而且我们已经开始对一些东西进行原型设计,它似乎运作良好。
有人说我对状态管理以及如何在“真实”项目中使用它感到困惑。我也有点担心数据感觉就像一个黑匣子,如果需要,我无法直接询问或操作。我考虑过的几个场景是:
如何在项目的两个开发人员之间共享状态?我有一个演员,只要我在调试演员,我的状态就会被维护、复制等。但是当我关闭它时,状态就会全部丢失。更重要的是,我团队中的其他人需要设置与我相同的数据,这对于交易数据来说很好 - 但某些“主”数据应该是不变的。
同样,我很好奇如何在环境之间迁移数据更改。今天,我们会定期从 SQL Azure 实例中提取生产数据以保持测试环境的新鲜度,我们还会根据发布的要求不时推送更改。
我看过备份和恢复的过程,但是感觉很麻烦,尤其是在开发场景中。要求某人(或编写脚本)恢复每个有状态服务的每个分区似乎是一项相当多的工作。
我认为这两个问题的答案是我可以使用有状态服务,但我需要依赖外部数据存储来存储我想要保留的任何内容。该服务将在激活时检查状态,并将有状态服务几乎用作直写缓存。我并不是说这需要是一个统一的设计选择,更多的是基于服务的服务 - 取决于服务需求。
听起来对吗,我是不是想多了,遗漏了什么等等?
谢谢
乔
【问题讨论】: