基于网关服务治理的研究与实践(二)服务治理

简介: 接上篇,本篇原创系列是对服务治理的相关背景说明,主要介绍了服务治理相关概念、技术及演进历程。

2 服务治理

上一篇介绍了微服务架构相关内容,微服务架构虽然拥有诸多的优势,但也面临着诸多的困难和挑战,其中服务治理是一个永恒的难题,也是下一代微服务架构所要解决的问题。

 

2.1 服务治理是一门技术架构领域

服务治理是一门技术架构领域,它与技术架构本身息息相关,在架构演进的过程中,始终保持着对服务治理的要求,如2-1图架构演进:

image.png

图2-1架构演进

单体架构:通俗的讲,单体架构就是一个应用程中包含了一个系统所有的功能,其特点有功能集中、代码和数据中心化、一个发布包、部署后运行在同一进程中;而其缺点也非常严重,如耦合性高、技术债务、扩展能力有限、维护困难、无法快速创新。

 

垂直架构:典型的是MVC模型架构,也称分层架构,它解决了界面层、控制逻辑层和业务层、前后端分层问题,但其仍是一个应用工程,即全部功能集成在一个工程中,对于大型项目不易开发、扩展及维护。系统性能扩展只能通过扩展集群结点,成本高、有瓶颈。

 

分布式服务架构(RPCRPC解决了模块之间跨进程通信的问题,该架构主要用于屏蔽底层通信框架和序列化框架的实现。

 

面向服务架构(SOA随着垂直应用越来越多,应用与应用之间交互不可避免,将核心业务抽取出来,把业务逻辑抽象成可复用、可组装的独立服务,逐渐形成稳定的服务中心,从而实现业务逻辑的快速复用,使前端应用能更快速的响应多变的市场需求。可以看出SOA架构具有分布式、可重用、扩展灵活、松耦合特点,其优点包括抽取公共的功能作为服务,可提高开发效率;对不同的服务进行集群化部署解决系统压力;基于服务总线ESB模式减少系统耦合。缺点是过度依赖服务总线,服务提供方与调用方有一定的耦合。


微服务架构:在上节中重点介绍了微服务架构模式,此处不在介绍。


2.2 为什么需要服务治理

从架构演进的角度上看,我认为架构主要围绕“分”、“管”、“控”三个方面进行相关设计,也是一直以来我们所面对的问题和挑战。以下对这三个方面进行简述:

分:服务设计与拆分;以微服务架构为例,如何对微服务拆分和设计非常关键,拆分的方面包括:业务拆分、服务拆分、数据拆分、代码拆分;拆分粒度大小如何定夺,拆分的原则如何定义等等。

 

管:多服务运维管理;随着业务的快速发展,微服务拆分,服务的规模也越来越大,此时带来的运维成本也越来越高,单服务流量激增时扩容,调用链条变长,调用关系更加复杂,故障点增多等。

 

控:不稳定的网络环境;分布式系统的复杂性,也影响了服务的稳定性,系统运行过程中难免存在网络超时的情况,可能会造成网络请求积压,继而导致整个服务线崩塌。

 

2.3 什么是服务治理

服务治理,按照Anne Thomas Manes的定义是:企业为了确保事情顺利完成而实施的过程。从服务治理的广义层面,服务治理包括四个方面:业务、组织、系统、技术,即业务决定组织,组织的价值是为业务赋能;组织决定了系统的目标,系统是对业务和组织效能的重要体现;技术是实现业务系统的手段,决定了系统的成败。如图2-2服务治理的四象限。

 

image.png

图2-2 服务治理四象限

2.4 如何进行服务治理

1)服务调用:管理由谁来调用服务、怎样调用服务。

2)流量管理:根据流量的特征,控制服务分发;

3)服务生命周期管控:确保升级服务不会影响目前的服务;

4)服务规范:所有服务都要遵从一定的规则,确保服务的一致性;

5)服务监控:监控服务的性能和可用性,当问题出现的时能马上采取应对措施;

 

2.5 服务治理达到什么样的目的

1)实现服务高度自治和可运营;

2)执行和控制分离,

3)虚拟化、标准化、产品化,定义规范。


2.6 服务治理的实现

目前主流的服务治理框架有Spring Cloud框架、Dubbo框架及Service Mesh框架,本系列文章以Spring Cloud框架为基础,从服务网关的角度研究与实现服务治理。

服务网关除了提供服务认证鉴权及安全过滤核心功能外,并能通过服务网关整合服务治理、服务编排,结合服务熔断机制优化系统。服务治理主要解决服务之间的依赖性,降低耦合性,隔离内部和外部服务,统一对外提供接口,禁止直接访问内部数据,增加系统安全性。服务治理的功能主要包括路由管理、路由转换、访问控制、黑白名单、API管理、流量限额、服务埋点、服务熔断等功能,通过服务治理为整个业务系统的统一入口提供可靠保护。

相关文章
|
1月前
|
监控 安全 应用服务中间件
微服务架构下的API网关设计策略与实践####
本文深入探讨了在微服务架构下,API网关作为系统统一入口点的设计策略、实现细节及其在实际应用中的最佳实践。不同于传统的摘要概述,本部分将直接以一段精简的代码示例作为引子,展示一个基于NGINX的简单API网关配置片段,随后引出文章的核心内容,旨在通过具体实例激发读者兴趣,快速理解API网关在微服务架构中的关键作用及实现方式。 ```nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://backend_service:5000;
|
7月前
|
敏捷开发 负载均衡 监控
探索微服务架构下的API网关设计与实践
【5月更文挑战第31天】本文将深入剖析微服务架构中的关键组件——API网关,探讨其设计理念、核心功能以及在实际项目中的应用。我们将从API网关的基本概念出发,逐步展开对其路由、负载均衡、认证授权、监控日志等方面的详细讨论,并结合实际案例,分析如何高效地实现和管理一个稳定的API网关。
|
7月前
|
缓存 监控 安全
微服务架构下的API网关设计与实践
【5月更文挑战第31天】本文深入探讨了在微服务架构中,API网关的核心作用与设计策略。通过分析网关的职责、选型标准及实现细节,文章为读者提供了一套完整的API网关解决方案。同时,结合具体案例,展示了如何在实际应用中有效部署和优化API网关,确保系统的高可用性和可扩展性。
|
3月前
|
监控 负载均衡 应用服务中间件
探索微服务架构下的API网关设计与实践
在数字化浪潮中,微服务架构以其灵活性和可扩展性成为企业IT架构的宠儿。本文将深入浅出地介绍微服务架构下API网关的关键作用,探讨其设计原则与实践要点,旨在帮助读者更好地理解和应用API网关,优化微服务间的通信效率和安全性,实现服务的高可用性和伸缩性。
64 3
|
5月前
|
负载均衡 监控 安全
微服务架构下的API网关实践
在微服务架构的实践中,API网关作为系统入口的关键组件,承载着请求路由、负载均衡、认证授权等核心功能。本文将深入探讨API网关的设计与实现,通过具体案例分析其在微服务架构中的应用场景和挑战,并分享实践经验与优化策略,旨在为开发者提供一份实用的API网关部署指南。
|
5月前
|
负载均衡 安全 Java
Java中的服务治理与API网关实现
Java中的服务治理与API网关实现
|
5月前
|
负载均衡 安全 应用服务中间件
微服务架构中的API网关模式与实践
在微服务架构中,API网关扮演着至关重要的角色。它不仅是客户端请求和服务之间的中介,而且负责请求的路由、聚合以及协议转换等关键功能。本文将深入探讨API网关的设计原则、实现方式及其在现代后端系统中的应用,同时提供具体案例分析以展示其在实际项目中的有效运用。
|
6月前
|
监控 负载均衡 安全
微服务架构下的API网关设计实践
【6月更文挑战第15天】本文将深入探讨在构建现代软件系统时,如何有效地设计和实现一个API网关。我们将从API网关的核心作用出发,分析其在不同场景下的应用,并结合实际案例,展示如何通过API网关提升系统的可扩展性、安全性和性能。文章旨在为后端开发人员提供一套清晰的指南,帮助他们在微服务架构中实现高效且可靠的API管理策略。
|
6月前
|
负载均衡 监控 应用服务中间件
微服务架构下的API网关设计与实践
【6月更文挑战第11天】在现代软件开发中,微服务架构因其灵活性和可扩展性而受到青睐。作为微服务系统的入口,API网关承担着请求路由、负载均衡、安全认证等关键职责。本文将深入探讨API网关的设计要点与实践策略,旨在为读者提供构建高效、稳定API网关的实用指南。
|
6月前
|
负载均衡 安全 API
微服务架构下的API网关设计与实践
【6月更文挑战第4天】在微服务架构中,API网关作为系统的统一入口,承担着请求路由、负载均衡、安全校验等关键职责。本文将深入探讨API网关的设计原则与实现技术,通过案例分析,展示如何在现代后端开发中构建高效、可靠的API网关。