◎透明性:分布式系统中任意组件的故障及主机的升级或迁移,对用户来说都是透明的 。
◎并发性:应用分布式系统的目的是更好地共享资源,所以系统中的每个资源在并发环境下都必须是安全的 。
◎可扩展性:随着业务量的增加,系统必须具备可扩展性,以应对因业务量增长而增加的外部流量 。
◎故障独立性:任何计算机都有可能发生故障,而且各计算机发生的故障类型不尽相同,发生故障的时间也各不相同 。所以,分布式系统一般允许发生部分故障,而不影响整个系统的正常使用 。
◎数据一致性:因为数据被分散或者复制到不同的机器上,所以需要保证各台服务器之间数据的一致性 。
◎负载均衡:由于分布式系统是多机协同工作的系统,因此为了提高系统的整体效率和吞吐量,必须考虑最大化地发挥每个节点的作用,以最大化地利用资源,避免某个节点过载或者浪费资源 。
04.分布式系统的衡量指标◎系统的性能:系统每秒的事务处理能力,通常用TPS(Transactions Per Second)来衡量 。
◎系统的可用性:系统在面对各种异常时可以正确提供服务的能力 。该指标可以用系统停服的时间与正常服务时间的比例来衡量,也可以用某功能的失败次数与成功次数的比例来衡量 。系统的可用性是分布式系统的重要指标,是系统容错能力的体现 。
◎系统的可扩展性:分布式系统通过扩展集群的机器规模来提高系统性能(增大接口吞吐量、降低接口延时、增大接口并发量)、存储容量、计算能力的特性 。
RPC框架
RPC(Remote Procedure Call,远程过程调用)是一种进程间通信方式,也是一种技术思想 。使用 RPC 技术时,允许本地程序通过网络调用另一台服务器上的函数或者方法,具体调用过程一般由 RPC 框架实现,不用编码实现 。即无论是调用本地函数还是调用远程函数,我们编写的调用代码在本质上基本相同 。
01.RPC框架的工作原理RPC框架要向服务调用方和服务提供方屏蔽各类复杂性操作,比如负载均衡、序列化和反序列化、网络重试、超时等,主要由客户端、服务器端和注册中心3种角色构成,整体架构如图1所示 。

文章插图
◎客户端(Client):调用远程服务的服务消费方 。客户端调用远程服务就像调用本地函数一样,客户端负责序列化、反序列化、连接池管理、负载均衡、故障转移、超时管理、异步管理等 。
◎服务器端(Server):暴露服务的服务提供方 。服务器端如同实现一个本地函数一样来实现远程服务提供,服务器端需要做收发包队列、I/O线程、工作线程、序列化及反序列化等工作 。
◎注册中心:服务注册与发现的注册中心 。
02.RPC调用说明一次RPC调用流程主要由5部分组成,分别是客户端、客户端存根、服务器端存根、服务提供端和网络传输,其调用流程如图2所示 。
◎客户端:服务调用方 。
◎客户端存根:用于存放服务器端的地址信息,将客户端的请求参数等信息打包成网络消息,再通过网络传输发送给服务器端 。
◎服务器端存根:接收客户端发送过来的请求消息并解包,然后调用本地服务处理 。
◎服务提供端:服务的真正提供者 。
◎网络传输:底层数据传输,可以是TCP或HTTP 。

文章插图
服务治理
业务在刚开始时都是单体应用,随着用户量和访问量的增加,在架构层面会发生变化,逐步由单体应用开发转为分布式应用开发,比如把单体应用中的每个模块都按照特定的方法拆分成一组独立的服务,服务与服务之间通过HTTP或者RPC方式调用 。随着业务量的逐步增加,服务的数量也逐步增加 。这时维护服务的URL地址就变得非常麻烦,所以需要设计一套系统来统一管理每个服务所对应的URL地址 。这套系统就叫作注册中心 。当有多个服务时,消费者需要根据规则来调用相关服务,实现软负载均衡,以达到资源利用率最大化的目的 。因此,服务注册、服务发现、负载均衡、流量削峰、版本兼容、服务熔断、服务降级、服务限流等方面的问题,都是因服务拆分所引发的一系列问题 。如何解决这些问题,让服务更稳定地运行,就叫作服务治理 。
总体来说,服务治理指的是企业为了确保事情顺利完成而实施的内容,包括最佳实践、架构原则、治理规程、规律及其他决定性的因素 。下面针对服务治理过程中的各个环节做相关说明 。
推荐阅读
- 电工入门PLC知识普及 如何理解二进制和十六进制
- LCD不伤眼OLED费眼睛,一文说清谁才是真正的“眼睛刺客”?
- 只争朝夕,不负韶华’如何理解 不负韶华只争朝夕的意思
- 工信部|如何查询手机号是否被别人冒用注册?三种方式一文看懂
- 护肤|女性后腰的两个“凹点”是什么?它有何作用和价值呢?一文科普
- 一文学会排列组合 排列组合公式
- 空调|空调最合适温度26℃ 温度调高更省电?一文全看懂
- 阅读理解的技巧和方法有哪些?
- 阿里3个小时手把手教你用zookeeper实现分布式锁
- 花生|瓜子花生热量高,减肥者是否能吃?一文给你科普,早知道早受益!
