什么是分布式系统?
当单体应用的处理能力无法满足计算、存储任务,且硬件的提升得不偿失,引用程序也无法进一步优化的时候,可以考虑分布式。分布式系统主要解决的手段:将单体应用变为多节点,通过网络通信的拓扑结构,处理更多的计算。
Dubbo 是什么?
Dubbo 是一个高可用的 RPC 框架!
RPC是什么?
远程过程调用,本地调用远程机器上的服务。对标的是本地过程调用
RPC 如何调用?可以基于HTTP,也可以基于TCP自定义协议,所以RPC 和 HTTP 不是一个层面上的东西。
RPC 框架是要实现这个过程的框架。让远程调用就像本地调用一样。
如何实现一个 RPC 框架?
通信协议
序列化和反序列化(消费者序列化请求参数,生产者反序列化处理请求)
容错机制(因为网络不可靠需要重试)
提供者集群,消费者需要负载均衡取请求
注册中心(提供者暴露服务,消费者获取服务)
配置中心(配置集中化管理,动态变更通知订阅者)
监控运维
Dubbo 的调用过程和服务暴露是什么?
首先有一个提供者服务暴露的过程。
提供者启动,通过Proxy 代理组件,根据具体的协议将需要暴露的接口封装成 Invoker ,
Invoker 是 Dubbo