您现在的位置是:亿华云 > 人工智能
一文理解分布式开发中的服务治理
亿华云2025-10-04 00:41:42【人工智能】1人已围观
简介www.ydisp.cn/oss/202207/13/b9ae699012f71dd98df336050a72a64eb7efa5.jpg" style="width: 1006px; visibil

客户端(Client):调用远程服务的文理服务消费方。客户端调用远程服务就像调用本地函数一样,解分客户端负责序列化、布式反序列化、中的治理连接池管理、服务负载均衡、文理故障转移、解分超时管理、布式异步管理等。中的治理
服务器端(Server):暴露服务的服务服务提供方。服务器端如同实现一个本地函数一样来实现远程服务提供,文理服务器端需要做收发包队列、解分I/O线程、布式工作线程、中的治理序列化及反序列化等工作。服务
注册中心:服务注册与发现的注册中心。
2.RPC调用说明一次RPC调用流程主要由5部分组成,分别是客户端、客户端存根、服务器端存根、服务提供端和网络传输,其调用流程如图3-2所示。
客户端:服务调用方。
客户端存根:用于存放服务器端的地址信息,将客户端的请求参数等信息打包成网络消息,源码下载再通过网络传输发送给服务器端。
服务器端存根:接收客户端发送过来的请求消息并解包,然后调用本地服务处理。
服务提供端:服务的真正提供者。
网络传输:底层数据传输,可以是TCP或HTTP。
服务治理
业务在刚开始时都是单体应用,随着用户量和访问量的增加,在架构层面会发生变化,逐步由单体应用开发转为分布式应用开发,比如把单体应用中的每个模块都按照特定的方法拆分成一组独立的服务,服务与服务之间通过HTTP或者RPC方式调用。随着业务量的逐步增加,服务的数量也逐步增加。这时维护服务的URL地址就变得非常麻烦,所以需要设计一套系统来统一管理每个服务所对应的URL地址。这套系统就叫作注册中心。当有多个服务时,消费者需要根据规则来调用相关服务,实现软负载均衡,以达到资源利用率最大化的云服务器目的。因此,服务注册、服务发现、负载均衡、流量削峰、版本兼容、服务熔断、服务降级、服务限流等方面的问题,都是因服务拆分所引发的一系列问题。如何解决这些问题,让服务更稳定地运行,就叫作服务治理。
总体来说,服务治理指的是企业为了确保事情顺利完成而实施的内容,包括最佳实践、架构原则、治理规程、规律及其他决定性的因素。下面针对服务治理过程中的各个环节做相关说明。
(1)服务:它是分布式架构下的基础单元,香港云服务器包括一个或一组软件功能,其目的是不同的客户端通过网络获取相应的数据,而不用关注底层实现的具体细节。以用户服务为例,当客户端调用用户服务的注册功能时,注册信息会被写入数据库、缓存并发送消息来通知其他关注注册事件的系统,但是调用方并不清楚服务的具体处理逻辑。
(2)注册中心:它是微服务架构中的“通讯录”,记录了服务和服务地址的映射关系,主要涉及服务的提供者、服务注册中心和服务的消费者。在数据流程中,服务提供者在启动服务之后将服务注册到注册中心;服务消费者(或称为服务消费方)在启动时,会从注册中心拉取相关配置,并将其放到缓存中。注册中心的优势在于解耦了服务提供者和服务消费者之间的关系,并且支持弹性扩容和缩容。当服务需要扩容时,只需要再部署一个该服务。当服务成功启动后,会自动被注册到注册中心,并推送给消费者。
(3)服务注册与发布:服务实例在启动时被加载到容器中,并将服务自身的相关信息,比如接口名称、接口版本、IP地址、端口等注册到注册中心,并使用心跳机制定期刷新当前服务在注册中心的状态,以确认服务状态正常,在服务终止时将其从注册表中删除。服务注册包括自注册模式和第三方注册模式这两种模式。
◎自注册模式:服务实例负责在服务注册表中注册和注销服务实例,同时服务实例要发送心跳来保证注册信息不过期。其优点是,相对简单,无须其他系统功能的支持;缺点是,需要把服务实例和服务注册表联系起来,必须在每种编程语言和框架内部实现注册代码。
◎第三方注册模式:服务实例由另一个类似的服务管理器负责注册,服务管理器通过查询部署环境或订阅事件来跟踪运行服务的改变。当管理器发现一个新的可用服务时,会向注册表注册此服务,同时服务管理器负责注销终止的服务实例。第三方注册模式的主要优势是服务与服务注册表是分离的,无须为每种编程语言和架构都完成服务注册逻辑。相应地,服务实例是通过一个集中化管理的服务进行管理的;缺点是,需要一个高可用系统来支撑。
(4)服务发现:使用一个注册中心来记录分布式系统中全部服务的信息,以便其他服务快速找到这些已注册的服务。其目前有客户端发现模式和服务器端发现模式这两种模式。
客户端发现模式:客户端从服务注册服务中查询所有可用服务实例的地址,使用负载均衡算法从多个服务实例中选择一个,然后发出请求。其优势在于客户端知道可用服务注册表的信息,因此可以定义多种负载均衡算法,而且负载均衡的压力都集中在客户端。
服务器端发现模式:客户端通过负载均衡器向某个服务提出请求,负载均衡器从服务注册服务中查询所有可用服务实例的地址,将每个请求都转发到可用的服务实例中。与客户端发现一样,服务实例在服务注册表中注册或者注销。我们可以将HTTP服务、Nginx的负载均衡器都理解为服务器端发现模式。其优点是,客户端无须关注发现的细节,可以减少客户端框架需要完成的服务发现逻辑;客户端只需简单地向负载均衡器发送请求。其缺点是,在服务器端需要配置一个高可用的负载均衡器。
(5)流量削峰:使用一些技术手段来削弱瞬时的请求高峰,让系统吞吐量在高峰请求下可控,也可用于消除毛刺,使服务器资源的利用更加均衡、充分。常见的削峰策略有队列、限频、分层过滤、多级缓存等。
(6)版本兼容:在升级版本的过程中,需要考虑升级版本后新的数据结构能否理解和解析旧的数据,新协议能否理解旧的协议并做出预期内合适的处理。这就需要在服务设计过程中做好版本兼容工作。
(7)服务熔断:其作用类似于家用的保险丝。当某服务出现不可用或响应超时的情况时,已经达到系统设定的阈值,为了防止整个系统出现雪崩,会暂时停止对该服务的调用。
(8)服务降级:在服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略性地降级,以此释放服务器资源,保证核心任务的正常运行。降级时往往会指定不同的级别,面对不同的异常等级执行不同的处理。
(9)服务限流:服务限流可以被认为是服务降级的一种。它通过限制系统的输入和输出流量来达到保护系统的目的。一般来说,系统的吞吐量是可以被测算的。为了保证系统的稳定运行,一旦达到阈值,就需要限制流量。限制措施有延迟处理、拒绝处理或者部分拒绝处理等。
(10)负载均衡策略:它是用于解决一台机器无法处理所有请求而产生的一种算法。当集群里的1台或者多台服务器不能响应请求时,负载均衡策略会通过合理分摊流量,让更多的服务器均衡处理流量请求,不会因某一高峰时刻流量大而导致单个服务器的 CPU或内存急剧上升。
很赞哦!(7823)
上一篇: 旧域名的外链是否会对新建站点产生影响?
下一篇: 二、如何选择合适的域名
站长推荐
顶级域名可以增加企业品牌的价值。随着经济的快速发展,域名已不再是企业在网络中的独立地位。顶级域名的服务范围、企业产品、综合形象体现等,对于企业单位来说,顶级域名的重要性不言而喻。
浅谈风控的架构
程序员必备:5个强大的静态代码分析工具
“六天”恋上Kubernetes
在数以亿计的网站中,我们应该抓住每一个可能带来宣传的机会,域名可以带有企业的名字,一般可以使用汉语拼音或者英语单词或者是相关缩写的形式,只要用户记住了你企业的名字,就能很容易的打出你的网站域名,同样的,记住了网站域名也能很快的记住你公司的名字。
Javascript的对象拷贝
解构VR:虚拟现实技术如何在情感与道德上影响社会?
浅析Python装饰器中的@property