阅读文章:京东上千页面搭建基石——CMS前后端分离演讲史

文章网址:https://mp.weixin.qq.com/s?__biz=MzIwODA4NjMwNA==&mid=2652897861&idx=1&sn=f2804fd064c7d3ea86554c187ae03db7&scene=21#wechat_redirect

CMS即内容管理系统(ContentManagementSystem),目的是用于快速进行网站建设或者网页开发。对于京东网站部门来说,CMS核心目的是用来快速开发和上线各种页面,诸如各种垂直频道页,访问www.jd.com将看到如下页面,如点击“服装城”、“家用电器”等都会跳转到一个垂直频道页;这些页面中有许多页面风格是类似的,因此很适合使用CMS进行快速搭建。

CMS最核心的目的是就是进行数据和模板的统一管理、页面的统一发布,从而减少之前的很多重复工作。

京东CMS具有以下特点:

(1)搭建快速,统一发布,统一架构

(2)前后端分离。后端不再负责页面渲染,只提供高性能、可复用的API

(3)移动端页面支持

(4)数据分析、智能投放的特点。

从基本功能及架构来看,可以分为三个阶段:(1)CMS 1.0——虚拟分类系统(2)CMS 2.0——CMS系统(3)CMS 3.0——CMS-portal系统

CMS 1.0——虚拟分类系统

虚拟分类系统是一个独立的促销商品、促销文字维护系统,与具体前端业务架构脱离,哪条线接入虚拟分类,需要根据自己的业务逻辑单独开发、维护、部署自己的架构。虚拟分类系统只是一个基础数据维护平台,无法实现信息的共享、复用和集约化管理。这就会存在各种各样的频道页系统,导致管理混乱,性能上各有差异,出现过很多次事故。而且各系统需要独立配置,导致工作量大,占用资源多,无法快速响应业务需求。

CMS 2.0——CMS系统

Cms2.0总结了1.0时的不足,从节省资源、控制成本的角度考虑,把导购类的个体页面业务进行了统一,模板能复用的复用,以前虚拟分类系统的频道也需要迁移到新的系统。

改动如下:

(1)CMS 2.0数据结构适合虚拟分类体系,方便新老数据兼容;

(2)升级架构,统一配置、发布流程;去memcache为redis,做大量性能压测来调优php-fpm配置,单机TPS能达到3000+; 配置定时任务,保证redis数据实时性;

(3)单点发布,一键预览增强采销维护数据的机动性;

(4)单机闭环,单机闭环服务设计是CMS整体架构的核心部分,需要展示的内容在本机获取、封装、校验;

(5)模块化、动态数据类型初期版本

对比1.0,新的CMS可以让频道页的开发周期降低2~4周,大大提高了业务需求的响应速度;它看起来更独立,更像一个整体,在容灾、规避风险方面做了严谨的优化;同时让采销在维护数据时,更方便、更简单。后续由于个性化的需求越来越多,大量的频道业务需要开发人员一个一个套模板来实现,大大加大了开发人员的工作强度,之前的模板复用方式已经无法满足业务的需求,同时太简单的数据模块,需要手工来绑定数据类型也增加了开发成本,这时候需要必须做出改变。

CMS 3.0——CMS-portal系统

CMS 2.0后也存在很多痛点,因此在CMS3.0上解决这些问题

(1)本质问题就是要快:快速支持、响应业务越来越多的垂直化页面改版;

(2)前后端分离,页面渲染让前端实现,解放后端让后端做高大上的事情;

(3)减轻运营人员的工作量,系统简单好用,提高导购类商品的转化率;

(4)其他系统的支撑,实现CMS的集约化管理;

(5) 兼容手机端;

(6)站点管理、统一架构、容灾、高性能、水平扩容;

统一架构主要分为以下几个部分:

(1)CMS系统:统一管理CMS相关数据,并进行页面的生成和发布;

(2)数据Worker管理中心:调用第三方服务进行数据校验(如库存不足补货),并调用CMS系统进行页面生成和发布,发布到单点服务器上;

(3)单点服务器:相关页面的单机闭环实现,即CMS发布的页面会存储在这些单点服务器上;每个机房会部署一台;

(4)页面定时更新Worker:定期同步单点服务器内容到静态应用服务器集群,并保存历史版本,当出现问题时可以切换回上一个版本;

(5)静态应用服务器集群:静态托底实现,会存储相关的静态页面文件,当单点服务器挂了时,降级到该集群;

(6)异步加载的个性化服务:有些数据不能存储到静态页,如价格/库存/推荐等数据,此时通过异步加载这些数据,实现个性化服务;

(7)接入层Nginx:接入层Nginx负责请求的路由和服务的降级。

转载于:https://www.cnblogs.com/t1314/p/11054780.html

京东上千页面搭建基石——CMS前后端分离演讲史读后感相关推荐

  1. 京东上千页面搭建基石——CMS前后端分离演进史

    声明:本文来自京东张开涛的微信公众号(kaitao-1234567),授权CSDN转载,如需转载请联系作者. 作者:于林坤,2012年加入京东,网站移动研发部频道业务技术负责人,先后多次主导京东商城首 ...

  2. web前端项目(一) 做一个网易考拉官网 常规静态页面 + 页面放到http服务 + 前后端分离

    1 新建文件夹 分css img 文件夹 index.html 静态页面 2 将本地做的静态页面放到 http 服务 localhost:8080 设置nodejs静态目录 npm install e ...

  3. 前后端分离跨服务器文件上传,SpringBoot+Vue.js实现前后端分离的文件上传功能

    这篇文章需要一定vue和springboot的知识,分为两个项目,一个是前端vue项目,一个是后端springboot项目. 后端项目搭建 我使用的是springboot1.5.10+jdk8+ide ...

  4. Java开源的ERP系统源码带文字搭建教程,前后端分离架构

    Java前后端分离开源ERP系统源码带文字搭建教程 源码分享!需要源码学习可私信. 该系统是前后端分离的架构,前端使用Vue2.6.10,后端使用SpringBoot2.0.0. 技术框架:Sprin ...

  5. 毕设(一)Vue3 + SpringBoot + MyBatis搭建一个简单前后端分离项目

    一.Vue项目搭建 1.打开IDEA,创建Vue.js项目demo-vue 项目结构 2.在components目录下创建vue组件UserMan.vue <template><di ...

  6. vue解决线上跨域的问题_vue前后端分离解决跨域问题

    用Vue-cli脚手架搭建了个demo,前后分离就有跨域问题的出现. vue-clie搭建demo步骤(传送门):https://www.cnblogs.com/wangenbo/p/8487764. ...

  7. 搭建spring-boot+vue前后端分离框架并实现登录功能

    一.环境.工具 jdk1.8 maven spring-boot idea VSVode vue 二.搭建后台spring-boot框架 步骤: 1.new- project选择Spring Init ...

  8. 一台电脑上idea+webstorm使用nginx配置前后端分离

    一.Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.因它的稳定性.丰富的功能集.示例配置文件和低系统资源的 ...

  9. 学科投票系统-基于Python-Django实现的前后端分离项目

    学科投票系统-基于Python-Django实现的前后端分离开发 作者:代昌松 项目详情代码请参考: vote_api:https://gitee.com/dcstempt_ping/vote_api ...

最新文章

  1. openSession()和getCurremtSession()的区别
  2. python调用tcpdump抓包过滤
  3. Bootstrap框架中的字形图标的理解
  4. C语言自增自减运算辨析
  5. ipv6远程连接mysql_如何利用IPv6进行远程桌面连接
  6. 程序员告诉你如何用技术手段玩转冲顶大会
  7. Ubuntu18.04实用快捷键
  8. 园林景观cad_9套CAD平面设计素材图,上千个绘图模板随意用,全部打包带走
  9. ❤️马上七夕,不懂浪漫?带你用Python“码”上七夕【建议收藏】❤️
  10. 有关人工智能方面的调研报告
  11. pip 更新python -m pip install --upgrade pip 报错
  12. jfinal,jxl导出excel遇到的异常
  13. 会让你变得与众不同的22个技巧
  14. day15_css补充、js基础、dom基础
  15. 5分钟_SpringBoot集成ES实现存储、查询
  16. 论文阅读:Which Has Better Visual Quality: The Clear BlueSky or a Blurry Animal?
  17. 一招学会绘制UI图标超椭圆
  18. CentOS 查看登陆成功和登陆失败日志
  19. GateWay网关报错:Could not obtain the keys
  20. java时间日期获得0点0分0秒(本地时间(时区)),获取当天零点零分时间(本地时间(时区))

热门文章

  1. 百度地图地图及定位实现
  2. 【无人机】基于Matlab实现无人机轨迹规划目标跟踪附论文报告和代码
  3. 真实的上海IT圈:张江男vs漕河泾男
  4. 【运筹学】对偶理论 : 互补松弛定理应用 2 ( 互补松弛定理求最优解思路 ) ★★
  5. WPF管理平台 (一)- 登录页面
  6. origin9语言设置中文_Kali设置中文
  7. 程序人生:如何成为一名优秀的全栈工程师
  8. 学习数据库视频笔记4
  9. 【量化笔记】Markowitz均值-方差模型
  10. RSS/RPS/RFS究竟是个什么东西