Java笔记之Dubbo

Dubbo:一款高性能、轻量级的开源服务框架。

RPC:指远程过程调用,是一种进程间的通信方式。

Dubbo六大核心功能:

         1、面向接口代理的高性能RPC调用

         2、智能负载均衡

         3、服务自动注册与发现

         4、高度可扩展能力

         5、运行期流量调度

         6、可视化的服务治理与运维

Dubbo的核心组件包括:

注册中心(Registry):生产者在此注册并发布内容,消费者在此订阅并接收发布的内容。
消费者(Consumer):客户端,从注册中心获取到方法,可以调用生产者中的方法。
生产者(Provider):服务端,生产内容,生产前需要依赖容器(先启动容器)。
容器(Container):生产者在启动执行的时候,必须依赖容器才能正常启动(默认依赖的是Spring容器)。
监控(Monitor):统计服务的调用次数与时间等。

Dubbo相关特性:

        属性配置优先级

        启动时检查

        请求超时设置

        重试次数

        多版本控制

        本地存根

Dubbo工作流程: 

1、服务提供者启动,开启Netty服务,创建Zookeeper客户端,向注册中心注册服务;

2、服务消费者启动,通过Zookeeper向注册中心获取服务提供者列表,与服务提供者通过Netty建立长连接;

3、服务消费者通过接口开始远程调用服务,ProxyFactory通过初始化Proxy对象,Proxy通过创建动态代理对象;

4、动态代理对象通过invoke方法,层层包装生成一个Invoker对象,该对象包含了代理对象;

5、Invoker通过路由,负载均衡选择了一个最合适的服务提供者,在通过加入各种过滤器,协议层包装生成一个新的DubboInvoker对象;

6、再通过交换成将DubboInvoker对象包装成一个Reuqest对象,该对象通过序列化通过NettyClient传输到服务提供者的NettyServer端;

7、到了服务提供者这边,再通过反序列化、协议解密等操作生成一个DubboExporter对象,再层层传递处理,会生成一个服务提供端的Invoker对象;

8、这个Invoker对象会调用本地服务,获得结果再通过层层回调返回到服务消费者,服务消费者拿到结果后,再解析获得最终结果。

        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值