dubbo

Dubbo

架构图

image-20210427101908548

Dubbo能解决什么样的问题?

Dubbo有什么特点?

说明:

  • Provider: 提供者;编写持久层,业务层和事务代码
  • Container 容器(spring容器),dubbo完全基于spring实现的
  • Registty 注册中心。放置所有Provider对外提供的信息,包括Provider的IP,访问端口,访问遵守的协议,对外提供的接口,借口中有哪些方法等信息。
  • Consumer 消费者(RPC调用者,SOA调用服务的项目)开发中也是一个项目,可以编写service和controller(还可以包括页面),调用XXXXXserviceImpl中的方法
  • Monitor 监控中心,监控Provider的压力情况等,每隔两分钟Consumer和Provider会把调用次数发送给Monitor,由Monitor进行统计

@EnableDubbo注解:

可在启动测试类中使用,开启dubbo,会自动访问zk,查询可用的服务信息(providers),通过查询到的providers可用服务信息,创建接口的代理对象。

@DubboReference注解:

在consumer中的service中使用。说明当前的属性需要dubbo来初始化,代表需要根据当前类型访问zk,查询可使用的服务信息,并创建代理对象,注入。

集群

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

dubbo的application.name 和接口相同,便会自动搭建集群,但不能同ip和端口。

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

负载均衡

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

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

  1. Random

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

  2. RoundRobin

    ​ 访问频率和权重有关。

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

  3. LeastActive

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

  4. ConsisitentHash

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

共三种配置方法:1:provider中注解Service(loadbalance=“策略”)中配置

​ 2:consumer中注解Reference(loadbalance=”策略“)中配置

​ 3:yml配置文件中配置consumer/provider:loadbalance:策略

resources目录必须一级一级创建

常见异常处理

异常信息: zookeeper not connected
异常场景: spring boot + dubbo 启动时,连接zk出现问题
解决方案:
1、 检查zk所在机的防火墙。 systemctl stop firewalld | service firewalld stop
2、 检查zk所在机的ip和yml配置中的ip是否对应
3、 检查zk是否成功启动。 $zk_home/bin/zkServer.sh status -> standalone
4、 在yml配置文件中增加新的配置,提高连接zk的访问超时时间。(有可能是虚拟机网络不稳定造成连接zk的时候,出现超时)。dubbo中的默认超时配置是3秒。
dubbo:
config-center:
timeout: 10000 # 单位是毫秒。
5、 在启动类型上增加新的注解, @EnableDubboConfig。 人为强制要求dubbo-spring-boot-starter扫描配置并加载。 dubbo是自动扫描配置并加载的。
6、 修改版本。降低spring-boot和dubbo-spring-boot-starter版本。(版本问题是win10操作系统对权限管理加强后,导致的结果。)
6.1、 先降低dubbo-spring-boot-starter 到 2.7.3 -> 2.7.0
6.2、 再考虑降低spring-boot版本 到 2.2.0 -> 2.1.10 -> 2.0.2

虚拟机网络稳定性:
1、 关闭不必要的网卡
2、 关闭所有的热点软件
3、 关闭windows防火墙

# 推荐文章
  1.vpy加密视频破解转mp4-JAVA代码实现
  2.x715quan逆向协议分析
  3.20200516 每日记录
  4.AutoGeneratorCode
  5.C语言知识小计

评论


:D 一言句子获取中...

加载中,最新评论有1分钟延迟...