1、微服务架构设计与实施指南目 录一、 编写概述11.1 范围11.2 规范说明11.3 术语解释2二、 微服务设计原则和架构42.1 微服务总体架构图42.1.1 微服务逻辑架构图42.1.2 微服务治理框架架构图52.2 微服务概念及特点62.3 微服务拆分原则72.4 微服务调用原则82.5 微服务架构演进原则9三、 微服务体系设计规范93.1 微服务网关93.1.1 网关环境管理93.1.2 网关服务管理93.1.3 网关 API 管理103.1.4 网关服务发现103.1.5 网关服务路由103.1.6 网关服务治理103.1.7 网关认证鉴权103.2 微服务治理113.2.1 服务注册发现113.2.2 服务路由管理113.2.3 服务负载均衡123.2.4 服务请求限流123.2.5 服务请求容错123.2.6 服务熔断隔离133.2.7 服务流量调拨133.2.8 服务认证鉴权143.3 微服务监控和告警143.3.1 服务日志采集143.3.2 服务基础监控153.3.3 服务调用链分析153.3.4 服务性能分析163.3.5 服务日志采集163.4 微服务容器平台1
2、73.4.1 K8S 集群管理173.4.2 K8S 集群节点管理173.5 微服务持续集成183.5.1 代码检出编译183.5.2 流水线管理183.5.3 容器镜像构建193.6 微服务部署193.6.1 服务持续部署193.6.2 配置模板管理203.6.3 灰度发布20四、 微服务工程设计规范204.1 微服务工程结构规范204.2 微服务工程命名规范204.3 微服务命名规范214.4 公共对象,工具包管理规范214.5 配置文件使用规范224.6 异常编码标准化224.7 微服务测试规范22五、 微服务开发设计规范235.1 通用规范和配置235.2 技术引入规范235.3 依赖包管理235.4 注释规范245.5 后端异常定义规范255.6 服务调用客户端规范275.7 日志框架及格式输出规范275.8 配置中心使用规范295.9 分布式事务使用规范29一、 编写概述1.1 范围本规范规定了各单位自建或委托第三方建设的微服务架构的应用,尤其是在华能新技术中台上集成的应用的开发、集成技术要求。本规范适用于微服务应用的设计、开发、测试、发布、升级维护等全生命周期管理。本规范
3、技术范围采用是中国信通院分布式应用架构技术能力要求第一部分:微服务平台的要求,规范从微服务架构、微服务管理平台和安全层面规定了微服务架构平台的技术规范和能力要求。1.2 规范说明本规范介绍了微服务的一些基本概念和特点,微服务的拆分原则和方式,设计目标以及微服务应用总体架构、运行视图和演进原则等。本规范中的微服务体系设计说明中为常见微服务体系设计的基本要求和常规要求,是保证微服务体系正常、安全运行的最低要求,因此在设计过程中应充分重视并合理规划实现方案。本规范中的接口设计规范是应用于微服务接口设计的顶层要求,所有实现业务的微服务模块公共接口原则上应符合规范中的要求。目前接口设计规范只包含适用范围最广的基于 HTTP 协议的设计规范,其他形式的接口设计规范,例如适合 Dubbo/gRPC 通信的二进制协议,将根据业务需求逐步补充,并完成本规范的版本迭代发布。本规范不设计实现具体业务的服务模块的公共接口说明,例如某数据查询服务的公共接口,它应由该服务的技术文档详细说明。301.3 术语解释描述或解释文档中出现的专业术语专有名词对应英文解释必备Must必须遵守该规范。该规范针对的内容将接受检查
4、和审核。推荐Should应该遵守该规范。该规范针对的内容将接受检查。参考Can这些规范旨在提高质量,无强制的标准。该规范针对的内容将不接受检查微服务Microservice微服务是一些协同工作的小而自治的服务,具有弹性扩展、简化部署、可组合等优点。一个微服务既可以是服务提供者,也可以是服务消费者。Spring BootSpring BootSpring Boot 是一种用于简化 Spring 应用的初始搭建以及开发过程的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板式的配置。Spring CloudSpring CloudSpring Cloud 是一系列框架的集合,利用 Spring Boot 开发简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。具象状态传输REST具象状态传输 (Representational State Transfer)是一种万维网软件架构设计风格,目的是便于不同程序在网络中互相传递信息。优点包括在软件技术演进中的长期兼容性
5、好等。应用监控Application Monitoring微服务的监控功能之一,监控应用的 QPS, 请求时间和🎧错情况等指标。AK/SK 密钥Accesskey/Secret keyAccess key/Secret key 是一组密钥对,用于 API 的身份认证和访问控制。熔断Circuit Breaker微服务之间通常存在依赖关系, 服务调用链路可能包含多个微服务,如果链路中一个或多个服务问延迟过高,会导致入口服务的请求不断堆积,持续消耗更多的线程、io 资源,最终由于资源累积使系统🎧现瓶颈,造成更多服务不可用,产生雪崩效应。熔断机制就是针对上述场景设计的,当某个目标服务响应缓慢或者有大量超时情况发生时,熔断该服务的调用,对于后续调用请求,不再继续调用目标服务,直接返回,快速释放资源,等到该目标服务情况好转再恢复调用。分布式事务Distributed Transaction分布式事务是指事务的参与者、 资源服务器以及事务管理器分别位于分布式系统的不同节点之上的事务。一般有两种分布式事务方案:基于 TCC 协议的最终一致性方案基于两阶段提交的强一致性
6、方案。容错Fault Tolarance容错是消费者访问服务时🎧现异常的场景下的一种处理策略,🎧现异常后由服务框架自动选择新的服务路由进行调用。负载均衡Load Balance当应用访问一个具有多个实例的微服务时,会涉及到路由负载均衡。SpringCloud 提供基于 Ribbon 的负载均衡方案,可以通过配置文件配置负载均衡策略,支持随机,轮询、会话保持和基于响应时间的权值等多种负载均衡路由策略。限流Rate Limit当资源成为瓶颈时,服务框架需要对消费者的访问请求做限流,启动流控保护机制。在服务消费者端和提供者端均可进行流量控制。在服务消费端,可以限制发往某个微服务提供者的请求频率;在服务提供端,可以限制每个微服务消费端发过来的请求频率,也可以根据服务提供端资源消耗情况确定总的请求频率限制,防止服务因资源耗尽而崩溃。降级Service Degrade服务降级主要包括屏蔽降级和容错降级两种策略:屏蔽降级是指当外界的触发条件达到某个临界值时,由运维人员/开发人员决策,对某类或者某个服务进行强制降级。容错降级是指当非核心服务不可用时,可以对故障服务做业务
7、逻辑放通,以保障核心服务的运行。DevOpsDevOpsDevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。MavenMavenMaven 是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven 利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。CICDCICD持续集成(CI-Continuous integration)是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并切相互不影响工作。持续部署(CD-continuous deployment) 是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表了一个开发团队的更新迭代速率。持续交付(Continuous Delivery)是在持续部署的基础之上,将产品交付到线上环境,因此持续
8、交付是产品价值的一种交付,是产品价值的一种盈利的实现。二、 微服务设计原则和架构2.1 微服务总体架构图2.1.1 微服务逻辑架构图图 1 微服务逻辑架构图说明:1) 云平台中的路由层作为应用系统集群对外暴露 API 的统一出口,包括为外网用户或应用系统,内网中其它用户或应用系统暴露 API(内网用户或其它系统可能部署在云平台其它集群中,也可能部署在虚拟机或 实体机上),并将相应的请求映射到网关集群中;2) 外部访问的请求通过路由层映射到网关集群后,在网关集群中做相应请求过滤,授权与鉴权,路由等操作,最终映射到相应的后端微服务中;3) 微服务业务和基础组件部署在容器云平台,对于数据库、缓存数据库、消息中间件等组件,部署于虚拟机中。2.1.2 微服务治理框架架构图图 2 微服务治理框架架构图说明:1) 微服务开发框架定义了用户开发微服务项目的技术栈和基础组件选型。框架基于 Spring Cloud 相关技术栈,用到的微服务基础组件,如 API 网关、注册中心、配置中心、链路追踪、服务监控等。其中 API 网关、 注册中心、链路追踪、监控需要在每个项目域部署。2) 微服务治理平台用于项目团队在线管理所有的微服务,包括服务管理、 API 网关管理、配置中心、在线监控等功能,是一站式的微服务管理、配置及监控平台。3) DevOps 提供了从代码仓库到容器云部署的整个 CICD 过程,包括编译、代码检查、发布私服、单元测试及覆盖率统计、自动化测试、发布等。4) 微服务规范指导提供了开发脚手架以及微服务开发规范、接口规范等,指导项目开发出符合集团要求的项目,保障公司架构的一致性,提高项目代码质量。5) 微服务框架、治理平台、DevOps 将微服务开发和治理的复杂性以平台的方式解决,降低微服务的门槛,使开发团队能专注于业务功能开发,带来更简单、高效、稳定的微服务解决方案。2.2 微服务概念及特点微服务架构(MSA)是一种服务化架构风格和设计模式,提倡将应用按照功能分解成一系列独立的服务,每个服务专注于单一的业务功能,服务之间边界清晰,采用轻量级通讯机制相互沟通、配合来实现上层更加完整的服务或应用,满足业务和用户的需求。微服务架构通过将功能分散到各个离散的服务中以实现对解决方案的解耦。业务需求的快速发展变化,敏捷性、
《2025微服务架构设计与实施指南》由会员职**分享,可在线阅读,更多相关《2025微服务架构设计与实施指南》请在金锄头文库上搜索。