欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

dubbo介绍

时间:2023-05-01
1.Dubbo简介

dubbo是一个高可用,基于java的开源RPC框架

dubbo框架不仅仅是具备RPC访问功能,还包含服务治理功能

2.Dubbo架构 2.1 Provider

提供者,编写持久层和事务代码

2.2 Container

容器(spring容器),Dubbo完全基于spring 实现的

2.3 Registry

注册中心,放置所有的Provider对外提供的信息,包含Provider的IP,访问端口,访问遵守的协议,对外提供的接口,接口中有哪些方法等相关信息

2.4 Consumer

消费者(RPC调用者,SOA调用服务的项目)开发中也是一个项目,编写service和controller(还可以报页面等),调用XXXXServiceImpl中的方法

2.5 Monitor 3.执行流程

0.start:启动Spring容器时会把Provider启动

1.register:把Provider相关信息注册到Registry中

2.subscribe:Consumer从Registry中订阅Provider的信息

3.notify:通知给 Consumer

4.invoke:Consumer根据Registry通知的信息进行调用Provider中方法

5.count:Consumer根据Registry吧调用次数信息异步发送给Monitor进行统计

4.Dubbo协议(官方推荐协议)

优点:

​ 采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好

缺点:

​ 大文件上传是,可能出现问题 (不使用Dubbo文件上传)

2.RMI协议

优点:JDK自带的能力

缺点:偶尔连接失败

3.Hessian协议

优点:可与原生Hessian互操作,基于HTTP协议

缺点:需要hession.jar支持,http短连接的开销大

4.Dubbo支持的注册中心 4.1.Zookeeper(官方推荐)

​ 优点:支持分布式,很多周边产品

​ 缺点:受限于Zookeeper软件的稳定性,Zookeeper是专门分布式辅助软件,稳定较优

4.2.Multicast

​ 优点:去中心化,不需要独立安装软件

​ 缺点:2.2.1 Provider和Consumer和Registry不能跨机房(路由)不能应用在商业上,只能在局域网中使用

4.3.Redis

​ 优点:支持集群,性能高

​ 优点:要求服务器时间同步,否则可能出现几圈失败问题

4.4.Simple

​ 优点:标准Rpc服务,没有兼容问题

​ 缺点:不支持集群

5.Dubbo负载均衡

集群:一个内容,部署多次,形成的整体成为集群,集群中每个个体应该部署到不同的服务器上,

伪集群:集群中内容部署到同一台服务器上,通过不同端口区分不同个体

负载均衡实在集群前提下,集群中每个节点被访问次数或频率的规则。

Dubbo内置了四个负载均衡策略,默认为Random

5.1Random

随机,随机访问集群中节点,访问概率和权重有关

5.2 RoundRobin(轮询)

轮询:访问概率和权重有关

权重(weight):占有比例,集群中每个项目部署的服务器的性能可能是不同,性能好的服务器权重应该高一些

5.3LeastActive

活跃数相同的随机,不同的活跃数高的放前面

5.4 ConsistentHash

一致性Hash,相同参数请求总数发送到一个提供者

6.负载均衡设置

1.@Reference(loadbalance = "roundRobin")2.@Serivce dubbo提供的service //设置负载均衡算法 @Serivce(loadbalance = "random") //设置权重 @Service(weight = 4)3.配置文件 全局设置provide和consumer的负载均衡效果 //提供者 dubbo: application: name: dubbo-provider registry: address: zookeeper://localhost:2181 protocol: port: 20884 provider: weight: 1 loadbalance: random

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。