前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端微服务一站式解决方案-不是切页面就是微服务

前端微服务一站式解决方案-不是切页面就是微服务

作者头像
吴文周
发布2020-10-15 15:02:01
1K0
发布2020-10-15 15:02:01
举报
文章被收录于专栏:吴文周的专栏吴文周的专栏
  • 需求背景多系统集成
  • 常见解决方法,iframe,ng代理,single-spa(乾坤)
  • 为啥不用iframe能规避好多问题,技术没有前瞻性,体验差
  • 自以为的解决方案跑个demo以为这以为那,其实真实的业务场景远远比自己想想的要复杂(说的就是我自己)
  • 除了前端的兼容性问题,服务端的监控管理更为重要

(前端)子项目的umi的工程注意事项

  • 移除子项目的头部配置项 headerRender:false, logo去除,头部样式padding调整高度不能被主工程头部遮挡 
  • 样式慎用position:fixed 会影响到父工程 
  • 样式污染,注意使用css-scoped, 全局body样式之类谨慎操作 ,尤其是同时使用同一个ant这样的ui框架,慎重修改原有组件的全局样式
  • 给 body 、 document 等绑定的事件,请在 unmount 周期清除  
  • localStorage等全局数据储存修改谨慎操作,子工程内部建议添加命名空间不与其他工程冲突

(前端)qiankun微服务特性代码与本地独立服务代码区分

  • 建议使用cross-env qiankun=xx 环境变量加以区分以保证兼容性(实际场景由子服务自行决定)
  • 举例个别场景实际开发中,还是是否为qiankun为判断准则
  • 配置项中 outputPath: process.env.qiankun?'./dist/crm':'./dist'
  • 项目模板中(id为root的div渲染会有影响建议判断)<% if (!process.env.qiankun) { %> <% } %> 
  • 部分样式
  • 容器修改适配性
  • 半个小时是肯定改不完的

(前端)工程通信(其他api暂时用不到,详见通信文档飞冰)

父工程

  • import { store } from '@ice/stark-data'; store.set('yzf_cloud_market_user', userInfo); 
  • 设置登录后当前用户信息 localstorage.setItem('yzf_cloud_market_user',userInfo) 

子工程 

  • 子应用 import { store } from '@ice/stark-data'; // 获取当前用户(需要对数据进行格式化JSON.parse(userInfo))
  • 方式一:const userInfo = store.get('yzf_cloud_market_user'); 
  • 方式二:const userInfo = localStorage.getItem('yzf_cloud_market_user')

(后端)系统监控与接口管理(从不甘愿只做眼前的事情)

  • 由于子工程的请求会发送到主工程的后端,

     这件事有两个解决方案第一子应用请求全路径 第二前端对请求进行拦截主工程反向代理 还有一个突出的问题就去请求命名空间的问题,不能所有的请求都请求/api

  • 虽然是前端微服务,所有子服务状态不可知,所有路径不可管控
  • 解决方案使用自建的注册中心和网关
  • 技术选型注册中心使用consul(无需依赖)实在受不了那些依赖java等等,后端微服务还好都是基于spring无所谓,前端微服务就更加需要独立性与兼容性,所以选择consul
  • 网关使用nodejs通过跟注册中心交互获取,节点与代理状态,实时更新内部请求分发与接口管理
  • 支持多种场景如果不想使用nodejs作为部署服务,也可以使用nodejs根据注册中心信息生成nginx配置文件
  • 服务监控告警实时通知钉钉
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (前端)子项目的umi的工程注意事项
  • (前端)qiankun微服务特性代码与本地独立服务代码区分
  • (前端)工程通信(其他api暂时用不到,详见通信文档飞冰)
    • 父工程
      • 子工程 
      • (后端)系统监控与接口管理(从不甘愿只做眼前的事情)
      相关产品与服务
      微服务引擎 TSE
      微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档