电商网站建设公司排名,wordpress博客500,制作流程图的网站,领地网做网站咋加文章接前一篇文章#xff1a;软考 系统架构设计师系列知识点之云原生架构设计理论与实践#xff08;13#xff09; 所属章节#xff1a;
第14章. 云原生架构设计理论与实践 第3节 云原生架构相关技术 14.3.2 云原生微服务
1. 微服务发展背景
2. 微服务设计约束
相较于单体应…接前一篇文章软考 系统架构设计师系列知识点之云原生架构设计理论与实践13 所属章节
第14章. 云原生架构设计理论与实践 第3节 云原生架构相关技术 14.3.2 云原生微服务
1. 微服务发展背景
2. 微服务设计约束
相较于单体应用微服务架构的架构转变在提升开发、部署等环节灵活性的同时也提升了在运维、监控环节的复杂性。设计一个优秀的微服务系统应遵循以下设计约束
1微服务个体约束
2微服务与微服务之间的横向关系
3微服务与数据层之间的纵向约束
在微服务领域提倡数据存储隔离Data Storage SegregationDSS原则即数据是微服务的私有资产对于该数据的访问都必须通过当前微服务提供的API来访问。如若不然则造成数据层产生耦合违背了高内聚低耦合的原则。同时出于性能考虑通常采取读写分离CQRS手段。同样由于容器调度对底层设施稳定性的不可预知影响微服务的设计应当尽量遵循无状态设计原则这意味着上层应用与底层基础设施的解耦微服务可以自由在不同容器间被调度。对于有数据存取即有状态的微服务而言通常使用计算与存储分离方式将数据下沉到分布式存储通过这个方式做到一定程度的无状态化。
4全局视角下的微服务分布式约束
从微服务设计一开始就需要考虑以下因素高效运维整个系统从技术上要准备全自动化的CI/CD流水线以满足对开发效率的诉求并在这个基础上支持蓝绿、金丝雀等不同发布策略以满足对业务发布稳定性的诉求。面对复杂系统全链路、实时和多维度的可观测能力成为标配。为了及时、有效地防范各类运维风险需要从微服务体系多种事件源汇聚并分析相关数据然后在中心化的监控系统中进行多维度展现。伴随着微服务拆分的持续故障发现时效性和根因精确性始终是开发运维人员的核心诉求。
3. 主要微服务技术
1Apache Dubbo
Apache Dubbo作为源自阿里巴巴的一款开源高性能RPC框架特性包括基于透明接口的RPC、智能负载均衡、自动服务注册和发现、可扩展性高、运行时流量路由与可视化的服务治理。经过数年发展已是国内使用最广泛的微服务框架并构建了强大的生态体系。为了巩固Dubbo生态的整体竞争力2018年阿里巴巴陆续开源了Spring Cloud Alibaba分布式应用框架、Nacos注册中心、配置中心、Sentinel流控防护、Seata分布式事务、Chaosblade故障注入以便让用户享受阿里巴巴十年沉淀的微服务体系获得简单易用、高性能、高可用等核心能力。Dubbo在v3中发展服务网格ServiceMesh目前Dubbo协议已经被Enovy支持数据层选址、负载均衡和服务治理方面的工作还在继续控制层目前在继续丰富Istio/Pilot-discovery中。
2Spring Cloud
Spring Cloud作为开发者的主要微服务选择之一为开发者提供了分布式系统需要的配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话与集群状态管理等能力和开发工具。
3Eclipse MicroProfile
Eclipse MicroProfile作为Java微服务开发的基础编程模型其致力于定义企业Java微服务规范。MicroProfile提供指标、API文档、运行状况检查、容错与分布式跟踪等能力使用它创建的云原生微服务可以自由地部署在任何地方包括服务网格架构。
4Tars
Tars是腾讯将其内部使用的微服务框架TAFTotal Application Framework多年的实践成果总结而成的开源项目在腾讯内部有上百个产品使用服务内部数千名C、Java、Golang、Node.Js和PHP开发者。Tars包含一整套开发框架与管理平台兼顾多语言、易用性、高性能与服务治理理念是让开发者更聚焦业务逻辑让运维更高效。
5SOFAStack
SOFAStackScalable Open Financial Architecture Stack是由蚂蚁金服开源的一套用于快速构建金融级分布式架构的中间件也是在金融场景里的最佳实践。MOSN是SOFAStack的组件它是一款采用Go语言开发的服务网格数据平面代理功能和定位类似Enovy旨在提供分布式、模块化、可观测、智能化的代理能力。MOSN支持Enovy和Istio的API可以和Istio集成。
6DAPR
DAPRDistributed Application Runtime分布式应用运行时是微软新推出的一种可移植的、无服务器的、事件驱动的运行时它使开发人员可以轻松构建弹性、无状态和有状态微服务这些服务运行在云和边缘上并包含多种语言和开发框架。 至此“14.3.2 云原生微服务”的全部内容就讲解完了。更多内容请看下回。