基于Webpack的前端“微服务”拆分,代码可插拔

前言此方案适用于使用Vue或React等 + WebPack打包,实行页面资源按需加载的项目随着业务规模的不断扩大,我们的后台管理系统逐步变成一个单体巨无霸,用户、商家、运营等等各种功能全部集中在一个系统中,随着而来的问题也越来越多所有业务部门都可以修改公共部分和核心部分的代码 启动慢,每次开发启动的时候,连同其它业务模块一起编译,消耗了大量的时间 构建慢,上线需要整体项目重新编译打包,无法只进行子模块构建 上线冲突,由于同属一个项目,上线时会与其它业务模块的上线产生冲突改造目标先看
摘要由CSDN通过智能技术生成

前言

此方案适用于使用Vue或React等 + WebPack打包,实行页面资源按需加载的项目

DEMO地址:https://github.com/MrLawrence1990/rmc-parent

随着业务规模的不断扩大,我们的后台管理系统逐步变成一个单体巨无霸,用户、商家、运营等等各种功能全部集中在一个系统中,随着而来的问题也越来越多

  • 所有业务部门都可以修改公共部分和核心部分的代码
  • 启动慢,每次开发启动的时候,连同其它业务模块一起编译,消耗了大量的时间
  • 构建慢,上线需要整体项目重新编译打包,无法只进行子模块构建
  • 上线冲突,由于同属一个项目,上线时会与其它业务模块的上线产生冲突

改造目标

先看一下使用react 或 vue 加 router为基础框架的项目结构

我们以Vue为例,一般用history或hash路由,在router路径下导出对页面的配置,同时使用按需加载,引用页面组件;page中也可能导出路由配置和store配置,以这样的结构对各个子模块路由分开管理

src
├── App.vue
├── assets
├── common
├── components
├── main.js
├── pages
│   ├── page1
│       │   ├── components
│       │   │   ├── xx.vue
│       │   ├── store
│       │   │   ├── index.js
│       │   ├── store
│       │   ├── router.js
│       │   └── index.vue
│   ├── page2
│   ├── page3
│   ├── page4
│   ├── ......
├── router
└── store

技术架构

项目原本的架构如下

改造后的模板是,原有项目可以保留原本页面模块的管理结构,同时可以通过http动态加载子模块的js、css、image来渲染页面,如下

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Go-Micro 是一个基于微服务库的可插拔 RPC,为编写分布式应用程序提供基本构件。它是 Micro 工具包的一部分,支持 Proto-RPC 和 JSON-RPC 的请求/响应协议,默认设置Consul为探索。示例服务可以在 examples/service 找到。特征特征包内置插件描述DiscoveryRegistryconsul用来沟通的一种定位服务方式ClientClientrpc用来将RPC请求变成服务CodecCodecproto,json对请求进行编码/解码处理BalancerSelectorrandom服务节点过滤和池ServerServerrpc监听和服务器的RPC请求Pub/SubBrokerhttp发布和订阅事件TransportTransporthttp服务之间的通信机制示例服务项目描述greetergreeter 服务(包括 Go、Ruby、Python )geo-srv使用 hailocab/go-geoindex 进行地理位置跟踪服务geo-api为地理位置跟踪和搜索提供的 HTTP API 处理程序geocode-srv使用 Google Geocoding API 提供地理编码服务hailo-srv一种用于hailo出租车服务开发者的api服务place-srv存储和检索地点的微服务slack-srv将Slack机器人的API当成一个go-micro 的RPC服务twitter-srv一种用于Twitter的API微服务user-srv一种为用户管理和认证提供的微服务入门这是一个以 greeter 服务为例的快速入门指南。必备条件我们需要一个服务发现机制来解决服务的名称到地址的映射,默认设置Consul为探索。Discovery是可插拔的,你可以使用 kubernetes, zookeeper 等。我们的实践可以在 go-plugins 上找到。安装Consulhttps://www.consul.io/intro/getting-started/install.html运行Consul$ consul agent -dev -advertise=127.0.0.1运行服务$ go run examples/service/main.go 2016/03/14 10:59:14 Listening on [::]:50137 2016/03/14 10:59:14 Broker Listening on [::]:50138 2016/03/14 10:59:14 Registering node: greeter-ca62b017-e9d3-11e5-9bbb-68a86d0d36b6测试服务$ go run examples/service/main.go --client Hello John 标签:gomicro

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值