每日打卡题186-190答案
186、Mesh 化架构是把( )从业务进程中分离,分离后在业务进程中只保留很“薄”的Client部分,Client 通常很少变化,只负责与 Mesh进程通信,原来需要在SDK中处理的流量控制、安全等逻辑由Mesh进程完成。
A.业务逻辑 B.网络连接池 C.通信组件 D.中间件
答案: D
解析:Mesh 化架构是把中间件框架(如RPC、缓存、异步消息等)从业务进程中分离,让中间件SDK与业务代码进一步解耦,从而使得中间件升级对业务进程没有影响,甚至迁移到另外一个平台的中间件也对业务透明。分离后在业务进程中只保留很“薄”的Client部分,Client 通常很少变化,只负责与 Mesh进程通信,原来需要在SDK中处理的流量控制、安全等逻辑由Mesh进程完成。
187、 分布式环境中的CAP困难主要是针对有状态应用,因为无状态应用不存在C(一致性)这个维度,因此可以获得很好的A(可用性)和P(分区容错性),因而获得更好的弹性。在云环境中,哪些数据不推荐采用云服务来保存来实现存储计算分离。
A.暂态数据(如session) B.结构化和非结构化持久数据 C.交易订单的状态 D.热点数据缓存
答案: D
解析:分布式环境中的CAP困难主要是针对有状态应用,因为无状态应用不存在C(一致性)这个维度,因此可以获得很好的A(可用性)和P(分区容错性),因而获得更好的弹性。在云环境中,推荐把各类暂态数据(如session)、结构化和非结构化持久数据都采用云服务来保存从而实现存储计算分离。但仍然有一些状态如果保存到远端缓存,会造成交易性能的明显下降,比如交易会话数据太大、需要不断根据上下文重新获取等,这时可以考虑通过采用时间日志+快照(或检查点)的方式,实现重启后快速增量恢复服务,减少不可用对业务的影响时长。
188、下列关于分布式事务模式叙述有误的是:( )
A.传统采用 XA 模式,虽然具备很强的一致性,但是性能差。
B.基于消息的最终一致性(BASE)通常有很高的性能,也具有很高的通用性。
C.TCC模式完全由应用层来控制事务,事务隔离性可控,也可以做到比较高效;但是对业务的侵入性非常强,设计开发维护等成本很高。
D.SAGA 模式与 TCC模式的优缺点类似但没有try这个阶段,而是每个正向事务都对应一个补偿事务,也是开发维护成本高。
答案: B
解析:微服务模式提倡每个服务使用私有的数据源,而不是像单体这样共享数据源,但往往大颗粒度的业务需要访问多个微服务,必然带来分布式事务问题,否则数据就会出现不一致。架构师需要根据不同的场景选择合适的分布式事务模式。
(1)传统采用XA模式,虽然具备很强的一致性,但是性能差。
(2)基于消息的最终一致性(BASE)通常有很高的性能,但是通用性有限。
(3)TCC模式完全由应用层来控制事务,事务隔离性可控,也可以做到比较高效:但是对业务的侵入性非常强,设计开发维护等成本很高。
(4)SAGA模式与TCC模式的优缺点类似但没有ty这个阶段,而是每个正向事务都对应一个补偿事务,也是开发维护成本高。
(5)开源项目SEATA的 AT模式非常高性能且无代码开发工作量,且可以自动执行回滚操作,同时也存在一些使用场景限制。
189、 下列选项哪个不适合用于事件驱动架构:( )
A.事件流处理 B.数据变化通知 C.CQRS D.增强服务可靠性
答案: D 解析:事件驱动架构不仅用于(微)服务解耦,还可应用于下面的场景中。
(1)增强服务韧性:由于服务间是异步集成的,也就是下游的任何处理失败甚至宕机都不会被上游感知,自然也就不会对上游带来影响。
(2)CQRS(Command Query Responsibility Segregation):把对服务状态有影响的命令用事件来发起,而对服务状态没有影响的查询才使用同步调用的API接口;结合EDA中的Event Sourcing机制可以用于维护数据变更的一致性,当需要重新构建服务状态时,把 EDA 中的事件重新“播放”一遍即可。
(3)数据变化通知:在服务架构下,往往一个服务中的数据发生变化,另外的服务会感兴趣,比如用户订单完成后,积分服务、信用服务等都需要得到事件通知并更新用户积分和信用等级。
(4)构建开放式接口:在EDA下,事件的提供者并不用关心有哪些订阅者,不像服务调用的场景–数据的产生者需要知道数据的消费者在哪里并调用它,因此保持了接口的开放性。
(5)事件流处理:应用于大量事件流(而非离散事件)的数据分析场景,典型应用是基于Kafka 的日志处理。
190、以下关于Serverless 计算的特征不正确的是:( )
A.关注运维复杂度 B.全托管的计算服务 C.通用性 D.自动弹性伸缩
答案: A
解析:Serverless 计算包含以下特征:
(1)全托管的计算服务,客户只需要编写代码构建应用,无需关注同质化的、负担繁重的基于服务器等基础设施的开发、运维、安全、高可用等工作;
(2)通用性,结合云BaaSAPI的能力,能够支撑云上所有重要类型的应用:
(3)自动弹性伸缩,让用户无需为资源使用提前进行容量规划:
(4)按量计费,让企业使用成本得有效降低,无需为闲置资源付费。