SpringCloud学习——系统架构演变、Dubbo和SpringCloud的对比

软件系统架构的发展和介绍,单体架构、垂直架构、分布式架构、分布式SOA架构、分布式微服务架构 了解各个软件架构的发展和优缺点对比,单体架构、分布式架构、soa、微服务等等 阅读详情



系统架构演变

背景

随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。系统架构也因此不断的演进、升级、迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google带领下来势汹涌的Service Mesh。


集中式架构

当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键。

在这里插入图片描述
存在的问题:

  • 代码耦合,开发维护困难
  • 无法针对不同模块进行针对性优化
  • 无法水平扩展
  • 单点容错率低,并发能力差

垂直拆分

当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分

在这里插入图片描述
优点:

  • 系统拆分实现了流量分担,解决了并发问题
  • 可以针对不同模块进行优化
  • 方便水平扩展,负载均衡,容错率提高

缺点:

  • 系统间相互独立,会有很多重复开发工作,影响开发效率

分布式服务

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式调用是关键。

在这里插入图片描述
优点:

  • 将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率

缺点:

  • 系统间耦合度变高,调用关系错综复杂,难以维护

流动计算架构(SOA)

在这里插入图片描述
以前出现了什么问题?

  • 服务越来越多,需要管理每个服务的地址
  • 调用关系错综复杂,难以理清依赖关系
  • 服务过多,服务状态难以管理,无法根据服务情况动态管理

服务治理要做什么?

  • 服务注册中心,实现服务自动注册和发现,无需人为记录服务地址
  • 服务自动订阅,服务列表自动推送,服务调用透明化,无需关心依赖关系
  • 动态监控服务状态监控报告,人为控制服务状态

缺点:

  • 服务间会有依赖关系,一旦某个环节出错会影响较大
  • 服务关系复杂,运维、测试部署困难,不符合DevOps思想

微服务

在这里插入图片描述
SOA,英文翻译过来是面向服务;微服务,似乎也是服务,都是对系统进行拆分。因此两者非常容易混淆,但其实却有一些差别:
微服务的特点:

  • 单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责
  • 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。
  • 面向服务:面向服务是说每个服务都要对外暴露Rest风格服务接口API。并不关心服务的技术实现,做到与平台和语言无关,也不限定用什么技术实现,只要提供Rest的接口即可。
  • 自治:服务间互相独立,互不干扰
    • 团队独立:每个服务都是一个独立的开发团队。
    • 技术独立:面向服务,提供Rest接口,使用什么技术没有别人干涉
    • 前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动段开发不同接口
    • 数据库分离:每个服务都使用自己的数据源
    • 部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护

Dubbo和SpringCloud的对比

DubboSpring Cloud
服务注册中心ZookeeperSpring Cloud Netflix Eureka
服务调用方式RPCREST API
服务监控Dubbo-monitorSpring Boot Admin
断路器不完善Spring Cloud Netflix Hystrix
服务网关无Spring Cloud Netflix Zuul
分布式配置无Spring Cloud Config
服务跟踪无Spring Cloud Sleuth
消息总线无Spring Cloud Bus
数据流无Spring Cloud Stream
批量任务无Spring Cloud Task

RPC与HTTP的对比

参考该博主RPC与HTTP的区别

概念:

RPC: 远程过程调用(Remote Produce Call)
HTTP: HTTP是一种网络传输协议,基于TCP,规定了数据传输的格式。Rest风格,就是通过HTTP协议来实现的。
相同点: 底层通讯都是基于socket,都可以实现远程调用,都可以实现服务调用服务
不同点:
RPC: 当使用RPC框架实现服务间调用的时候,要求服务提供方和服务消费方都必须使用统一的RPC框架
HTTP: 当使用http进行服务间调用的时候,无需关注服务提供方使用的编程语言,也无需关注服务消费方使用的编程语言,服务提供方只需要提供restful风格的接口,服务消费方,按照restful的原则,请求服务,即可
总结

  1. RPC要求服务提供方和服务调用方都需要使用相同的技术,而http无需关注语言的实现,只需要遵循rest规范
  2. RPC的开发要求较多,像Hessian框架还需要服务器提供完整的接口代码(包名.类名.方法名必须完全一致),否则客户端无法运行
  3. Hessian只支持POST请求
  4. Hessian只支持JAVA语言
第一章 :微服务的架构介绍发展 前端时间公司整理架构,正巧,总结一下自己对微服务的理解写一篇博客 对你有帮助的话,点个关注以防迷路,方便寻找 微服务介绍 1.1 系统架构演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。 从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构—>垂直应用架构—>分布 式架构—>SOA架构—>微服务架构,当然还有悄然兴... 阅读详情

相关推荐

水文模型新手必看:用SWAT-CUP做参数率定,如何正确设置预热期、率定期和验证期?(附数据准备避坑指南)

本文详细介绍了使用SWAT-CUP进行水文模型参数率定的完整流程,重点解析了预热期、率定期和验证期的正确设置方法,并提供了数据准备的避坑指南。通过实操步骤和常见问题解决方案,帮助新手快速掌握SWAT-CUP参数率定的核心技巧,提升水文模型模拟精度。

weixin_26875109的博客 374

传统垂直应用架构(如MVC)的缺点

       在业务发展初期,应用规模比较小,基于JEE构建的垂直应用架构还能够有效支撑业务的发展。随着业务的不断发展,应用规模日趋庞大,传统垂直架构开发模式的弊端变得越来越突出。        1)复杂应用的开发维护成本变高,部署效率逐渐降低。因为随着业务功能的不断膨胀,代码全量编译和部署一次所需的时间非常长。更为严重的是只要某个功能编译出错或者功能测试出问题,就需要重新打包编译,软件的部署效...

tjsahwj的博客 4941

WebRTC TURN协议初识及turnserver实践

但是TURN协议对服务器有很高的依赖,服务器在带宽和集群上有很大的压力,所以TURN协议通常是当作ICE协议中的一部分来使用。ChannelData message不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channel number),每一个使用中的信道号都与一个特定的peer绑定,即作为对等端地址的一个记号。该relay地址是个公网地址,可以看作是客户端A在公网上的一个代理,任何想要联系A的客户端,只要将数据发送到A的relay地址就可以了。

yinshipin007的博客 566

单体架构、垂直架构、分布式架构(SOA)、微服务架构的优缺点和应用场景

2.分布式架构(SOA) 分层:按照业务性质分层,每一层要求简单和容易维护 应用层:距离用户最近的一层也称为接入层,可以使用Tomcat作为web容器。接受用户请求,使用下游的dubbo提供的接口来返回数据,并且该层禁止访问数据库 业务服务层 基础业务层 基础服务层 存储层 分级:按照业务性质分层,同一层的业务也要做好分级,依据业务的重要性进行分级,按照二八定律,网站80%的流量都在核心功能上面,要优先保证核心业务的稳定。 隔离:不同性质、不同重要性的的做好隔离,包括业务,缓存,DB,.

FDXCG_X的博客 1万+

Unity Spine动画控制全攻略:播放、回调与停止的实战技巧

本文深入解析Unity中Spine动画的核心控制技巧,涵盖动画播放、轨道分层、事件回调与平滑停止等实战方法。通过封装SpineAnimationController,详细讲解了如何利用动画播放结束回调实现精准的游戏逻辑同步,并提供了避免内存泄漏和动画卡顿的避坑指南,助力开发者打造流畅专业的2D游戏动画系统。

weixin_29021291的博客 378

最近腾讯手机管家a.gray.Bulimia.a病毒提示决解方案

仅供参考(个人问题已解决 未申诉) 用户反馈app提示病毒图如下 然后下载生产包去https://www.virustotal.com/gui/这个网站去检测 果真提示病毒 重新加版本 打了个包 未加固 检测没问有问题 同一个包用360加固之后再检测有问题 ,但是没有a.gray.Bulimia.a报病毒 然后再用应用宝加固检测也没问题,个人以前都是用360加固的,很尴尬啊 最重要的一点的是,更新一个版本号,其余的啥都没改,更新替换手机的原来版本app,腾讯手机.

村头那抠脚大叔的专栏 3万+

开始使用微服务?

1.系统架构演变 1.1. 集中式架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键。 存在的问题: 代码耦合,开发维护困难 无法针对不同模块进行针对性优化 无法水平扩展 单点容错率低,并发能力差 1.2.垂直拆分 当访问量逐渐增大,单一应用无法满足需...

weixin_30275415的博客 239

DeerFlow 系列教程 第二十篇 | 前端定制与二次开发指南

支持的语言定义在locale.tsLocale 检测采用三级降级策略Cookie 优先:检查localeCookie浏览器语言默认值en-US.value;if (locale!DeerFlow 使用管理主题切换,在根布局中通过主题相关的 CSS 变量定义在中(约 10KB)。: boolean;// 是否支持深度思考。

weixin_43674738的博客 223

SpringCloud与Dubbo的区别

1.SpringCloud与Dubbo的区别 两者都是现在主流的微服务框架,但却存在不少差异: 初始定位不同:SpringCloud定位为微服务架构下的一站式解决方案;Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用和治理 生态环境不同:SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。 调用方式:SpringCloud是采用Http协议做远程调用,接口一般是Rest风格,比较灵活;Dubbo是采用

weixin_51291483的博客 7万+

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 7万+

隧道裂缝检测【C++PCL】

我们团队注重每一个细节,确保代码的可读性、可维护性和可扩展性达到最高标准。我们严格遵循行业最佳实践,采用模块化和面向对象的设计原则,使得我们的代码结构清晰且易于理解。我们的点云服务更是引以为傲。我们的技术团队拥有深厚的专业知识和丰富的经验,能够提供高度准确和高效的点云处理服务。无论是点云的获取、存储还是分析,我们都能够满足客户的需求,并提供出色的解决方案。我们的技术实力也是无与伦比的,拥有广泛的技术背景和深入的专业知识。

weixin_45196569的博客 848

SpringCloud与Dubbo的比较

SpringCloud与Dubbo的比较及异同点

程序大视界 11万+

LIS2DH三轴加速度传感器原理图设计,已量产(加速度传感器)

最近在做一款可穿戴设备原型时,选了 LIS2DH 这款加速度计 —— 比起之前常用的 ADXL345,它在低功耗和稳定性上的优化刚好戳中了可穿戴设备 “续航 + 可靠” 的核心需求。下面结合这次画的原理图,聊聊这个小模块的硬件设计细节。

不脱发的程序猿 389

dubbo和springCloud之间的区别

Dubbo Spring Cloud 服务注册中心 Zookeeper Spring Cloud Netflix Eureka 服务调用方式 RPC REST API 服务监控 Dubbo-monitor Spring Boot Admin 断路器 不完善 Spring Cloud Netflix Hystrix 服务网关 无 Spring Cloud Netfl...

weixin_41509621的博客 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

服务架构的演变与SpringCloud

初步了解SpringCloud。

m0_65144570的博客 3022

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringCloud与Dubbo的区别(全面详解)深入浅出

Eureka集群中各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。Invoker是实体域,它是Dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。当我们通过一个服务器修改数据后,该服务器会向另一个服务器发送请求,将数据进行同步,但此时,该数据应处于锁定状态,不可再次修改,这样,如果此时我们想服务器发送请求,则得不到相应,这样就不能A,高可用。

huangtenglong的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【Springcloud】第三篇 Springcloud和Dubbo的对比

未完待续

Cathy 1049

Dubbo和SpringCloud对比

比较spring cloud和dubbo,各自的优缺点是什么 dubbo由于是二进制的传输,占用带宽会更少,性能更优 springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大 dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决。依赖配合,对开发人员要求高,需要慢工出细活,代码改动影响较大,灵活性不足。对微服务的划分要求较高,建议服务提供者必须是变动较少,长期稳定的服务。 springcloud的接口协议约定比较自由且松散,需

qq_40710276的博客 1929

SpringCloud和Dubbo有什么区别

Spring Cloud 的功能很明显比 Dubbo 更加强大,涵盖面更广,而且作为 Spring 的旗舰项目,它也能够与 Spring Framework、Spring Boot、Spring Data、Spring Batch 等其他 Spring 项目完美融合,这些对于微服务而言是至关重要的。而 Spring Cloud 就像品牌机,在 Spring Source 的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础原理有足够的了解。

2301_76166241的博客 2168

面试Dubbo ,却问我和Springcloud有什么区别?

提到Dubbo,很多人都并不陌生,也是这些年来的热点面试内容。笔者也有很深的印象,在n年前的一场面试中,面试官问了一个问题:请至少说出Dubbo的六个包名,笔者当时虽然看过部分源码,但从未关注过包名,内心五味杂陈,当场就懵了。当然了,除开这种角度奇怪的提问,Dubbo也有一些看起来比较"正常"的面试题,比如著名的:Dubbo 和 Springcloud 有什么区别?

战斧的博客 7922

SpringCloud(一):SpringCloud和Dubbo的对比

词

断橋殘雪的博客 3446

springCloud和dubbo的对比

springCloud是什么? spring官网 springCloud是分布式微服务架构下的一站式解决方案,是各个微服务技术架构落地技术的集合体,俗称微服务全家桶。 springCloud和springBoot的关系 关系 springBoot不依赖与springCloud,但是springCloud依赖于springBoot 描述 应用服务化拆分+消息中间件 springClo...

脚踏实地博客 1026

[SpringCloud系列004] SpringCloud和dubbo有哪些区别?

原 https://blog.youkuaiyun.com/anningzhu/article/details/76599875 一.两者的模块组成: 1、Dubbo主要分为服务注册中心,服务提供者,服务消费者,还有管控中心; 2、相比起Dubbo简单的四个模块,SpringCloud则是一个完整的分布式一站式框架,他有着一样的服务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,...

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 6580

SpringCloud 与 Dubbo 的区别详解

SpringCloud 是一个用于构建云原生应用的框架集合,它为开发者提供了一套完整的工具链,用于快速搭建分布式系统。SpringCloud 基于SpringBoot提供了丰富的组件,如配置管理、服务注册与发现、断路器等采用声明式的编程模型,易于上手与 SpringBoot 无缝集成,开箱即用适用于各种部署环境,如本地、云端等Dubbo是阿里巴巴开源的一个高性能、轻量级的 RPC 框架。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

py0007的博客 3821

10个方面分析Dubbo和SpringCloud有什么区别

Spring Cloud 在开发过程中通过整合子项目可以顺利完成组件融合,而 Dubbo 需要通过实现各种 Filter 进行定制,开发成本和技术难度相对较高。:Dubbo 默认使用单一长连接和 NIO 异步通讯,适合小数据量大并发的服务调用,支持多种通信协议;Spring Cloud 使用 HTTP 协议的 REST API,在通信速度上 Dubbo 略胜。:Dubbo 服务依赖较重,需要版本管理机制,程序入侵较少;

威哥爱编程,华为 HDE,鸿蒙极客、优快云博客专家、《鸿蒙 HarmonyOS 5/6 开发之路》系列图书第一作者 5343

SpringCloud和Dubbo的区别及Dubbo和Feign远程调用的差异

SpringCloud和Dubbo的区别及Dubbo和Feign远程调用的差异

8年 Java 全栈开发经验,专注于后端架构、JVM 优化与面试实战。用硬核源码解析 + 实战案例,帮你从基础到进阶,吃透 Java 核心。 3710
上一篇: SpringCloud学习——了解SpringBoot
下一篇: 设计模式学习——迭代器模式
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值