分布式框架dubbo

news2024/9/24 3:29:24

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.coloradmin.cn/o/833890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity 3D WebView 插件之基础介绍(一)

序言: Unity 3D WebView:支持多个平台(安卓、ios、Windows、WebGL、UWP)页面渲染技术, WebView控件功能强大,除了具有一般View的属性和设置外,还可以对Url请求、页面加载、渲染、页面交互进行强…

如何消除浮动

第一种方法: 1、创建一个general.css文件: charset "utf-8"; .clearfix:after {content: "";display: block;clear: both;} /* flex */ .flex,.flexA,.flexB,.flexC {display: flex;flex-wrap: wrap;} .flexA {justify-content: space-aroun…

Halcon Error 8000 Help file for package ‘system‘ 错误分析

Halcon Error 8000 Help file for package ‘system’ 错误分析 1.系统环境变量确认 变量设置(根据自己版本对应) HALCONARCH HALCONARCH x64-win64HALCONEXAMPLES HALCONEXAMPLES D:\MVTec\HALCON-21.05-Progress\examplesHALCONIMAGES HALCONIMAGES D:\MVTec\HALCON-21.0…

IDEA设置中文 中文插件

IDEA设置中文 中文插件 首先进入idea File --> Setting --> Plugin 输入Chinese 搜索插件 选择下图插件进行install 安装完成后,重启idea即可

深入理解缓存 TLB 原理

今天分享一篇TLB的好文章,希望大家夯实基本功,让我们一起深入理解计算机系统。 TLB 是 translation lookaside buffer 的简称。首先,我们知道 MMU 的作用是把虚拟地址转换成物理地址。 MMU工作原理 虚拟地址和物理地址的映射关系存储在页表…

PHP-简单项目引起的大麻烦--【白嫖项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 首页小插曲小插曲完了么?必要的项目知识PHPThinkPHPThinkPHP的MVCThinkTemplateThinkPHP 6和ThinkPHP 5 phpStudy 设置导数据库展示页面数据库表结构项目目录如图…

C++ 用指针处理数组元素

指针加减运算的特点使得指针特别合适于处理存储在一段连续内存空间中的同类数据。而数组恰好是具有一定顺序关系的若干同类型变量的集合体,数组元素的存储在物理上也是连续的,数组名就是数组存储的首地址。这样,便可以使用指针来对数组及其元…

Vue 全局事件总线 Event-Bus

全局事件总线 作用:可以在全局层面上,在任意组件之间相互传递数据。不再局限于父子组件传值,或多层嵌套传值等方式。 使用方式:完全与父子组件传值一致,使用 $on 监听事件,使用 $emit 触发事件&#xff0c…

API测试基础之http协议

http简介: http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP(传输控制协议)之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出…

Java集合ArrayList详解

ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。 ArrayList 继承了 AbstractList ,并实现了 List 接口。 Java 数组 与 ArrayList 在Java中,我们需要先声明数组的大…

Jmeter教程

目录 安装与配置 一:下载jdk——配置jdk环境变量 二:下载JMeter——配置环境变量 安装与配置 一:下载jdk——配置jdk环境变量 1.新建环境变量变量名:JAVA_HOME变量值:(即JDK的安装路径) 2.编辑Path%J…

Visual Studio 2022的MFC框架——应用程序向导

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Visual Studio 2022开发工具下的MFC框架知识。 MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C类的集合&#xf…

Pytest自动化测试框架setup 和 teardown

Pytest - setup 和 teardown 执行用例肯定有些需要前置条件或后置操作,例如前置的用户登陆,后置的清理数据等操作; unittest提供了两种前置(setup、setupClass)和两种后置(teardown、teardownClass&#x…

工业生产数据采集器网关是什么?设备如何现场管理?

在制造业数字化转型的浪潮下,工业生产数据采集成为了提高生产效率和质量的关键环节。工业生产数据采集器网关是一种用于连接工厂设备并采集生产数据的智能设备,具备工业级设计和多种联网方式。其中,HiWoo Box作为一款工业边缘网关&#xff0c…

HCIP入门静态实验

题目及要求 第一步&#xff1a;拓扑的搭建 第二步&#xff1a;路由、IP的配置 r1: <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sys r1 [r1]int loop [r1]int LoopBack 0 [r1-LoopBack0]ip add 192.168.1.65 27 [r1-LoopBack0]int loop 1 […

Sorting Layer与Order in Layer

就像是两个数相比&#xff0c;比如34与26&#xff0c;Sorting Layer决定的是十位&#xff0c;而Order in Layer决定的是个位&#xff0c;如果Sorting Layer的级别比较高&#xff0c;则可以忽略Order in Layer的比较&#xff0c;当比较的二者的Sorting Layer级别相同&#xff0c…

RF手机天线仿真介绍(一):金属边框天线和LDS天线

目录 简介LDS天线LDS天线仿真 金属边框天线金属边框天线仿真 简介 最早的手机是外置式天线&#xff0c;从NOKIA开始采用内置式天线&#xff0c;开始采用内置金属片&#xff08;一般是0.1MM厚的不锈钢片冲压而成&#xff09;&#xff0c;随后为降低成本&#xff0c;后来改用FPC…

C++ 数组

**数组是具有一定顺序关系的若干对象的集合体&#xff0c;组成数组的对象称为该数组的元素。**数组元素用数组名与带方括号的下标表示&#xff0c;同一数组的各个元素具有相同的类型。数组可以由除void型以外的任何一种类型构成&#xff0c;构成数组的类型和数组之间的关系&…

全排列、子集、组合、子序列

全排列、子集、组合、子序列 1、全排列①回溯&#xff08;DFS&#xff09;交换法②回溯&#xff08;DFS&#xff09;选择法③ 插入法 2、子集①回溯选择法② 动态规划 ③ 位运算方式组合 1、全排列 全排列&#xff08;Permutation&#xff09;&#xff1a;全排列是指给定一组元…

【漏洞复现】Ruijie RG-BCR860 后台命令执行漏洞(CVE-2023-3450)

文章目录 前言声明一、简介二、漏洞概述三、影响版本四、环境搭建五、漏洞复现六、修复方式 前言 Ruijie RG-BCR860 2.5.13 版本存在操作系统命令注入漏洞&#xff0c;攻击者可通过该漏洞获取服务器敏感信息&#xff0c;导致服务器被沦陷。 声明 请勿利用文章内的相关技术从事…