前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微前端从Golang开始 |

微前端从Golang开始 |

作者头像
吴文周
发布2020-10-15 16:48:35
5850
发布2020-10-15 16:48:35
举报

确认一遍

  • 对你没看错,微前端是从Golang开始
  • 核心观点:所有脱离业务场景的技术讨论都是耍流氓
  • 微前端实践过程中的感悟:juejin.im/post/686082…
  • 关键词:样式,事件,缓存的相互冲突,特性代码的规则方案,通信机制的建立

需求背景

  • 新旧多系统集成
  • 日均上xx的独立用户访问
  • 跨多个业务部门合作方式

主要问题

  • 前端系统多技术栈,新旧项目错综复杂,有维护了6年的jq项目,也有新加入的react项目
  • 后端完全失控,虽然前端页面是多个后端系统集合体现,但是对于各个子系统状态一无所知

解决方案

  • 前端区分项目复杂度提供两种模式的嵌入方式,ifream和qiankun并存,以中心底座项目为通信基座,消息适配
  • 后端超级网关方案:对所有子系统服务状态等进行全链路,大方向定位追踪可视化管理,钉钉实时告警

弯路汇总

  • 整体方案设计逻辑个人感觉还是没毛病的
  • 技术选型还是太急于求成,本人基于nodejs,egg.js加consul实现了服务发现,动态转发等等,说白了新增或者修改一个新的微服务,可以通过修改consul的配置或者nodejs接口,轻轻松松,加多少,改多少全部都可以动态适配,无需重启ng。nodejs团队语言切合度高,劣势性能差,安全性低,环境依赖(这是当时的判断,却依然选择,为了快速实现)。性能和配置化的劣势明显(倾听运维团队的意见),面对当前系统日均xx访问的考虑不足,配置化也是依赖egg.js的config实现对于环境场景的支撑薄弱。
  • 实践方案详见juejin.im/post/686529…

痛定思痛从头再来

  • 选型有三个大类(JAVA,nodejs,GO)
  • JAVA社区完善场景支撑丰富,劣势前端团队语言瓶颈
  • nodejs优势快速开发,劣势大型项目支撑力度不足
  • GO优势性能优势,跨平台先天优势,类型检查,劣势团队经验不足
  • 配置化可视化页面缺失

技术方案

  • 语言 Golang
  • 框架 gin(41.7k),vue(快速开发,页面简单)
  • 注册中心 consul(跨平台,无依赖,本身基于go实现)
  • 数据库 sqlite (轻量级数据库,内嵌方式,零配置,迁移方便,业务字段简单)
  • 测试工具 ab.exe

效果预览

资源地址

总结

  • 以qiankun和golang 实现微服务网关对老旧项目进行前端微服务进行高性能,无依赖,可配置,可监控的深入重构

进度

  • 持续开源中,功能还没写完嘿嘿!

结束

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 确认一遍
  • 需求背景
  • 主要问题
  • 解决方案
  • 弯路汇总
  • 痛定思痛从头再来
  • 技术方案
  • 效果预览
  • 资源地址
  • 总结
  • 进度
  • 结束
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档