我是Service Fabric的新手。
Service Fabric是否建议仅使用Reliable Collections存储应用程序的所有数据?
如果我使用SQL DB来保存所有业务数据并使用Reliable Collection懒惰地持久保存到SQL DB以进行集成,该怎么办?在DDD之后,如果我将我的聚合持久保存到SQL DB并在可靠集合中保留一个条目以与其他Bounded Context进行通信。这种方法会有任何问题吗?
答案 0 :(得分:1)
Service Fabric不建议将所有日期存储在Reliable Collections中。这是你的选择。 Service Fabric在多个层面为您提供如何做事的自由。
您可以使用外部数据库(如SQL DB或DocumentDB或任何其他内容)并将有状态服务用作缓存。或者使用有状态服务作为主存储,并且根本不使用外部数据库。
即使Reliable Collection的使用有限(它的键/值存储没有有效的查询接口而不是循环所有数据),它具有内部存储(性能)的优点,并且具有良好的故障保护机制(定义辅助实例,尽可能多)。不应忘记分区功能。
我个人倾向于最小化外部依赖性。外部DB是依赖项。但是,如果您对应用程序的要求具有广泛的查询功能,请继续使用。
答案 1 :(得分:0)
根据微软的说法
将可靠的演员视为交易系统。服务面料 可靠的Actors不是提供ACID的两阶段提交系统。 如果我们不实现可选的持久性,那么机器就可以了 演员正在死亡,它的当前状态将随之而来。演员 将会非常快地在另一个节点上出现,但除非我们有 实施支持持久性,状态将消失。然而, 在利用重试,重复过滤和/或幂等之间 设计,您可以实现高水平的可靠性和一致性。