当前位置:首页 > 服务端 > Dubbo学习-基本认知(一)

Dubbo学习-基本认知(一)

2022年09月16日 22:40:20服务端4

一、为什么使用Dubbo?

为什么使用Dubbo?因为项目需要。

作为一直学习开发小项目的我,自然是不需要考虑高并发、微服务、分布式的啦,当然也考虑不到T.T,用不着这么高大上的技术,不过时代在改变呀,要想不被甩在马路牙子上哭,就得不停的学习新的知识,安慰完自己的小心灵了,那么,就开始学习Duboo吧!

学习每样技术前,我们都要了解它的前因后果,一句话,它是怎样产生地。

在以前,我们只需要一个服务器,将我们写好的程序打包发布这个服务器里就好,但是随着互联网时代的发展,现在人人都可以在网上购物、看资讯,对于中大型企业来说争取最大的访客量就是首要任务,然而访客量是增多了,可服务器带不起来了呀,这还不是普普通通的卡机,而是直接“殁了”,毕竟在2020年3月,淘宝月度活跃用户可是达到了8.46亿啊!!!

那之前的架构是啥样子的呢?PS:可能不太严谨~

1.单一服务架构

Dubbo学习-基本认知(一) _ JavaClub全栈架构师技术笔记

2.应用和数据库单独部署

Dubbo学习-基本认知(一) _ JavaClub全栈架构师技术笔记

3.应用和服务器集群

Dubbo学习-基本认知(一) _ JavaClub全栈架构师技术笔记

4.数据库读写分离

Dubbo学习-基本认知(一) _ JavaClub全栈架构师技术笔记

5.数据库分库分表

Dubbo学习-基本认知(一) _ JavaClub全栈架构师技术笔记

6.应用拆分为不同类型

Dubbo学习-基本认知(一) _ JavaClub全栈架构师技术笔记

发展到现在,我们可以发现应用与应用的 关系已经很十分复杂了,于是矛盾就出现啦,(以下摘自Dubbo官网

1.当服务越来越多时,服务 URL 配置管理变得非常困难,硬件负载均衡器的单点压力也越来越大。

2.当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。

3.接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?

于是Dubbo出现啦,当然能够解决这些问题的不止Dubbo,还有著名的Spring Cloud,咱们慢慢来,解决一座山才能到达下一座山咧。

Q: 当服务越来越多时,服务 URL 配置管理变得非常困难,F5 硬件负载均衡器的单点压力也越来越大。怎么办!?

A: 此时需要一个服务注册中心,动态地注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列表,实现软负载均衡和 Failover,降低对 F5 硬件负载均衡器的依赖,也能减少部分成本。

也就是说这一个个应用类型太多啦,咱能记住一个两个三个四个名字地址,那,十几个呢?想想就瑟瑟发抖,所以我们就需要一个人来帮我们记住,于是注册中心出现啦,Dubbo官方提供参考的注册中心有Zookeeper、Nacos、Redis等,技术无好坏,具体就看你使用哪一种啦,透露一下,我打算先用Zookeeper来学习~

Q: 当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。怎么办!?

A: 这时,需要自动画出应用间的依赖关系图,以帮助架构师理清关系。

Q: 接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?怎么办!?

A: 为了解决这些问题,第一步,要将服务现在每天的调用量,响应时间,都统计出来,作为容量规划的参考指标。其次,要可以动态调整权重,在线上,将某台机器的权重一直加大,并在加大的过程中记录响应时间的变化,直到响应时间到达阈值,记录此时的访问量,再以此访问量乘以机器数反推总容量。

总而言之,言而总之,当你的项目架构发挥到这个阶段,就需要考虑使用Dubbo啦!

二、Dubbo架构

来,上图!

Dubbo学习-基本认知(一) _ JavaClub全栈架构师技术笔记

来自官方的懵图,无从下手啊,来看看下面的几种角色介绍吧。

节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

看了这个之后们就发现,好像也不是难理解啦,这和生产者-消费者模式好像呀,只是加入了注册中心和监控中心,那么整个流程变成了这样:

  • 启动容器,连接注册中心
  • 服务提供者启动时,将自己的服务注册发布到注册中心;
  • 服务消费者启动时,会在注册中心订阅自己所需要的服务。

如果订阅失败或者服务变更,就要考虑到:

  • 如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

通过这番讲解,我相信我已经大致了解了Dubbo结构,那么就要开始入手啦~~~

PS:哪里不对,请点评论通知我!

作者:清晨敲代码
来源链接:https://blog.csdn.net/vaevaevae233/article/details/117215780

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/42287.html

标签: Dubbo
分享给朋友:

“Dubbo学习-基本认知(一)” 的相关文章

Dubbo原理浅析

Dubbo原理浅析

一、Dubbo是什么 百度百科(没有什么比度娘知道的更多):Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接...

Spring Boot 中如何使用 Dubbo Activate 扩展点

Spring Boot 中如何使用 Dubbo Activate 扩展点

摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 公司的核心竞争力在于创新 – 《启示录》 』 继续上一篇:《 Springboot 整合 Dubbo/ZooKeeper 》,在...

springboot整合最新版dubbo以及dubbo-admin的安装

springboot整合最新版dubbo以及dubbo-admin的安装

一、安装前准备   由于dubbo被阿里捐献给了apache,这次安装admin时,参考网上的资料,地址还是停留在之前的链接,踩了不少坑,这里记录下。   dubbo-admin下载地址:   地址一:https://github.com/apache/incubat...

SpringBoot与Dubbo整合的三种方式

SpringBoot与Dubbo整合的三种方式

1. 使用默认application.properties和注解的方式 导入dubbo-starter,在application.properties配置属性,使用@Service注解来暴露服务,使用@Reference来引用服务。具体可参考 Dubbo整合Spring...

Java高级面试必问—Dubbo面试题汇总

1、默认使用的是什么通信框架,还有别的选择吗?2、服务调用是阻塞的吗?3、一般使用什么注册中心?还有别的选择吗?4、默认使用什么序列化框架,你知道的还有哪些?5、服务提供者能实现失效踢出是什么原理?6、服务上线怎么不影响旧版本?7、如何解决服务调用链过长的问题?8、说说核心的配置...

Java互联网架构师视频课程 分布式系统架构 Dubbo ActiveMQ Netty

Java互联网架构师视频课程 分布式系统架构 Dubbo ActiveMQ Netty

视频课程内容包含: 高级Java架构师包含:spring boot、Spring  cloud、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Spring、MongoDB、ZeroMQ、Git、Nosql、Jvm、Mecached...

Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务

Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务

现在越来越多的公司开发项目中使用了springboot作为搭建服务的框架,因为springboot集成了一套完整项目所需要的基本的开发工具的jar包,无需再像之前开发一个spring项目中需要引入各种配置,只需要引入简单的几个配置就能达到项目的启动,大大减少了开发周期,使开发越来...

史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。 下面我为大家准备了一些 Dubbo 常见的的面...

SpringCloud系列之集成Dubbo应用篇

SpringCloud系列之集成Dubbo应用篇

目录 前言 项目版本 项目说明 集成Dubbo 2.6.x 新项目模块 老项目模块 集成Dubbo 2....

dubbo + nacos

dubbo + nacos 文章目录 dubbo + nacos 一、下载nacos并启动 1.下载地址 2.启动 3.登录...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。