微服务架构对比

微服务理论:面向微服务架构与传统架构、SOA对比,及云化对比 一、Monolith   网上对Microservice进行介绍的文章常常以Monolith作为开头,我也不会例外。原因是,知道了Monolith的不便之后才能更容易地理解Microservice架构模式所具有的各种优点。   首先请回想一下我们所开发的服务是什么样子的。通常情况下,这个服务所对应的代码由多个项目所组成,各个项目会根据自身所提供功能的不同具有一个明确的边界。在编译时,这些项目将被打包成为一个个JAR包,并最终合并在一起形成一个WAR包。接下来,我们需要将该WAR包上传到Web容器中,解压 阅读详情

一、服务发现:服务的消费方(Consumer)如何发现服务的提供方(Provider)?

二、负载均衡:服务的消费方如何以某种负载均衡策略访问集群中的服务提供方实例?

三种服务发现模式

服务发现和负载均衡并不是新问题,业界其实已经探索和总结出一些常用的模式,这些模式的核心其实是代理(Proxy,如下图所以),以及代理在架构中所处的位置,

 

 

在服务消费方和服务提供方之间增加一层代理,由代理负责服务发现和负载均衡功能,消费方通过代理间接访问目标服务。根据代理在架构上所处的位置不同,当前业界主要有三种不同的服务发现模式:

模式一:传统集中式代理

 

这是最简单和传统做法,在服务消费者和生产者之间,代理作为独立一层集中部署,由独立团队(一般是运维或框架)负责治理和运维。常用的集中式代理有硬件负载均衡器(如F5),或者软件负载均衡器(如Nginx),F5(4层负载)+Nginx(7层负载)这种软硬结合两层代理也是业内常见做法,兼顾配置的灵活性(Nginx比F5易于配置)。

这种方式通常在DNS域名服务器的配合下实现服务发现,服务注册(建立服务域名和IP地址之间的映射关系)一般由运维人员在代理上手工配置,服务消费方仅依赖服务域名,这个域名指向代理,由代理解析目标地址并做负载均衡和调用。

国外知名电商网站eBay,虽然体量巨大,但其内部的服务发现机制仍然是基于这种传统的集中代理模式,国内公司如携程,也是采用这种模式。

模式二:客户端嵌入式代理 

 

这是很多互联网公司比较流行的一种做法,代理(包括服务发现和负载均衡逻辑)以客户库的形式嵌入在应用程序中。这种模式一般需要独立的服务注册中心组件配合,服务启动时自动注册到注册中心并定期报心跳,客户端代理则发现服务并做负载均衡。

Netflix开源的Eureka(注册中心)[附录1]和Ribbon(客户端代理)[附录2]是这种模式的典型案例,国内阿里开源的Dubbo也是采用这种模式。

模式三:主机独立进程代理

这种做法是上面两种模式的一个折中,代理既不是独立集中部署,也不嵌入在客户应用程序中,而是作为独立进程部署在每一个主机上,一个主机上的多个消费者应用可以共用这个代理,实现服务发现和负载均衡,如下图所示。这个模式一般也需要独立的服务注册中心组件配合,作用同模式二。

 

 

Airbnb的SmartStack[附录3]是这种模式早期实践产品,国内公司唯品会对这种模式也有探索和实践。

三种服务发现模式的比较

上面介绍的三种服务发现模式各有优劣,没有绝对的好坏,可以认为是三种不同的架构风格,在不同的公司都有成功实践。下表总结三种服务发现模式的优劣比较,业界案例和适用场景建议,供架构师选型参考:

模式优不足使用场景公司案例
集中式代理

运维简单

集中治理

语言栈无关

配置麻烦周期长

单点问题

多一跳优性能开销

中大小规模公司都适用,需一定运维能力亿贝,携程,拍拍贷
客户端嵌入式代理无单点,性能好

客户端复杂

多语言麻烦

治理松散

中大规模公司,语言栈较统一

twitter finagle  阿里dubbo

netflix karyon  新浪微博motan

 主机独立进程代理折中方案运维部署复杂中大规模公司,运维能力强airbnb smartstack  Istio ServiceMesh

Spring Boot微服务架构(十四):传统架构与微服务架构的开发成本对比分析 摘要: CRM系统开发中,传统单体架构与微服务架构的成本差异显著: 初期投入:单体架构成本低(团队小、技术栈简单),微服务需额外投入分布式技术、团队拆分和工具链搭建。 开发效率:单体架构在小功能开发时更快,但涉及多模块修改时测试/部署成本剧增;微服务通过服务拆分实现并行开发与独立部署,长期效率更高。 扩展维护:单体架构随业务增长面临代码耦合、性能瓶颈等问题,维护成本飙升;微服务通过服务自治和弹性扩展,长期成本更低。 团队协作:单体架构沟通简单但灵活性差,微服务需规范接口契约但能降低跨团队依赖。 结论:简单项 阅读详情

相关推荐

19、微服务架构与单体架构的对比分析

本文详细分析了微服务架构与单体架构的特点、优缺点及适用场景,并介绍了容器化技术(如Docker和Kubernetes)在实际项目中的应用。通过对比两种架构在扩展性、安全性、灵活性等方面的差异,结合架构选择的决策流程图,帮助读者根据项目需求选择合适的架构方案。此外,还涵盖了容器编排工具Kubernetes的基本概念和部署步骤,为实际开发和部署提供参考。

efc1234567的博客 96

几种微服务技术的对比

分布式架构:应用程序根据业务功能对系统进行不同粒度大小的拆分,每个业务模块都将会作为一个独立的项目开发,称为一个服务。 服务集群:将一个服务拆分成不同的模块组件,而每个拆分的模块组件都要遵循单一职责的原则以及面向服务,对外暴露接口。 阿里巴巴的Nacos的强大之处在于即支持Dubbo的远程调用,同样也支持Feign的远程调用。

m0_64758444的博客 2885

分布式技术之微服务框架对比

从服务调用方式、服务熔断机制、配置方式、消息总线、数据流、批量任务等角度对比现今dubbo和spring cloud的区别

认识微服务-微服务对比

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件2、服务拆分与远程调用任何分布式架构都离不开服务拆分。2.1、服务拆分微服务拆分几个原则:①、不同微服务,不可以重复开发相同业务。

qq_47387991的博客 4448

手把手教你逆向分析某里系bx-ua参数(以225版本为例)

本文详细解析了某里系应用bx-ua参数的逆向工程实战方法,重点拆解其三层加密体系(二进制加密、字符替换和Base64编码)。通过工具链配置和实战案例,帮助开发者掌握逆向分析技巧,适用于合法合规的安全研究和加密技术评估场景。

weixin_33220360的博客 413

Deeplabcut实战:从数据标注到行为分析的全流程解析

本文详细解析了Deeplabcut从数据标注到行为分析的全流程实战技巧,包括项目创建、配置文件定制、智能帧提取、高效标注方法、模型训练优化以及多视角融合等高级应用。通过具体案例和实用参数配置,帮助研究者快速掌握这一行为分析工具,提升实验效率和准确性。

weixin_29057163的博客 247

微前端之 二 常用框架对比

wujie(腾讯) Micro App (京东) qiankun (蚂蚁金服) single-spa

我的世界我的光彩 4837

提示deepseek生成完整的json用于对接外部API

通过精准的提示词设计(字段过滤、格式约束)、动态验证机制(自检与修正)和官方模板参考,可有效确保DeepSeek生成的JSON纯净无冗余。

神棍之路 2309

微服务架构的六种模式

1.微服务架构模式方案 用Scale Cube方法设计应用架构,将应用服务按功能拆分成一组相互协作的服务。每个服务负责一组特定、相关的功能。每个服务可以有自己独立的数据库,从而保证与其他服务解耦。     1.1 聚合器微服务设计模式         聚合器调用多个服务实现应用程序所需的功能。它可以是一个简单的Web页面,将检索到的数据进行处理展示。它也可以是一个更高层次的组合微服务...

weixin_33859231的博客 1059

小程序选项卡以及swiper套用(跨页面)

选项卡tab和swpier之间的套用 其实我之前写过一篇选项卡的切换demo,大家阔以参考一下 小程序多个选项卡切换 那今天写这个demo呢,是因为项目需求,所以仅供参考。 我是拿到了home.wxml的数组下标, 通过url传参的方式去将这个id传到下一个页面, 下一个页面接收以后再将id赋值给对应的tabI或者currentId(swiper 的下标) 实现上一个页面进来以后直接进入对应的页...

Rechal_Mei的博客 3597

World Creator地形导入UE

导出预设选择高度图(heigh map)格式选择PNG 16位,或者RAW 16位,需要反转y轴(与虚幻不同),命名格式会自动带一个× , 将×改成_ 或者删掉自己命名 (虚幻名称不支持x符号)导入虚幻 , 修改Z轴 , 就是用 地形最高 - 地形最低 , 然后除以512 , 再乘以100。把这个数字填入Z轴缩放 , 点击生成即可。

UE星空 2155

微架构优劣势对比:单体应用、SOA、微服务

微架构优劣势对比:单体应用、SOA、微服务

csdn_life18的博客 737

大厂面经:大疆嵌入式面试题及参考答案(4万字长文:持续更新)

目录 Linux 系统调用的过程,中间发生了什么? 表格总结 Linux 中断流程,谈谈你对中断上下文的理解 中断流程 中断上下文理解 Linuxschedule()函数的原理和调用的时机 schedule()函数原理 调用时机 页表实现机制,分页的缺点? 页表机制 分页的缺点 介绍操作系统的多级反馈调度策略,时间片轮转,在项目中如何指定优先级来调度进程完成快速响应(nice命令) 多级反馈队列调度 时间片轮转 使用nice命令 聊内存分配,进程内存分配,段页式存

大模型大数据攻城狮的专栏 4172

微服务架构与传统单体架构的对比

某电商企业订单系统扩展时,微服务资源利用率提升40%,成本降低30%。

破损的天堂鸟博客 1258

Veritas NetBackup8.1.1客户端安装

1.在客户机打开安装包运行Browser 2.选择NetBackup Client Software Installation 3.下一步 4.接受,下一步 5.我选择自定义安装,下一步 6.我选择安装到D盘 7.默认下一步 8.使用域管理账户 9.输入服务器安装了服务端的那一台名称 10.输入服务端生成的令牌,选择“I recognize the fingerprint for this host.Proceed with the certificate deploymen”下一步

万物皆可学 2万+

基于Simulink的雷达跟踪系统仿真(附源码)

此示例包含对雷达系统的基本特征进行建模的子系统。该模型是用于目标位置和速度检测的雷达系统的典型模型。该示例包括雷达脉冲发生器、射频发射器子系统、移动目标的 Simulink 表示、射频接收器和接收模块(Rx 模块)。

珞瑜的博客 3516

微服务架构学习与思考(16):SOA架构与微服务架构对比分析?它们之间区别是什么?

本文系统介绍了SOA架构和微服务架构的发展历程与核心特点。SOA(面向服务架构)作为企业级解决方案出现,通过ESB总线实现服务集成,解决了单体架构的扩展性和复用性问题,但存在ESB复杂度高、部署困难等局限。微服务架构则在SOA基础上进一步细化服务粒度,采用轻量级通信协议,实现服务自治和独立部署,配合容器化、DevOps等技术提升系统灵活性。二者在服务粒度、通信机制、技术栈等方面存在显著差异,但都遵循服务化思想。微服务可视为SOA在云计算时代的演进,更适应快速迭代的互联网应用场景。文章还提供了两种架构的详细对

九卷技术录 1049

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

微服务架构和单体架构的优缺点对比。

微服务架构通过将应用程序分解为多个独立部署、松耦合的服务单元,每个服务专注于单一业务功能,通过轻量级协议(如HTTP/REST)通信。细粒度拆分与单一职责独立进程与独立部署多语言技术栈支持弹性与容错机制单体架构所有功能模块集成在单一代码库中,打包为独立单元(如WAR包)运行。统一开发、测试和部署模块间通过函数调用或共享内存通信技术栈单一微服务架构的优势业务解耦:按业务领域拆分,降低复杂度弹性扩展:独立扩缩容,优化资源利用率技术灵活性:多语言编程与模块化技术选型。

破损的天堂鸟博客 1600

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

单体应用、SOA与微服务架构:演进与对比分析

单体应用、SOA与微服务架构:演进与对比分析

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 2001

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

微服务架构与传统单体架构的对比分析

单体架构 1、单体架构所有的模块全都耦合在一块,代码量大,维护困难,微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。 2、单体架构所有的模块都共用一个数据库,存储方式比较单一,微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。 3、单体架构所有的模块开发所使用的技术一样,微服务每个模块都可以使...

白玉杰的博客 3818

【Spring Cloud】微服务架构对比

前言 小编总结一下最近系统学习的Spring Cloud的相关知识,学习之后的总结是对于知识的深入理解和吸收,小编按照学习内容简单罗列一下相关的知识点。 微服务与微服务架构 一、微服务的文章 https://martinfowler.com/articles/microservices.html 推荐阅读这篇文章,里面讲到了微服务的由来和发展的趋势,以及微服务架构的特征...

冯浩月 476

分布式架构与微服务架构对比说明

分布式架构与微服务架构对比说明

爱的叹息的专栏 834

Archipelago后端架构:微服务与单体应用对比

在游戏随机化器领域,Archipelago项目以其支持70+款游戏的跨平台多世界随机化能力而闻名。这种复杂的应用场景对后端架构提出了严峻挑战:如何在保证高性能的同时,支持大量异构游戏客户端的实时数据同步?本文将深入分析Archipelago的后端架构设计,并与现代微服务架构进行对比,探讨不同架构模式在游戏服务领域的适用性。 ## Archipelago架构全景解析 ### 核心架构概览 Ar...

gitblog_00263的博客 830

架构对比:单体架构与微服务架构

本文比较了单体架构与微服务架构的差异。单体架构将应用作为单一单元开发部署,结构简单但耦合度高;微服务则将应用拆分为独立服务,灵活性高但复杂度大。文章从架构特征、扩展性、部署流程、团队需求等维度进行对比分析,并通过电子商务应用案例展示了两种架构的具体实现方式。最后指出架构选择应基于具体业务需求和技术能力,单体适合简单项目,微服务则更适合需要快速迭代的复杂系统。

uzong 644
上一篇: 设计面向领域驱动(DDD)的微服务
下一篇: spring cloud gateway
西游却冻醒
博客等级 码龄11年 47粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值