首页 > 其他分享 >软考 系统架构设计师系列知识点之云原生架构设计理论与实践(14)

软考 系统架构设计师系列知识点之云原生架构设计理论与实践(14)

时间:2024-04-02 10:31:27浏览次数:22  
标签:原生 知识点 架构 14 运维 架构设计 Dubbo 服务 分布式

接前一篇文章:软考 系统架构设计师系列知识点之云原生架构设计理论与实践(13)

所属章节:

第14章. 云原生架构设计理论与实践

          第3节 云原生架构相关技术

14.3.2 云原生微服务

1. 微服务发展背景

2. 微服务设计约束

相较于单体应用,微服务架构的架构转变,在提升开发、部署等环节灵活性的同时,也提升了在运维、监控环节的复杂性。设计一个优秀的微服务系统应遵循以下设计约束

(1)微服务个体约束

(2)微服务与微服务之间的横向关系

(3)微服务与数据层之间的纵向约束

在微服务领域,提倡数据存储隔离(Data Storage Segregation,DSS)原则即数据是微服务的私有资产,对于该数据的访问都必须通过当前微服务提供的API来访问。如若不然,则造成数据层产生耦合,违背了高内聚低耦合的原则。同时,出于性能考虑,通常采取读写分离(CQRS)手段。同样,由于容器调度对底层设施稳定性的不可预知影响,微服务的设计应当尽量遵循无状态设计原则,这意味着上层应用与底层基础设施的解耦,微服务可以自由在不同容器间被调度。对于有数据存取(即有状态)的微服务而言,通常使用计算与存储分离方式,将数据下沉到分布式存储,通过这个方式做到一定程度的无状态化。

(4)全局视角下的微服务分布式约束

从微服务设计一开始就需要考虑以下因素:高效运维整个系统,从技术上要准备全自动化的CI/CD流水线,以满足对开发效率的诉求,并在这个基础上支持蓝绿、金丝雀等不同发布策略,以满足对业务发布稳定性的诉求。面对复杂系统,全链路实时多维度的可观测能力成为标配。为了及时、有效地防范各类运维风险,需要从微服务体系多种事件源汇聚并分析相关数据,然后在中心化的监控系统中进行多维度展现。伴随着微服务拆分的持续,故障发现时效性和根因精确性始终是开发运维人员的核心诉求

3. 主要微服务技术

(1)Apache Dubbo

Apache Dubbo作为源自阿里巴巴的一款开源高性能RPC框架,特性包括基于透明接口的RPC、智能负载均衡、自动服务注册和发现、可扩展性高、运行时流量路由与可视化的服务治理。经过数年发展,已是国内使用最广泛的微服务框架并构建了强大的生态体系。为了巩固Dubbo生态的整体竞争力,2018年阿里巴巴陆续开源了Spring Cloud Alibaba(分布式应用框架)、Nacos(注册中心、配置中心)、Sentinel(流控防护)、Seata(分布式事务)、Chaosblade(故障注入),以便让用户享受阿里巴巴十年沉淀的微服务体系,获得简单易用、高性能、高可用等核心能力。Dubbo在v3中发展服务网格(ServiceMesh),目前Dubbo协议已经被Enovy支持,数据层选址、负载均衡和服务治理方面的工作还在继续,控制层目前在继续丰富Istio/Pilot-discovery中。

(2)Spring Cloud

Spring Cloud作为开发者的主要微服务选择之一,为开发者提供了分布式系统需要的配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话与集群状态管理等能力和开发工具。

(3)Eclipse MicroProfile

Eclipse MicroProfile作为Java微服务开发的基础编程模型,其致力于定义企业Java微服务规范。MicroProfile提供指标、API文档、运行状况检查、容错与分布式跟踪等能力,使用它创建的云原生微服务可以自由地部署在任何地方,包括服务网格架构。

(4)Tars

Tars是腾讯将其内部使用的微服务框架TAF(Total Application Framework)多年的实践成果总结而成的开源项目,在腾讯内部有上百个产品使用,服务内部数千名C++、Java、Golang、Node.Js和PHP开发者。Tars包含一整套开发框架与管理平台,兼顾多语言、易用性、高性能与服务治理,理念是让开发者更聚焦业务逻辑,让运维更高效。

(5)SOFAStack

SOFAStack(Scalable Open Financial Architecture Stack)是由蚂蚁金服开源的一套用于快速构建金融级分布式架构的中间件,也是在金融场景里的最佳实践。MOSN是SOFAStack的组件,它是一款采用Go语言开发的服务网格数据平面代理,功能和定位类似Enovy,旨在提供分布式、模块化、可观测、智能化的代理能力。MOSN支持Enovy和Istio的API,可以和Istio集成。

(6)DAPR

DAPR(Distributed Application Runtime,分布式应用运行时)是微软新推出的一种可移植的、无服务器的、事件驱动的运行时,它使开发人员可以轻松构建弹性、无状态和有状态微服务,这些服务运行在云和边缘上,并包含多种语言和开发框架。

至此,“14.3.2 云原生微服务”的全部内容就讲解完了。更多内容请看下回。

标签:原生,知识点,架构,14,运维,架构设计,Dubbo,服务,分布式
From: https://blog.csdn.net/phmatthaus/article/details/137251849

相关文章

  • kerberos-MS14-068(kerberos域用户提权)
    微软官方在2014年11月18日发布了一个紧急补丁,Windows全版本服务器系统受到影响,包括WindowsServer2003,WindowsServer2008,WindowsServer2008R2,WindowsServer2012和WindowsServer2012R2,修复了MicrosoftWindowsKerberosKDC(CVE-2014-6324),该漏洞可导致活动目录整体权......
  • Gitlab渗透的深入利用及知识点总结
    一、版本探测http://url/assets/webpack/manifest.json 将该json与GitHub某个数据库比对https://github.com/righel/gitlab-version-nse/blob/main/gitlab_hashes.json获取对应的版本信息二、常见漏洞给一个大佬总结的很全的清单:https://www.moonsec.com/7495.html这里......
  • 【软考---系统架构设计师】信息系统战略规划
    企业系统规划法:自上而下规划,自下而上实现战略集合转化法:将整个过程看做一个信息集合,将组织的战略目标转标为管理信息系统的战略目标关键成功因素法:确定开发优先次序 ......
  • ARC149C (构造)
    比较有意思的构造题,首先想到要使两个数相加为合数,可以让奇数加上奇数,偶数加上偶数,那么这样我们可以使一个数组的上半边全部为奇数,下半边全部为偶数。然后考虑临界。构造题我虽然不是特别会做,但我觉得一个很重要的就是避免过多的讨论,这样的话我们可以在这行枚举相邻两个数的和,然后......
  • Day5之,原来数据类型还有这么多知识点
    Day5数据类型扩展知识关于数据类型的拓展知识二进制数是在数字前加上0b,八进制是加上0,十六进制是加上0xpublicstaticvoidmain(String[]args){//整数拓展进制二进制0b、八进制0、十六进制0xinti=10;inti2=010;//八进制inti......
  • 软件架构设计案例
               ......
  • 2024/4/1 愚人节上课前14点
    昨天看的塔菲讲的插入排序packagecom.atguigu.boot3web.demos.web;importjava.util.Arrays;publicclassInsertSort{publicstaticvoidinsertSort(int[]arr){for(inti=1;i<arr.length;i++){intkey=arr[i];intj=i-1;......
  • Imagemagick 命令注入漏洞(CVE-2016-3714)
    Imagemagick命令注入漏洞(CVE-2016-3714)漏洞介绍漏洞名称:Imagemagick命令注入漏洞(CVE-2016-3714)漏洞定级:高危漏洞描述:ImageMagick在处理恶意构造的图片文件时,对于文件中的URL未经严格过滤,可导致命令注入漏洞。通过命令注入漏洞,黑客可以在服务器上执行任意系统命令,获取服务......
  • NASA数据集——2014 年、2015 年和 2017 年北美地区土壤地球物理属性值(源层厚度 (ALT)
    ABoVE:AirSWOTColor-InfraredImageryOverAlaskaandCanada,2017简介文件修订日期:2019-04-25数据集版本:1摘要本数据集提供了根据2014年、2015年和2017年8月和10月在阿拉斯加北部12个研究地点(除个别地点外)采集的机载次冠层和次表层微波观测站(AirMOSS)P......
  • [Python]知识点
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18031984出自【进步*于辰的博客】注:本文可能不适合0-Python基础的博友,因为对于各类知识点,我阐述的宗旨是“阐明使用细节”,而不是基础知识。目录1、其他知识点链接2、pip......