1.dubbo分布式服务框架
a.缺点:
1.只支持java之间的通信;
b.优点:
1.透明化的远程方法调用;
可像调用本地方法一样调用远程方法;只需简单配置,没有任何API侵入;
2.软负载均衡及容错机制
可以内网替代nginx lvs 等硬件负载均衡器;
3.服务注册中心自动注册和配置管理1
不需要写死服务提供者地址,注册中心基于接口名自动查询提供者ip;
4.使用类似zookeeper等分布式协调服务作为服务注册中心,可以将绝大部分配置移入zookeeper集群;
5.服务接口监控与治理
dubbo-admin与dubbo-monitor 提供了完善大的服务接口管理与监控功能,针对不同应用的不同接口,可进行多版本,多协议,多注册中心管理;
2.Dubbo产生的背景
a. 分布式情况下;
网站架构流程:
传统架构(ssh)、分布式架构(以项目模块进行划分)、
SOA架构(面向与服务架构)、微服务架构
b.模块和模块之间可通过Socket,Netty,HttpClient,Hessian等进行通信;
c.服务和服务之间进行通信的核心技术:
一般通过TCP协议+二进制传输(暴露端口号和IP地址就可以实现访问了);
3.传统的RPC远程调用有哪些缺点:
缺少服务治理,当服务比较多的情况时,URL地址
的管理起来非常复杂;
Dubbo解决服务治理问题,核心技术通过注册中心(zookeeper);
使用服务治理解决每个服务与服务之间的依赖关系,可以实现均衡、服务注册与发现,容错等
SpringCould和Dubbo都属于rpc远程调用框架,但是springcould功能比dubbo功能强大;
3.dubbo的概念
1.是一个分布式框架;
2.是一个高性能和透明化的RPC远程服务调用方案;
3.SOA服务治理方案;
4.dubbo提供的注册中心有如下几种类型可供选择:
a.Multicast注册中心;
b.Zookeeper注册中心;(官方建议)
c.Redis注册中心;
d.Simple注册中心;
5.dubbo服务底层实现原理;
a.角色区分:
1.Provider:暴露服务的服务提供方(生产者);
2.Consumer:调用远程服务的服消费方(消费者);
3.Registry:服务注册与发现的注册中心;
4.Monitor:统计服务的调用次数和调用时间的监控中心;
b.调用流程
1.服务容器负责启动,加载,运行服务提供者;
2. 服务提供者在启动时,向注册中心注册自己提供的服务;
3.服务消费者在启动时,向注册中心注册自己所需要的服务;
4.注册中心放回服务提供者地址列表个消费者,如有变更注册中心将基于长连接推送变更数据给消费者;
5.服务消费者,从提供者列表之中,基于负载均衡算法,选一台提供者进行调用,如果掉哟个失败,再选另外一条调用;
6.服务消费者和提供者,再内存中累计调用次数和调用时间,定时每分钟发送依次统计数据到监控中心;
dubbo分布式服务框架
最新推荐文章于 2024-03-06 16:47:07 发布