基础理论
1、什么是分布式系统
分布式系统是若干计算机的集合,这些计算机对用户而言就像单个相关系统 -- 《分布式系统原理与范型》
分布式系统是建立在网络之上的系统
2、架构发展演变
随着互联网发展,应用规模不断增长,架构也随着演变。从单一应用架构,垂直应用拆分架构,逐渐演变为分布式应用架构。
3、RPC
RPC是指远程过程调用,是一种进程间通信方式。它允许调用另一个地址空间(通常指网络上的某台机器)的过程或函数。使用方式与本地调用方法一致。
原理:
(2)client代理接收到调用后,负责将接口、参数等序列化为二进制
(3)通过socket将消息发往服务端
(4)server代理将二进制消息反序列化
(5)server调用本地方法
(6)将执行结果返回给server代理
(7)代理将返回结果序列化
(8)通过socker将返回结果发往客户端
(9)返回结果反序列化
(10)client得到最终结果
不同的RPC框架核心
- 通讯(快速建立连接)
- 序列化 (效率)
现有的业界RPC框架:dubbo、gRPC、Thrift、pigeon
4、dubbo
dubbo架构:
dubbo特性:
-
面向接口代理的高性能RPC调用
- 提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
-
智能负载均衡
- 内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。
-
服务自动注册与发现
- 支持多种注册中心服务,服务实例上下线实时感知。
-
高度可扩展能力
- 遵循微内核+插件的设计原则,所有核心能力如Protocol、Transport、Serialization被设计为扩展点,平等对待内置实现和第三方实现。
-
运行期流量调度
- 内置条件、脚本等路由策略,通过配置不同的路由规则,轻松实现灰度发布,同机房优先等功能。
-
可视化的服务治理与运维
- 提供丰富服务治理、运维工具:随时查询服务元数据、服务健康状态及调用统计,实时下发路由策略、调整配置参数。