1.client为什么是stub
Stub
在分布式系统中是一种 代理对象(Proxy Object),它本质上是一个在本地系统中扮演远程服务角色的代理。
在早期的 RPC 术语中,客户端端叫做 Stub
,而服务器端的处理部分叫做 Skeleton
。这种对称性使得命名更加直观。
- Client Stub:这是客户端用来调用远程服务的方法代理。客户端的代理对象。
- Server Skeleton:这是服务器端用于接收客户端请求并执行相应服务的方法代理。服务器端的代理对象。
Stub
是一种 接口代理,它隐藏了底层的实现细节(如网络传输、序列化等),提供了一种调用远程服务的抽象。由于 Stub
只是远程服务的一种本地代理,而不是一个真正的客户端,因此用 Stub
而非 Client
这个术语可以更好地表达它的作用。
分离逻辑角色与通信角色:
命名为 Stub
强调了它的代理特性,而非整个客户端逻辑。在分布式系统中,客户端程序往往有很多复杂的业务逻辑,而 Stub
只是负责和远程服务通信的部分。
Client
:通常指的是客户端整个应用程序,包含业务逻辑、UI、数据库访问等。Stub
:仅指与远程服务交互的代理类,用于发起 RPC 调用。