Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微前端学习笔记(1):微前端总体架构概述,从微服务发微

微前端学习笔记(1):微前端总体架构概述,从微服务发微

原创
作者头像
周陆军博客
发布于 2024-06-06 12:15:17
发布于 2024-06-06 12:15:17
4230
举报
文章被收录于专栏:前端博客前端博客

从最初的CS架构,如MFC Java Swing 等,到BS架构,JSP PHP,再到前端后端分离,前端从jquery  GWT-Ext  到 Handlebars ,再到angularJS/Vue/React,反观java 世界,学好 Spring MyBatis ,一路无忧,哎……

微服务

为了解决庞大的一整块后端服务带来的变更与扩展方面的限制,出现了微服务架构(Microservices)

微服务是面向服务架构(SOA)的一种变体,把应用程序设计成一系列松耦合的细粒度服务,并通过轻量级的通信协议组织起来 具体地,将应用构建成一组小型服务。这些服务都能够独立部署、独立扩展,每个服务都具有稳固的模块边界,甚至允许使用不同的编程语言来编写不同服务,也可以由不同的团队来管理

Micro frontends, An architectural style where independently deliverable frontend applications are composed into a greater whole.

微前端实际是一种思想,个人觉得并不是新的黑科技,其关键点还是解耦与分治。

微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将单页面前端应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用还可以独立开发、独立部署。同时,它们也可以在共享组件的同时进行并行开发——这些组件可以通过 NPM 或者 Git Tag、Git Submodule 来管理。

如同微服务一样,微前端就是把系统拆解,解耦,然后组合。如同iphone的供应链管理。

可拆分式微前端
可拆分式微前端

微前端架构旨在解决单体应用在一个相对长的时间跨度下,由于参与的人员、团队的增多、变迁,从一个普通应用演变成一个巨石应用(Frontend Monolith)后,随之而来的应用不可维护的问题。这类问题在企业级 Web 应用中尤其常见。

微前端

微前端是一种类似于微服务的架构,是一种由独立交付的多个前端应用组成整体的架构风格,将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的应用,而在用户看来仍然是内聚的单个产品。

Web 应用开发速度快、用完即走等特性,导致的一个最终结果就是「能用 Web 技术实现的应用,最终都会通过 Web 来实现」。在近几年涌现了一大批之前只能在传统 PC 软件中才能看到的优秀产品,例如:Photoshop、Web Office、Web IDE。尽管随着 Web 标准的演进,前端工程化也在不断演变,从模块化到组件化在到现在的工程化,但在面对跨团队大规模开发、跨团队企业级应用协作,现有的分治设计模式仍然显得有心无力

比如复杂的系统,由于整个系统涉及范围较广,在实际的研发过程中必然会以功能或业务需求垂直的切分成更小的子系统,切分成各种小系统后尽管由于分治的设计理念提升了开发者体验,但是一定程度上降低了用户体验。那能否以一种新的架构模式,既保开发者体验,又能提升用户体验呢。

微前端主要是用于解决:应用增量升级、多技术体系并存、构建大规模企业级 Web 应用而诞生的

目前微前端主要是采用应用分而治之 + 动态加载 + SPA 应用的模式来解决大规模应用带来的一系列问题。

为什么需要微前端?

  • 遗留系统迁移。解决遗留系统,才是人们采用微前端方案最重要的原因。
  • 聚合前端应用。微服务架构,可以解耦后端服务间依赖。而微前端,则关注于聚合前端应用。
  • 热闹驱动开发。新的技术,既然很热闹,那么就学吧。

微前端的实现,意味着对前端应用的拆分。拆分应用的目的,并不只是为了架构上好看,还为了提升开发效率。

微前端页面布局示范
微前端页面布局示范

微前端优势:

  • 应用自治。只需要遵循统一的接口规范或者框架,以便于系统集成到一起,相互之间是不存在依赖关系的。
  • 单一职责。每个前端应用可以只关注于自己所需要完成的功能。
  • 技术栈无关。主框架不限制接入应用的技术栈,子应用具备完全自主权。你可以使用 Angular 的同时,又可以使用 React 和 Vue。
  • 项目独立:独立开发、独立部署 子应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新

微前端缺点:

  • 应用的拆分基础依赖于基础设施的构建,一旦大量应用依赖于同一基础设施,那么维护变成了一个挑战。
  • 拆分的粒度越小,便意味着架构变得复杂、维护成本变高。
  • 技术栈一旦多样化,便意味着技术栈混乱。

前端微服务化

前端微服务化,是微服务架构在前端的实施,每个前端应用都是完全独立(技术栈、开发、部署、构建独立)、自主运行的,最后通过模块化的方式组合出完整的前端应用。其架构如下图所示:

前端微服务化
前端微服务化

采用这种方式意味着,一个页面上同时存在二个及以上的前端应用在运行。而路由分发式方案,则是一个页面只有唯一一个应用。

如何去拆分应用

技术方式

  • 路由分发式。通过路由将不同的业务分发到不同的、独立前端应用上。其通常可以通过 HTTP 服务器的反向代理来实现,又或者是应用框架自带的路由来解决。
  • 前端微服务化。在不同的框架之上设计通讯、加载机制,通过模块的方式组合出完整的前端应用,以在一个页面内加载对应的应用。
  • 微应用。通过软件工程的方式,在部署构建环境中,组合多个独立应用成一个单体应用。即在开发时,应用都是以单一、微小应用的形式存在,而在运行时,则通过构建系统合并这些应用,组合成一个新的应用。
  • 微件化。开发一个新的构建系统,将部分业务功能构建成一个独立的 chunk 代码(或称SDK),使用时只需要远程加载即可,如网站加载第三方广告与统计。
  • 前端容器化。通过将 iFrame 作为容器,来容纳其它前端应用。
  • 应用组件化。借助于 Web Components 技术,来构建跨框架的前端应用。
  • SSR服务端渲染合并。利用SSR服务,渲染不同的HTML片段,然后拼凑成完整的HTML文件,直出。

业务拆分

  • 按照业务拆分。
  • 按照权限拆分。
  • 按照变更的频率拆分。
  • 按照组织结构拆分。利用康威定律来进一步拆分前端应用。
  • 跟随后端微服务划分。实践证明, DDD 与事件风暴是一种颇为有效的后端微前端拆分模式,对于前端来说,它也颇有有效——直接跟踪后端服务。

微前端的整体架构

微前端架构示例
微前端架构示例
微前端项目加载
微前端项目加载

微前端部署平台

目前较成熟的微前方案有 qiankun、micro-app、EMP 方案,但是它们与MF有着本质的不同,那就是对“微前端”的定义:

方案

微的定义

微前端的定义

Module Federation

模块

由多个互相独立的模块聚合而成的应用

qiankun/icestark等

应用

由多个互相独立的应用聚合而成的应用

定义上的不同决定了技术实现的不同:

方案

技术实现

Module Federation

模块本质上是JS代码片段,这种代码片段一般称为chunk。因此,模块的聚合,实际上是chunk的聚合。

qiankun/icestark等

应用本质上是HTML,而在SPA中,HTML又是main.js进行填充的。因此,应用的聚合,实际上是main.js的聚合。

技术实现的不同又决定了使用场景的不同:

方案

使用场景

Module Federation

是一种技术升级的创造性工作,有一定成本,目的是为了让系统具备更强大的能力。

qiankun/icestark等

是一种维持现状的保守性工作,成本极小,目的是为了让系统拥有更长久的生命力。

MF的实现其实并没有魔法,仅仅是异步chunk罢了。即便在MF中,不管是共享模块还是远端模块,其实还是使用的require.ensure去加载一些异步chunk罢了。只不过稍有不同的是,因为牵扯到依赖共享的逻辑,会有一个shared-scope的概念,用来实现依赖共享的相关逻辑。

这整个过程跟webpack5是没有绑定关系的,也就是说MF并非webpack5的专属功能,Rollup和webpack4都可以实现MF。更多的推荐查看:

参考文章:

微前端在美团外卖的实践 https://tech.meituan.com/2020/02/27/meituan-waimai-micro-frontends-practice.html

微前端如何落地? https://baijiahao.baidu.com/s?id=1638313846156942854&wfr=spider&for=pc

可能是你见过最完善的微前端解决方案 https://zhuanlan.zhihu.com/p/78362028

转载本站文章《微前端学习笔记(1):微前端总体架构概述,从微服务发微》, 请注明出处:https://www.zhoulujun.cn/html/webfront/engineer/Architecture/9029.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
多组学文献分享--高危神经母细胞瘤的纵向单细胞多组图谱揭示了化疗诱导的肿瘤微环境重建
追风少年i
2025/04/17
930
多组学文献分享--高危神经母细胞瘤的纵向单细胞多组图谱揭示了化疗诱导的肿瘤微环境重建
空间转录组的几个分析要点及经典文献分享
ST最适合回答三种生物问题:首先可以阐明组织的细胞类型组成;第二类问题与细胞相互作用有关;最后可以帮助阐明组织成分之间的分子相互作用。
追风少年i
2023/02/13
2.2K0
空间转录组的几个分析要点及经典文献分享
10X空间转录组数据中研究并可视化体细胞突变
Somatic point mutations are detectable in spatial transcriptomics data
追风少年i
2024/03/26
2810
10X空间转录组数据中研究并可视化体细胞突变
Nature|单细胞多组学绘制小鼠新皮质发育图谱
哺乳动物的大脑皮层具有着无与伦比的细胞类型多样性,为了维持皮质正常的分层与行使功能,这些细胞类型是在一系列严格约束下产生的;此外,随着皮质的发育,大量细胞还会经历细胞状态的转换。因此,研究支配皮质细胞类型的产生和组织的分子机制存在难度。本研究中,作者采用单细胞RNA测序、单细胞ATAC测序以及空间转录组技术,单细胞多组学的结合生成了发育中的小鼠新皮质的综合图谱,绘制了整个小鼠皮质发生过程中所有细胞类型的发育轨迹,确定了伴随个体细胞类型谱系规范的纵向分子动力学,从而能够对异常皮质发生的机制进行探索。
生信交流平台
2022/09/21
1K0
Nature|单细胞多组学绘制小鼠新皮质发育图谱
顶刊分享---肿瘤进化和微环境相互作用(突变 + 单细胞 + 空间)
追风少年i
2024/11/01
1430
顶刊分享---肿瘤进化和微环境相互作用(突变 + 单细胞 + 空间)
时空月速览 |191篇文章,追踪发育/再生/进化/疾病前沿研究(2022年11月)
近年来,单细胞和空间组学技术快速发展,多年被Nature Methods评为年度技术,且在生命科学领域得到广泛应用。为了帮助大家更高效、更快速地了解单细胞空间组技术研究和应用的科研前沿,华大时空联合国家基因库生命大数据平台(CNGBdb)联合推出《时空月速览》专栏,每月分享单细胞空间组学技术及其在生命科学领域的研究进展,遴选重要研究成果并解读分享。
尐尐呅
2023/03/02
5250
时空月速览 |191篇文章,追踪发育/再生/进化/疾病前沿研究(2022年11月)
Nature子刊:支持人类情景记忆编码的振荡信号与基因表达的相关性
全基因组关联研究(genome-wide association studies, GWAS)和人类大脑的基因表达谱揭示了研究复杂大脑现象的遗传基础的能力。这些数据集主要用于非侵入性成像研究,特别是与结构MRI或静息状态fMRI的相关性。现有的方法依赖于已发表的死后脑基因表达数据集,这意味着神经生理和行为数据不是来自提供基因表达数据的同一人。这限制了此类方法确定基因如何支持关键的认知过程(如情景记忆)的潜在影响,并突显出开发新的个人同时贡献了神经生理和基因表达数据的数据集的必要性。另一个影响先前研究的问题是,神经生理测量,如静息状态fMRI,与认知现象没有直接联系。因此,我们以前试图将基因表达水平与成功记忆编码的振荡特征联系起来,因为这些振荡在支持记忆行为方面的基本作用已经在啮齿类动物和人类中得到了很好的确立。这些振荡特征是对编码成功的记忆在给定频带内调制振荡功率的程度的衡量。他们使用植入癫痫标测的颅内电极进行量化,并在受试者执行情景记忆任务时进行记录。我们使用了一个超过10年的颅内脑电图(iEEG)记录的大型数据库,拼凑出这些振荡信号在大脑各区域的分布。我们确定了与这些振荡信号相关的基因,包括那些以前在啮齿动物研究中与记忆形成有关的基因,与自闭症谱系障碍(autism spectrum disorder, ASD)等认知障碍相关的基因,以及作为进一步研究的主要目标的新基因。然而,与其他研究一样,该数据集并不能同时受益于来自同一个体的神经生理和基因表达信息。
悦影科技
2022/01/19
3350
多组学(单细胞、空间转录+蛋白、外显子、甲基化)揭示神经母细胞瘤异质性图谱
为了更好地表征神经母细胞瘤组中不同的恶性和免疫细胞特征,使用多重离子束成像(MIBI),结合金属偶联抗体和time-of-flight质谱,在福尔马林固定石蜡包埋组织中生成41种蛋白质的高分辨率空间图。首先对两个高质量肿瘤标本(HTAPP-102-SMP-11 (II组)和HTAPP-130SMP-91 (IV组))的MIBI捕获进行平片处理,生成大的2000 μm x 2000 μm阵列。CD56/NCAM(神经母细胞瘤标志物)、增殖(Ki67)和转录活性染色质(H3K27ac)的表达都在肿瘤邻近区富集,而免疫效应物标志物(CD11c、CD4和CD8)在基质邻近区富集。接下来,使用11例患者样本的30个样本(fov)进行了MIBI分析,主要来自II组(n=7)。根据蛋白表达来标注细胞类型,并观察了与sc/snRNA-seq相关的免疫细胞密度的样本间和区域间差异。邻域分析(n=30)确定了细胞类型共定位的广泛模式。与PLANB一致,恶性肿瘤细胞分裂成一个免疫细胞很少的邻域,而免疫细胞丰富的邻域有四种不同的原型。例如,邻域“3”特别富含B细胞,而巨噬细胞主要定位于邻域“2”,也含有CD4 T、CD8 T和树突状细胞(DC)。
追风少年i
2024/03/08
2480
多组学(单细胞、空间转录+蛋白、外显子、甲基化)揭示神经母细胞瘤异质性图谱
开源数据代码,学习如何通过单细胞多组学数据鉴定关键因子
◉ 研究设计和计算分析的示意图。3DG,三维基因组。◉ WNN 表示的单核 RNA 测序和单核 ATAC 测序数据投影到 UMAP 上,显示主要细胞类型。◉ 伴随的饼图展示了在主要协变量(性别、脑库、脑区、年龄组和细胞类型)中代表的细胞核比例。MSSM,西奈山医学院。◉ 基于最高平均表达量的前两个基因标记可视化其在主要细胞类型中的基因表达。◉ 主要细胞类型中基因表达与相应基因活性(由染色质可及性推导)之间的余弦相似度。◉ 使用方差分解方法分析协变量对基因表达(左,n = 16,661 基因)、染色质可及性(中,n = 181,432 峰值)和细胞类型组成(右,n = 10 种细胞类型)的解释方差。在每个小提琴图中,中心线表示中位数,箱子表示四分位距(IQR),而须线表示在 1.5× IQR 范围内的最高/最低值。超出第一和第三四分位数 1.5 倍 IQR 的点被视为异常值。
生信菜鸟团
2025/04/04
1160
开源数据代码,学习如何通过单细胞多组学数据鉴定关键因子
空间组学 | NG | 人前列腺的空间转录组分析
◉ 队列1包括7名因膀胱癌接受根治性膀胱切除术患者的前列腺,每个前列腺根据解剖位置取样。所有样本均进行了BD Rhapsody单细胞核RNA测序。◉ 队列2由4名同样接受根治性膀胱切除术患者的前列腺组成,每位患者前列腺的外周区、移行区和中央区各取一个样本。这些样本随后进行了BD Rhapsody单细胞转录组测序、10x Genomics Multiome和10x Genomics Visium空间转录组测序。◉ 面板a使用BioRender.com创建。◉ b, 按主要细胞身份颜色编码的scRNA-seq(左)、snRNA-seq(中)和snATAC-seq(右)数据的UMAP图。◉ c, scRNA-seq和10x Multiome平台捕获的主要细胞类型的比例。ARC,调控因子和染色质分析;EC,内皮细胞;Epi,上皮细胞;Fib,成纤维细胞;ILC,先天淋巴细胞;SKMC,骨骼肌细胞。
生信菜鸟团
2025/04/26
1240
空间组学 | NG | 人前列腺的空间转录组分析
scRNA分析之后,如何看待结果和进行实验验证?这篇文章告诉你
生信菜鸟团
2025/01/16
2470
scRNA分析之后,如何看待结果和进行实验验证?这篇文章告诉你
文献分享 —— 单细胞和单核RNA测序中细胞类型分布的比较
单细胞核糖核酸(RNA)测序(scRNA-seq)是一种用于估计新鲜组织中单个细胞的细胞组成和转录谱的有效技术。单核RNA测序(snRNA-seq)对于在冷冻或难以分离的组织中进行这种类型的分析是必要的,这些组织不能受到scRNA-seq的影响。组织状态的这种差异导致了每个平台中细胞类型分布的变化。为了确定这些方法的特点及其差异,对结肠和肝组织并行进行scRNA-seq和snRNA-seq。
生信菜鸟团
2023/01/05
1.5K0
文献分享 —— 单细胞和单核RNA测序中细胞类型分布的比较
文献速递 | 6月单细胞测序文章分享
本期小编一共为大家统计了94篇6月份发表的9分以上单细胞测序相关文章,其中影响因子15.0以上的文章有41篇!
生信交流平台
2022/09/21
4480
文献速递 | 6月单细胞测序文章分享
心肌梗死心脏的单细胞和空间转录组学分析
文章标题:《Single-cell and spatial transcriptomics of the infarcted heart define the dynamic onset of the border zone in response to mechanical destabilization》
生信技能树jimmy
2024/05/11
7950
心肌梗死心脏的单细胞和空间转录组学分析
多组学文章分享----非小细胞肺癌脑转移的单细胞和空间基因组图谱
追风少年i
2025/03/03
1570
多组学文章分享----非小细胞肺癌脑转移的单细胞和空间基因组图谱
单核转录组测序(snRNA-seq)鉴定多核骨骼肌纤维的转录异质性
尽管大多数细胞都包含单个核,但是诸如滋养细胞,破骨细胞和骨骼肌纤维之类的细胞类型却需要多核。多核化的一个优势是可以将不同的功能分配给不同的核,但是由于存在共享的细胞质,因此对多核组织内的转录异质性进行全面的研究一直是一项挑战。在这里,作者利用单核RNA测序(snRNAseq)来确定多核骨骼肌纤维内转录多样性的程度。小鼠骨骼肌的核在整个寿命过程中都具有轮廓,这揭示了在出生后发育以及衰老的肌肉中会出现独特的肌核种群。作者的数据集还提供了一个平台,用于发现与肌肉细胞罕见的特殊区域相关的基因,包括肌腱连接标记和在神经肌肉连接处表达的经过功能验证的因子。
生信技能树jimmy
2021/04/16
2.6K0
单核转录组测序(snRNA-seq)鉴定多核骨骼肌纤维的转录异质性
23分多组学文献:胃肠腺癌的分子比较分析
今天和大家分享一篇发表在cancer cell上的文章,影响因子23.916,这是一篇多组学分析文章。
百味科研芝士
2020/06/09
2.6K0
Nat. Methods | Tangram利用深度学习和空间比对解析单细胞转录组
本文介绍由美国哈佛-麻省理工Broad研究所的Aviv Regev教授团队发表在 Nature Methods 的研究成果:本文作者提出了Tangram,一种将sc/snRNA-seq数据与从同一区域收集的各种形式的空间数据对齐的方法。Tangram可以处理来自多个形式的空间数据,包括MERFISH、STARmap、smFISH、空间转录组学(Visium)和组织学图像。Tangram可以映射任何类型的sc/snRNA-seq数据,包括多模态数据,例如来自SHARE-seq的数据。作者通过在视觉和躯体运动区的单细胞分辨率上重构全基因组解剖整合空间图,在健康小鼠脑组织上展示了Tangram。
DrugAI
2022/03/25
8870
Nat. Methods | Tangram利用深度学习和空间比对解析单细胞转录组
【生信文献200篇】27 多靶点自体免疫细胞技术
「英文标题」 Immune recognition of somatic mutations leading to complete durable regression in metastatic breast cancer
生信菜鸟团
2021/04/29
9160
【生信文献200篇】27 多靶点自体免疫细胞技术
【生信文献200篇】25 2433个乳腺癌患者的173个基因的突变全景图
英文标题:The somatic mutation profiles of 2,433 breast cancers refine their genomic and transcriptomic landscapes
生信菜鸟团
2021/04/29
1.1K0
【生信文献200篇】25 2433个乳腺癌患者的173个基因的突变全景图
推荐阅读
多组学文献分享--高危神经母细胞瘤的纵向单细胞多组图谱揭示了化疗诱导的肿瘤微环境重建
930
空间转录组的几个分析要点及经典文献分享
2.2K0
10X空间转录组数据中研究并可视化体细胞突变
2810
Nature|单细胞多组学绘制小鼠新皮质发育图谱
1K0
顶刊分享---肿瘤进化和微环境相互作用(突变 + 单细胞 + 空间)
1430
时空月速览 |191篇文章,追踪发育/再生/进化/疾病前沿研究(2022年11月)
5250
Nature子刊:支持人类情景记忆编码的振荡信号与基因表达的相关性
3350
多组学(单细胞、空间转录+蛋白、外显子、甲基化)揭示神经母细胞瘤异质性图谱
2480
开源数据代码,学习如何通过单细胞多组学数据鉴定关键因子
1160
空间组学 | NG | 人前列腺的空间转录组分析
1240
scRNA分析之后,如何看待结果和进行实验验证?这篇文章告诉你
2470
文献分享 —— 单细胞和单核RNA测序中细胞类型分布的比较
1.5K0
文献速递 | 6月单细胞测序文章分享
4480
心肌梗死心脏的单细胞和空间转录组学分析
7950
多组学文章分享----非小细胞肺癌脑转移的单细胞和空间基因组图谱
1570
单核转录组测序(snRNA-seq)鉴定多核骨骼肌纤维的转录异质性
2.6K0
23分多组学文献:胃肠腺癌的分子比较分析
2.6K0
Nat. Methods | Tangram利用深度学习和空间比对解析单细胞转录组
8870
【生信文献200篇】27 多靶点自体免疫细胞技术
9160
【生信文献200篇】25 2433个乳腺癌患者的173个基因的突变全景图
1.1K0
相关推荐
多组学文献分享--高危神经母细胞瘤的纵向单细胞多组图谱揭示了化疗诱导的肿瘤微环境重建
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档