分布式框架dubbo

news/2025/1/14 22:31:10/

1.分布式系统相关概念

1.1基本概念

在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述

1.2 集群和分布式

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1.3 架构演进

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
A是一个微服务。A+DB是一个组件。A可以java,B可以python实现。
在这里插入图片描述
在这里插入图片描述

2 dubbo

2.1 概述

在这里插入图片描述
在这里插入图片描述

2.2 dubbo代码

2.2.1 服务提供者的改造-将项目service层对外发布到dubbo

通过dubbo中的service注解,将当前类的方法对外发布,但是需要配置ip,端口,路径到注册中心
在这里插入图片描述在这里插入图片描述
dubbo配置过后,service模块中springmvc中的配置文件就不需要了
在这里插入图片描述

2.2.2 服务消费者webController的改造

①原本web依赖的service,现在改造后不需要依赖,将对应的依赖插件删除。
在这里插入图片描述
②删除后,controller中接口会找不到。
在这里插入图片描述
③在web中创建一个service接口,把其变为本地接口
在这里插入图片描述
报错消失,但是还有红波浪线,是因为spring的ioc容器中没发现这个service。
④检查dubbo依赖
在这里插入图片描述
⑤web模块下spring配置文件加载不需要了,springmvc的留下
在这里插入图片描述
⑥spring的@autowired注入注解不需要加了,换成dubbo的@reference远程注入
在这里插入图片描述
⑦给reference注解配置访问的地址。
在这里插入图片描述
⑧启动service和web
在这里插入图片描述
由于不同的主机访问的接口必须同一个名称,因此把接口单独提出来
在这里插入图片描述
进行改造,在加一个interface接口模块。在web和service模块加入要依赖的公共模块接口配置
在这里插入图片描述
在公共的interface中定义接口,在service模块下实现具体的serviceimpl
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3 dubbo高级特性

3.1 dubbo-admin

在这里插入图片描述

3.2 序列化

在这里插入图片描述
新建一个模块,定义多个类,

dubbo-interface使用dubbo-pojo中的类
在这里插入图片描述在这里插入图片描述
服务提供者dubbo-service中实现dubbo-interface中的接口类
在这里插入图片描述
web层调用service的接口

项目结构:pojo被interface依赖,interface被service和web依赖,pojo被service和web间接依赖。
在这里插入图片描述
在这里插入图片描述

3.3 地址缓存

旧的地址可访问,新的不行。

在这里插入图片描述

3.4 超时与重试

在这里插入图片描述
解决方法
在这里插入图片描述
设置3s超时就释放
在这里插入图片描述
若在@Reference设置timeout=1000,则1s生效
在这里插入图片描述
建议配置在controller中-服务的提供者,而不是配置在服务的调用者reference上。

在这里插入图片描述
在这里插入图片描述

3.5 多版本

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 dubbo负载均衡

在这里插入图片描述在这里插入图片描述

把上个接口启动后,然后修改权重再次启动需要修改tomcat和dubbo端口号。在这里插入图片描述
在这里插入图片描述
出现两个服务,权重不同
在这里插入图片描述
服务调用者加载负载均衡策略在这里插入图片描述
带权重的轮训,如访问四次顺序为:1-2-3-2
在这里插入图片描述
在这里插入图片描述

3.7 集群容错

1号:第一个机器服务启动,超时1s关闭
在这里插入图片描述
2号:修改tomcat和dubbo端口号再次启动
在这里插入图片描述
3号:修改端口号,service改为不再超时,即可以成功访问的
在这里插入图片描述
启动的三个服务
在这里插入图片描述
在服务调用者接口设置失败重试,默认重试两次
在这里插入图片描述
启动web
在这里插入图片描述
虽然控制台会超时报错,但是会访问成功
在这里插入图片描述
其中1号和2号报错,3号成功
在这里插入图片描述
再次刷新1.2.3都成功。
其他容错方式。
在这里插入图片描述

3.8 服务降级

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/1001950.html

相关文章

学无止境·运维高阶③(Mysqldump脚本)

Mysqldump脚本 1、详细脚本2、执行 1、详细脚本 #!/bin/bash mysql_cmd‘-uroot -pRedHat123’ exclude_db‘information_schema|performance_schema|sys’ bak_path/backup/db mysql m y s q l c m d − e ′ s h o w d a t a b a s e s ′ − N ∣ e g r e p − v " {m…

2023年08月IDE流行度最新排名

点击查看最新IDE流行度最新排名(每月更新) 2023年08月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多,这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…

Python——调用webdriver.Chrome() 报错

今天运行脚本&#xff0c;报错内容如下&#xff1a; collecting ... login_case.py:None (login_case.py) login_case.py:11: in <module> dr webdriver.Chrome() D:\Program Files (x86)\Python\Python39\Lib\site-packages\selenium\webdriver\chrome\webdriver.p…

MYSQL进阶-事务

什么是数据库事务&#xff1f; 事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发控制的基本单位&#xff0c;其执 行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上 的一组操作&#xff0c;要么都执行&#xff0c;要么都不执行。 事务最…

2023华数杯数学建模A题思路分析 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热…

小白如何获取CNVD事件型原创漏洞证明?——记CNVD漏洞挖掘思路

引子: 相信许多人都想要被别人叫做大佬&#xff0c;漏洞挖掘当中肯定也不例外,所以在此之前让我们康康度娘对大佬的定义:形容一个人很巨表示对其顶礼膜拜的态度。在这种情况下&#xff0c; 国家信息安全漏洞共享平台(CNVD) 则为我们提供了一个成为大佬的平台, CNVD作为国内最具…

负数的二进制转换成十进制

对于一个k位的二进制正数&#xff0c;其表示成十进制的结果是&#xff1a; pos[i]表示&#xff1a;这个正数的二进制形式的第i位是1。 i从最低位&#xff08;第0位&#xff09;开始&#xff0c;一直到k-1位。有符号数中&#xff0c;正数的第k-1为0&#xff0c;负数的第k-1位为…

uniapp 全局数据(globalData)的设置,获取,更改

globalData&#xff0c;这是一种简单的全局变量机制。这套机制在uni-app里也可以使用&#xff0c;并且全端通用 因为uniapp基本上都是将页面&#xff0c;或者页面中相同的部分&#xff0c;进行组件化&#xff0c;所以会存在父&#xff0c;子&#xff0c;&#xff08;子&#xf…