如何实现前端微服务化

译者按: 微服务在后端开发中大行其道,其实对于越来越复杂的前端应用来说,微服务也是一种不错的选择。

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

对于网页应用,现代的开发方法使得前端部分变得越来越大,与之对应的后端反而变小。我们的网站Weld的代码中90%都是前端相关。我可以想象大多数现代的网页应用都类似。

网页应用一直在演化,网页开发的技术也在不断进步。现代的开发甚至依赖于在同一个项目中使用多个不同的框架。比如我们使用一些依赖于jQuery、AngularJS 1.x的旧的模块,和React、Vue里面的新模块。

单一框架无法应对大型网页应用

我们需要一种方法可以把一个大的项目拆分成很多个小的模块,让它们独自运行。

举个例子:

  • myapp.com:使用静态HTML技术构建的静态页面。
  • myapp.com/settings:使用AngularJS 1.x 构建的旧的设置页面。
  • myapp.com/dashboard:使用React构建的新的控制面板。

能够想象我们需要如下技术:

  • 一个共享的JavaScript代码库比如用于管理路由和用户会话,以及一些共享的CSS。当然要越少越好。
  • 一堆独立的模块,也就是微应用('mini-app')。每一个使用各自的框架搭建,使用不同的代码库管理。
  • 一个可以将所有模块连接起来的发布系统,可以将整个服务运行。任何模块的更新都会触发服务的重启。

前端微服务化

正如大家想到的,那就是前端微服务化。像Spotify, Klarna, Zalando, UpworkAllegro都使用前端微服务化技术来构架他们的网页应用。

实现方案

我总结了一下几种实现方案:

  1. 我认为最好的方案是Single-SPA "meta framework"可以在一个页面将多个不同的框架整合,甚至在切换的时候都不需要刷新页面(这个是demo,支持React, Vue, Angular 1, Angular 2, etc)。可以看Bret Little的介绍
  2. 多个单一页面应用分管不同的URL。该方法使用了NPM/Bower来共享某些功能。
  3. 将微服务包装到IFrames中,然后使用一些库和Window.postMessageAPI来交互
  4. 不同的模块使用共享事件总线(比如,chrisdavies/eev)来交流。每一个模块使用独自开发,并处理所有模块间的交互事件。
  5. 使用Varnish Cache来整合不同的模块。
  6. 使用Web Components来作为一个整合层整合所哟模块。
  7. React部件黑盒技术

资源

更多

转载于:https://my.oschina.net/u/3375885/blog/2885337

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3前端微服务框架是一种基于Vue.js 3的前端开发框架,它旨在帮助开发者构建可扩展和可维护的微服务应用程序。该框架提供了一些核心功能和特性,使得开发者可以更轻松地将前端应用程序拆分为多个独立的微服务,并通过组合这些微服务来构建完整的应用程序。 以下是Vue 3前端微服务框架的一些特点和功能: 1. 模块开发:框架支持将前端应用程序拆分为多个独立的模块,每个模块可以独立开发、测试和部署。这种模块的开发方式可以提高代码的可维护性和可扩展性。 2. 组件架构:框架采用了组件的开发方式,开发者可以将应用程序拆分为多个可复用的组件,每个组件负责特定的功能。这种组件的架构可以提高代码的复用性和可读性。 3. 路由管理:框架提供了路由管理功能,开发者可以通过定义路由来实现不同微服务之间的页面跳转和导航。这样可以使得应用程序具有更好的用户体验和导航功能。 4. 状态管理:框架支持状态管理,开发者可以使用状态管理库来管理应用程序的状态。这样可以使得不同微服务之间可以共享和同步状态,提高应用程序的响应性和一致性。 5. 插件系统:框架提供了插件系统,开发者可以通过使用插件来扩展框架的功能。这样可以使得开发者可以根据自己的需求来选择和集成所需的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值