企业应用现代化之 微服务架构怎么选?Dubbo、Spring Cloud、Istio终极对决

深入浅出微服务:40个微服务架构实战案例(Dubbo+Springcloud) 微服务在近几年来可以说是十分火爆,我们应该知道微服务的发展历程大致分为6个阶段分别是:单体应用阶段提、垂直应用阶段、分布式系统阶段、服务治理阶段、微服务阶段、最后到服务网格阶段。 既然谈到微服务我们不得不说说它的主流框架: Dubbo 致力于提供高性能和透明化的远程服务调用方案和SOA服务治理方案。 采用了Spring的配置方式。基于Spring的可扩展机制( Schema )可透明化接入应用,对应用没有API侵入,支持API调用方式(官方不推荐)。只需用Spring加载Dubbo的配置即可 阅读详情

本篇文章将带您系统了解关于企业级微服务治理与开发的关键概念及选型指南,希望能为您的企业级现代化应用建设提供启发。


微服务是应用现代化趋势下的必然选择

        

随着数字经济的不断发展,企业面临着更加多样化、敏捷化的新时代IT需求。

· 用户行为的变化:业务应用的用户访问不可预估,突发性访问增多,存在临时热点事件或大促期间等不可控业务高峰期。

· 业务模式的变化:所有业务访问都是通过互联网渠道,包括Web、手机App、微信小程序等。

· 业务系统开发的变化:应用再也不像以前半年或一年进行规划,随时会有需求变化,两周一个迭代成为常态。业务应用交付周期短,质量要求高。

· 运维模式的变化:要求全天候值守,在线升级和快速响应,不同团队特别是外包团队使用不同的技术栈,无法统一管控。

因此,评估一家企业是否需要采用微服务架构,往往考察这五大关键条件:数据量和业务复杂度,团队规模,应对业务流量变化,是否需求足够的容错容灾,以及功能重复度和差错成本。

在日益激烈的数字化竞争下,企业必须更快地拥抱市场变化、随时响应新的用户需求,比对手更迅速地将产品推向市场。

微服务作为加速企业提升敏捷创新能力的重要抓手,能够帮助企业快速实现独立更新和部署应用,快速应对市场变化,逐渐成为企业加速应用现代化的必然选择。

微服务架构怎么选?

· Dubbo

Dubbo是比较早期的一款微服务架构,可以使得应用通过高性能的 RPC 实现服务的输出和输入功能,和Spring框架无缝集成。

优点是RPC长连接+NIO,性能更高;但协议的局限性,会限制生态发展和兼容性。

· Spring Cloud

Spring Cloud是基于Spring Boot的一整套实现微服务的框架,提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线等组件。Spring Cloud包含了非常多的子框架,其中,Spring Cloud Netflix是其中一套框架,由Netflix开发后来又并入Spring Cloud大家庭,它主要提供的模块包括:服务发现、断路器和监控、智能路由、客户端负载均衡等。

Spring Cloud拥有更成熟的Spring社区生态,更多成熟的企业应用案例;但也存在一定不足,比如跨语言平台问题、微服务治理对代码侵入性较强。

· Istio

Istio 是当前Service Mesh形态上比较热门的实现方案,能够和K8s深度结合,更快速、更便捷地实现服务治理。Istio 提供了一种简单的方法,来创建一个提供负载均衡、服务间认证、监控等的服务网络,且不需要对服务代码进行任何更改。通过在整个环境中部署专门的 sidecar 代理服务,来拦截微服务间的所有网络通信,整个配置和管理通过 Istio的控制面板来做。

作为新一代的微服务架构,它的微服务治理与开发更彻底解耦,适应场景更广泛,很多企业都正在逐步从Spring Cloud向 Service Mesh过渡;但也正是因为技术比较新,企业自研需要一定的学习成本,打破传统IT运维/开发壁垒,考虑引入专业的技术厂商则能够完美地解决这一问题。

上图为Istio的基本运行原理:

1、当用户向 Kubernetes 提交一份新的配置,首先会触发 galley 注册在 kubernetes 中的webhook,webhook 会检查配置是否合法,如图中的步骤1。

2、若配置无法通过校验,则 kubernetes将拒绝用户提交的配置,并给出相应的错误信息。如图步骤2。

3、当配置通过校验后,通过 kubernetes 的通知机制,galley得到配置变更信息

4、Galley 将变更的配置/服务信息转换为 MCP 的格式通过 MCP 协议推送给pilot,如图步骤4。

5、最后一步,pilot 通过 xDS 协议向数据平面推送变更的配置。

以上为当前常见的微服务架构,那么企业实际改造时应该怎么做呢?我们建议:

· 不同类型的应用均可以通过微服务能力进化到现代化应用。

· 需要为传统应用提供一条稳妥的转型路径

· 需要为SpringCloud应用提供一条贴合云原生的、无需大规模适配的转型路径。

微服务架构如何设计?

首先从微服务的定义来看,微服务是一起合作的独立小服务单元,可以同步异步调用,也可以独立拆分、独立部署、独立升级,后端中间件、存储资源、数据库等也是独立的,最佳实践是每个微服务都有自己的database,真正意义上实现微服务应用解耦。

接下来,我们从微服务的必备基础理论,也是企业进行微服务所需遵循的一大原则——康威定律来看:

组织形式等同系统设计。设计系统的组织,其产生的设计等同于组织之内、组织之间的沟通结构。

第一定律:Communication dictates design(组织沟通方式会通过系统设计表达出来)。

人与人的沟通是非常复杂的,一个人的沟通精力是有限的,所以当问题太复杂需要很多人解决的时候,我们需要做拆分组织来达成对沟通效率的管理。在团队内部进行频繁的、细粒度的沟通。对于团队外部,定义好接口,契约,只进行粗粒度的沟通。这样可以降低沟通成本,同时也符合高内聚,低耦合原则。

第二定律:There is never enough time to do something right, but there is always enough time to do it over(时间再多一件事情也不可能做的完美,但总有时间做完一件事情)。

复杂的系统需要通过容错弹性的方式持续优化,不要指望一个大而全的设计或架构,好的架构和设计都是慢慢迭代出来的。因此企业需要拥抱变化,解决当下,先完成一个一个小目标。

第三定律:There is a homomorphism from the linear graph of a system to the linear graph of its design organization(线型系统和线型组织架构间有潜在的异质同态特性)。

你想要什么样的系统,就搭建什么样的团队,反之亦然。

第四定律:The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems(大的系统组织总是比小系统更倾向于分解)。

一个大的组织因为沟通成本/管理问题,总会被拆分成一个个小团队(2 pizza team)。

具体来说,企业在进行微服务架构改造时,可以遵循以下标准:

· 分布式服务组成的系统。

· 按照业务而不是技术来划分组织。

· 做有生命的产品而不是项目。

· 去中心化。

· 自动化运维(DevOps)。

· 容错。

· 快速演化。

同时,根据企业的自身组织架构情况和业务情况进行针对性规划设计。


如您有企业级微服务改造需求,欢迎联系我们,共同探索应用现代化最佳实践。

上一篇:企业应用现代化实用教程 | 如何快、准、狠地进行应用容器化改造?

下一篇:企业应用现代化实用教程 | IT架构师必读的DevOps落地行动指南

微服务框架最全详解(7款主流微服务框架) 微服务已经成为主流,也是大型架构的必经之路,目前国使用的微服务框架主要有:Spring Cloud、Spring Cloud Alibaba、ServiceMesh...等等,下面分别详解@mikechen。Envoy提供了负载均衡、熔断、故障注入等功能。Istio基于Envoy代理,提供了丰富的功能,包括流量管理、服务发现、熔断、故障注入、安全认证、监控和追踪等。微服务架构是一种软件开发和部署的架构风格,在微服务架构中,应用程序被拆分为多个小型、独立的服务单元。 阅读详情

相关推荐

开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比

不论您是一名开发者、架构师、CTO, 如果您曾深度参与在微服务开发中,那么相信您一定有过开源微服务框架或体系选型的疑问:Apache Dubbo、Spring Cloud、gRPC 以及 Service Mesh 体系产品如 Istio,到底应该选型哪一个?这篇文章对这几个框架进行了详细的说明,并在选型方面给了一定的指导意见,相信能给微服务开发者带来一定的帮助。

阿里云云栖号 987

Dubbo3服务部署到 k8s ,接入 Istio 的流量治理体系(Sidecar模式)

Dubbo版本:Dubbo3实验环境:k8s 版本:1.17.6istio版本: 1.7.3。

xueqinglalala的博客 1648

宽带波束形成

介绍了宽带波束形成器的时域滤波结构,以及波束响应的计算公式,宽带波束形成器的波束响应可表示为权重向量和方向向量的积

... 2490

使用istio管理dubbo服务

Istio是什么 Istio,希腊语,意思就跟他的图标一样,意扬帆起航。据说作者为了取名,翻阅了几个小时的希腊字段,主要是为了沿用k8s建立的航海主题,帆船与船舵相互配合才能扬帆起航。 官方对 Istio 的介绍浓缩成了一句话:An open platform to connect, secure, control and observe services. 可以说Istio是用来处理服务间通信的基础设施层,这个简介也介绍了Istio的四个重要的功能: Connect: 控制服务间的调用流量,能够实现灰

sHuXnHs 1741

用迅为RK3588开发板DIY无人机飞控:从电路设计到PID调参全记录

本文详细记录了使用迅为RK3588开发板DIY无人机飞控的全过程,从硬件选型、PCB设计到实时系统构建和PID调参。RK3588核心板凭借其强大的AI算力和丰富接口,成为高性能无人机控制解决方案的理想选择。文章还分享了视觉导航系统集成和实际飞行测试经验,为硬件爱好者提供实用参考。

weixin_29053577的博客 434

无人机中继传输数据链技术,(无人机+自组网)远距离传输技术实现详解

无人机中继传输数据链技术是指利用无人机作为空中移动中继节点,在需要通信的区域上空悬停或移动,以建立和维护通信链路,从而扩展通信范围、提高通信质量和灵活性。1. 通信链路:是无人机中继通信的重要组成部分,包括源节点到中继节点的链路和中继节点到目标节点的链路。同时,它还支持空中到地面的通信,距离大于100km。总的来说,无人机中继传输数据链技术和(无人机+自组网)远距离传输技术都是现代无人机通信领域的重要技术,它们的应用极大地扩展了无人机的通信范围和灵活性,为各种应用场景提供了强有力的支持。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 2079

一文告诉你Istio和 spring cloud该怎么选

相信了解SpringCloud的朋友在刚刚开始接触Istio的时候一定会有一个疑问:Istio和 spring cloud也太像了,他们都可以提供服务发现、负截均衡、限流、链路跟踪、鉴权等微服务治理手段,那么二者的主要区别是什么呢?

liwenxiang629的博客 1511

第1部分 基础算法(提高篇)--第2章 二分与三分1439:【SCOI2010】传送带

1439:【SCOI2010】传送带 时间限制: 2000 ms 内存限制: 65536 KB 提交数: 372 通过数: 212 【题目描述】 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间。 【输入】 输入数据第一行是4个整数,表示A和B的坐标,分别为Ax,Ay,Bx,By 第二行是4个整

zqhf123的博客 838

Istio 可以代替 SpringCloud 吗?

文章来源:https://c1n.cn/GtpjE‍目录背景SpringCloud 与 K8S 对比SpringCloud vs IstioSpringBoot+K8SServiceMesh 的价值| 背景过去,我们运维着“能做一切”的大型单体应用程序。这是一种将产品推向市场的很好的方式,因为刚开始我们也只需要让我们的第一个应用上线。而且我们总是可以回头再来改进它的。部署...

石杉的架构笔记 618

信息安全与技术——(十一)恶意代码检测与防范技术

恶意代码(Malicious Code )或恶意软件(Malware )主要是指以危害信息的安全等不良意图为目的的程序,它们一般潜伏在受害计算机系统中实施破坏或窃取信息。

m0_63853448的博客 5991

在 Esp32 摄像头上实现边缘脉冲 FOMO 物体检测

本文将详细介绍如何在 Esp32 摄像头上实现边缘脉冲 FOMO 物体检测,并提供实现源码

DT程序员的博客 706

从灰度的视角看 Dubbo、Spring、Istio 3 种架构

笔者的文章同时发布于 kubeclub 云原生技术社区,一个分享云原生生产经验,同时提供技术问答的平台,前往查看 一、前言 公司的服务基本上都是容器化应用,也有自研的 CICD 平台,为了支持灰度发布的能力,于是从架构 SDK 和基础设施 2 方面切入考虑。 公司的服务有 300 来个,Java 应用离不开 Spring 生态,但是已有的技术栈并没有使用 Spring 全家桶,在服务发现里用了 Dubbo 协议。因为我们的应用都容器化了,所以基础设施方面就考虑到了 Kubernetes 生态的 Isti.

z344310362的专栏 1982

k8s问题处理

执行 kubectl api-resources 报错如下。

weixin_40548182的博客 944

Java 跨域21-Spring Cloud 与 Dubbo 微服务互通

本文探讨了如何实现Spring Cloud与Dubbo微服务框架的互通,提出了两种核心解决方案:统一使用Nacos作为注册中心,以及在Spring Cloud中集成Dubbo客户端。文章通过电商平台的实际案例,详细说明了服务注册、配置管理的具体实现步骤,并对比了两大框架在协议、服务发现等方面的差异。最终目标是帮助企业解决异构微服务系统间的调用难题,实现业务连续性、系统解耦和资源复用。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Istio集成Spring Cloud/Dubbo:传统微服务迁移实践指南

Istio服务网格作为云原生时代的微服务治理平台,为Spring Cloud与Dubbo等传统微服务框架提供了平滑迁移的解决方案。本文将详细介绍如何通过Istio实现传统微服务的无侵入式升级,解决服务治理中的痛点问题。 ## 传统微服务框架的挑战 在微服务架构转型过程中,以Spring Cloud与Dubbo为代表的开发框架面临着诸多挑战: - **侵入性强**:业务代码需集成SDK依赖,添

gitblog_00881的博客 808

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

主流微服务框架全解析:Spring Cloud、Dubbo、K8S怎么选?

微服务框架是构建分布式系统的"脚手架",今天我们就来全面盘点主流微服务框架的特点和适用场景!

全栈开发工程师 1812

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

微服务框架的介绍

一、什么是微服务 微服务并没有一个官方的定义,可以理解为一种架构风格,将一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 以往的应用程序开发中,应用程序都是单体型,在开发和部署上比较方便,但是随着业务的不断增加,开发迭代和性能瓶颈等问题都会增加开发难...

polo2044的专栏 4万+

Dubbo和Spring cloud、Istio对比

下图是Spring cloud图,Spring cloud注册服务器是eureka,在微服务处是负载平衡Ribbon和断路器 Hystrix,相应于 image.png698×342 12.6 KB 第二张是dubbo图,红字是对应于Spring cloud部件,dubbo = eureka + Ribbon,少了Hystrix,重试和直接失败是有关可靠性和事务性的机制,这方面Dubbo有待提高。 下面一张是高可靠性的Istio,在微服务处是Envoy边车代理,dubbo可以向...

当我谈编程时我谈些什么 1085

从Spring Cloud到Istio:Java微服务架构演进之路(架构师私藏笔记公开)

掌握Java微服务架构中的服务网格(Istio)集成方法,助力系统从Spring Cloud平滑演进。涵盖流量管理、安全通信与可观测性实践,适用于多云与Kubernetes环境。架构师实战经验总结,值得收藏。

StepNexus的博客 1109

Dubbo 与 gRPC、Spring Cloud、Istio 的关系

Dubbo 与 gRPC、Spring Cloud、Istio 的关系

深圳市多克创新科技有限公司 888

细听分说Dubbo、SpringCloud、Istio微服务框架

文章目录前言一、Dubbo、SpringCloud、Istio框架简介1.Dubbo2.SpringCloud2.Istio新晋微服务框架二、Dubbo、SpringCloud、Istio架构图1.Dubbo架构图2.SpringCloud架构图2.Istio架构图三、Dubbo、SpringCloud、Istio数据对比总结 前言   随着互联网时代的快速发展、产品更新迭代的同时,也产生了很多优秀的框架,可谓是时势造英雄啊,今天就让我们来一起看看各大互联网企业最爱使用的几个框架(Dubbo、Spring

main方法 1792

Dubbo与Spring Cloud等微服务框架的深度比较及选型指南

在当今的微服务架构领域,Dubbo与Spring Cloud作为两大主流框架,各自拥有独特的设计理念与技术优势,广泛应用于不同规模和类型的项目中。本文将从多个维度深入比较Dubbo、Spring Cloud以及其他代表性微服务框架(如gRPC、Istio),以帮助开发者和架构师根据项目需求做出更合适的选择。综上所述,选择合适的微服务框架需依据具体项目需求、团队技术栈、未来可扩展性等多方面因素综合考量。每种框架都有其独到之处,正确选型能极大提升开发效率和系统稳定性。

木南曌的博客 1759

springcloud和istio_Istio 可以代替 Spring Cloud 吗?

过去,我们运维着“能做一切”的大型单体应用程序。 这是一种将产品推向市场的很好的方式,因为刚开始我们也只需要让我们的第一个应用上线。而且我们总是可以回头再来改进它的。部署一个大应用总是比构建和部署多个小块要容易。集中式:分布式:集群分布式和集中式会配合使用。我们在搭建网站的时候,为了及时响应用户的请求,尤其是高并发请求的时候,我们需要搭建分布式集群来处理请求。我们一个服务器的处理能力是有限的。如果...

weixin_30118919的博客 2004

微服务架构详解

微服务架构是一种将应用程序构建为一组相互连接的小型、自包含组件的方法。它就像有一组工人都在协调地工作,有着共同的目标,每个人都从特定的专业知识出发进行操作。这与之前的单体结构不同,单体结构就像有一个大人物做所有事情,并且随着应用程序变得复杂,控制起来很麻烦。微服务架构与传统的单体架构在以下方面有所不同。微服务将功能分散到各个独立的服务中,而单体架构则将所有功能组合在单个代码库中。松耦合:微服务通过 API 进行通信,具有高内聚和低耦合的特点,而单体应用中,组件通常是耦合且内聚的。

宝爷的专栏 1229
上一篇: 数字化转型新CP | 云原生+边缘计算 实践分享
下一篇: 解锁云原生新场景 | 云原生加速云边端一体化发展
灵雀云
博客等级 码龄9年 439粉丝 205原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值