基于App-Hub实现微应用架构

时间:2024-04-02 07:41:24

作者:李宏训,前端工程师,GE数字集团

如果您还没有Predix试用帐号,请访问https://supportcentral.ge.com/esurvey/GE_survey/takeSurvey.html?form_id=18446744073709715720 申请。请务必准确提供您的信息,我们会以邮件方式通知您注册结果。

什么是微应用

如果我们想实现一个功能很复杂的大型应用程序,经常会随着代码体积的增加而慢慢变得非常难以维护。微应用(microapp)架构的提出,正是为了解决这个问题。
我们可以把一个大型应用根据功能拆成很多个小的应用,然后通过app-hub把这些小应用集成到一起形成一个大型应用。这样的好处是,每个微应用完全可以独立开发、部署、升级,可以选用不同的技术框架,互相之间不会产生直接的影响。即使一个微应用崩溃,也不会影响其他微应用正常使用。

App-Hub

App-hub 是一个nodejs/express 编写的应用,他主要提供如下功能:

  • 提供统一的用户登录/认证流程,在微应用中不用处理登录逻辑
  • 提供一个统一的导航栏,可以在不用的微应用中进行切换
  • 提供一些JS工具,比如通知栏

使用App-hub之后,我们的应用结构如图所示,不同的功能会通过不用的微应用来提供:

基于App-Hub实现微应用架构

App hub 的工作流程如图所示

基于App-Hub实现微应用架构

  1. 当用户打开应用后,app hub 会首先从 tenant-config-service 获取 tenant config, 主要包含UAA的配置信息以及UI-config-service 的地址
  2. 根据UAA配置引导用户进行登录认证
  3. 登录完成后,从 UI-Config-Service 获取用户可以访问的微应用列表
  4. 根据URL对应的微应用,请求微应用的内容并返回给用户

App hub 对集成的微应用会有一定的要求:

  • 微应用的html中应该只有content内容,不包含 html 和 body 等标签
  • 微应用中请求资源的url必须是相对于当前页面的路径
  • 微应用应该符合app-hub的样式规范

感谢使用Predix
- 在使用中您有任何问题,请访问我们的论坛http://bbs.csdn.net/forums/GEPredix GE数字集团的技术专家们会在线回答您的问题。
- 也请访问我们在CSDN的Predix专区http://predix.csdn.net 了解更多Predix的内容和相关活动。