单选题4.8 云原生架构3 / 12
正在加载题目…
系统集成项目管理工程师 · 第三版 · 第4章 信息系统架构
无状态应用还需要数据库吗?怎样理解把状态交给云服务?
12 道章节练习题
答案与解析
正确答案 B
“无状态”修饰的是这里的应用实例,不是说整个订单系统不存数据。数据和关键状态主要放到外部服务后,实例不再成为它们唯一的保存地点,更便于替换和扩展,所以B正确。
可以用“换掉这一台应用实例会丢什么”来检验理解。若唯一的购物车或会话只存在该实例内存里,换实例就可能中断用户操作;外置到合适的共享服务后,其他实例才有机会接续。可是状态并未消失,数据库、缓存仍需要相应的可靠性和一致性设计。临时计算变量不必全部外置,也不是把所有东西塞进缓存就安全了。本题已经给出关键状态可接续的前提,考的是职责分离,不承诺外置后零故障或零数据损失。
选项分析
- A
- 混淆应用实例和整个业务系统两个层次。题干明确订单存于数据库,无状态并没有取消持久化需求。
- B
- 准确说明状态被放在哪里,以及实例可替换的收益,同时保留对外部数据服务的依赖边界。
- C
- 把状态外置当成风险消失。应用仍依赖数据库和缓存提供服务,它们故障时业务也可能受影响。
- D
- 固定绑定某实例并不能消除对该实例的依赖;如果关键状态仍由它独占,退出风险依然存在。
容易混淆的地方
把“无状态应用”背成“不存数据的系统”,或只看到实例容易扩容,没有看到状态服务成为了重要依赖。
再巩固一步
- 不要只问有没有数据,要问数据由谁保存、是否被单个实例独占、实例更换后能否正确接续。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 4.8.2 · 纸书第192页查看完整题目与详解