搜索引擎友好网站表现,做育儿类网站用什么程序好,建设网站主机免费的怎么下载,购物app首页ui设计接前一篇文章#xff1a;软考 系统架构设计师系列知识点之云原生架构设计理论与实践#xff08;7#xff09; 所属章节#xff1a;
第14章. 云原生架构设计理论与实践 第2节 云原生架构内涵 14.2 云原生架构内涵
关于云原生的定义有众多版本#xff0c;对于云原生架构的…接前一篇文章软考 系统架构设计师系列知识点之云原生架构设计理论与实践7 所属章节
第14章. 云原生架构设计理论与实践 第2节 云原生架构内涵 14.2 云原生架构内涵
关于云原生的定义有众多版本对于云原生架构的理解也不尽相同。本节将根据广泛的云原生技术、产品和上云实践给出一般性的理解。
14.2.3 主要架构模式
云原生架构有非常多的架构模式这里选取一些对应用收益更大的主要架构模式进行讨论。
1. 服务化架构模式
2. Mesh化架构模式
3. Serverless模式
Serverless将“部署”这个动作从运维中“收走”使开发者不用关心应用运行地点、操作系统、网络配置、CPU性能等。从架构抽象上看当业务流量到来/业务事件发生时云会启动或调度一个已启动的业务进程进行处理处理完成后云会自动关闭/调度业务进程等待下一次触发也就是把应用的整个运行都委托给云。
Serveless并非适用任何类型的应用因此架构决策者需要关心应用类型是否适合于Serverless运算。如果应用是有状态的由于Serverless的调度不会帮助应用做状态同步因此云在进行调度时可能导致上下文丢失如果应用是长时间后台运行的密集型计算任务会无法发挥Serverless的优势如果应用涉及频繁的外部I/O网络或者存储以及服务间调用会因为繁重的I/O负担、时延大而不合适。事件驱动架构图如图14-2所示 Serverless非常适合于事件驱动的数据计算任务、计算时间短的请求/响应应用、没有复杂相互调用的长周期任务。
4. 存储计算分离模式
分布式环境中的CAP困难主要是针对有状态应用因为无状态应用不存在C一致性这各维度因此可以获得很好的A可用性和P分区容错性因而获得更好的弹性。在云环境中推荐把各类暂态数据如session、结构化和非结构化持久数据都采用云服务来保存从而实现存储计算分离。但仍然有一些状态如果保存到远端缓存会造成交易性能的明显下降比如交易会话数据太大、需要不断根据上下文重新获取等这时可以考虑通过采用时间日志快照或检查点的方式实现重启后快速增量恢复服务减少不可用对业务的影响时长。
5. 分布式事务模式
微服务模式提倡每个服务使用私有的数据源而不是像单体这样共享数据源。但往往大颗粒度的业务需要访问多个微服务必然带来分布式事务问题否则数据就会出现不一致。架构师需要根据不同的场景选择合适的分布式事务模式。
1传统采用XA模式虽然具备很强的一致性但是性能差。
2基于消息的最终一致性BASE通常有很高的性能但是通用性有限。
3TCC模式完全由应用层来控制事务事务隔离性可控也可以做到比较高效但是对业务的侵入性非常强设计开发维护等成本很高。
4SAGA模式与TCC模式的优缺点类似但没有try这个阶段而是每个正向事务都对应一个补偿事务也是开发维护成本高。
5开源项目SEATA的AT模式非常高性能且无代码开发工作量且可以自动执行回滚操作同时也存在一些使用场景限制。 更多内容请看下回。