当前位置: 首页 > 创新视点

电商网站群统一内容管理系统建设技术架构

发布时间:2019-08-11 【字号:

  电商网站和企业网站不同,企业网站一般来说是小型的,网页组成网站,网页之间的关联性不会很强,当然,访客对他们没有这么高的要求,而电商网站不同,电商网站对安全性和便利要极高,同时,页面用户之间要进行顺畅无碍的交互。因此,对于电商网站的内容管理系统建设要求极高。中恒电国际建设网站群和网站内容管理系统多年,对这方面的技术架构非常熟悉,逻辑清晰,技术成熟,可以根据企业要求迅速出具解决方案。如果您有这方面的需求,欢迎前来咨询合作。

  一、电商行业技术特点

  ①技术新:(NoSql推广首在社区网站和电商项目),发展快,需求推动技术的革新。

  ②技术范围广:除了java,像淘宝前端还使用了PHP,数据库MySQL或者oracle,nosql,服务器端使用Linux,服务器安全、系统安全

  ③分布式:以前是在一台机器上做运算,现在是分散到很多机器上,最后汇总起来。(集中式向分布式进行考虑)由需求来推动

  ④高并发、集群、负载均衡、高可用:由并发问题采用集群进行处理,其中,集群会涉及服务器的主从以及分布问题,使用负载均衡。(权重高低)高可用是对用户而言,用户的服务不中断(系统升级,服务不中断,淘宝每周更新2次)。

  ⑤海量数据:双11,570亿的背后,订单有多少?浏览次数有多少?商品会有多少?活动相关数据?

  ⑥业务复杂:不要简单的认为是:商品展示出来后,加入购物车后购买就完成了。后台特别复杂,比如优惠(包邮、满减)

  ⑦系统安全:系统上线必须通过系统安全部门审核通过。前年CSDN数据泄露。快捷酒店数据泄露(通过身份证就可以查看你的开房记录)。近几年,安全意识逐步在提高。

  二、电商网站内容与功能需求分析:

  建立一个全品类的电子商务网站(B2C),用户可以在线购买商品,可以在线支付,也可以货到付款;

  用户购买时可以在线与客服沟通;

  用户收到商品后,可以给商品打分,评价;

  目前有成熟的进销存系统;需要与网站对接;

  希望能够支持3~5年,业务的发展;

  预计3~5年用户数达到1000万;

  定期举办双11,双12,三八男人节等活动;

  其他的功能参考京东或国美在线等网站。

  中恒电观点:客户就是客户,不会告诉你具体要什么,只会告诉你他想要什么,我们很多时候要引导,挖掘客户的需求。好在提供了明确的参考网站。因此,下一步要进行大量的分析,结合行业,以及参考网站,给客户提供方案。

  三、电商网站初级架构

  一般网站,刚开始的做法,是三台服务器,一台部署应用,一台部署数据库,一台部署NFS文件系统。

  这是前几年比较传统的做法,之前见到一个网站10万多会员,垂直服装设计门户,N多图片。使用了一台服务器部署了应用,数据库以及图片存储。出现了很多性能问题。

  但是,目前主流的网站架构已经发生了翻天覆地的变化。一般都会采用集群的方式,进行高可用设计。

  四、系统容量预估

  预估步骤:

  注册用户数-日均UV量-每日的PV量-每天的并发量;

  峰值预估:平常量的2~3倍;

  根据并发量(并发,事务数),存储容量计算系统容量。

  客户需求:3~5年用户数达到1000万注册用户;

  每秒并发数预估:

  每天的UV为200万(二八原则);

  每日每天点击浏览30次;

  PV量:200*30=6000万;

  集中访问量:24*0.2=4.8小时会有6000万*0.8=4800万(二八原则);

  每分并发量:4.8*60=288分钟,每分钟访问4800/288=16.7万(约等于);

  每秒并发量:16.7万/60=2780(约等于);

  假设:高峰期为平常值的三倍,则每秒的并发数可以达到8340次。

  1毫秒=1.3次访问;

  没好好学数学后悔了吧?!(不知道以上算是否有错误,呵呵~~)

  服务器预估:(以tomcat服务器举例)

  按一台web服务器,支持每秒300个并发计算。平常需要10台服务器(约等于);[tomcat默认配置是150]

  高峰期:需要30台服务器;

  容量预估:70/90原则

  系统CPU一般维持在70%左右的水平,高峰期达到90%的水平,是不浪费资源,并比较稳定的。内存,IO类似。

  以上预估仅供参考,因为服务器配置,业务逻辑复杂度等都有影响。在此CPU,硬盘,网络等不再进行评估。

  五、电商网站架构分析

  需要部署大量的服务器,高峰期计算,可能要部署30台Web服务器。并且这三十台服务器,只有秒杀,活动时才会用到,存在大量的浪费。

  所有的应用部署在同一台服务器,应用之间耦合严重。需要进行垂直切分和水平切分。

  大量应用存在冗余代码

  服务器SESSION同步耗费大量内存和网络带宽

  数据需要频繁访问数据库,数据库访问压力巨大。

  大型网站一般需要做以下架构优化(优化是架构设计时,就要考虑的,一般从架构/代码级别解决,调优主要是简单参数的调整,比如JVM调优;如果调优涉及大量代码改造,就不是调优了,属于重构):

  六、主营业务拆分

  应用集群部署(分布式部署,集群部署和负载均衡)

  多级缓存

  单点登录(分布式Session)

  数据库集群(读写分离,分库分表)

  服务化

  消息队列

  其他技术

  七、网站架构优化

  1业务拆分

  根据业务属性进行垂直切分,划分为产品子系统,购物子系统,支付子系统,评论子系统,客服子系统,接口子系统(对接如进销存,短信等外部系统)。

  根据业务子系统进行等级定义,可分为核心系统和非核心系统。核心系统:产品子系统,购物子系统,支付子系统;非核心:评论子系统,客服子系统,接口子系统。

  业务拆分作用:提升为子系统可由专门的团队和部门负责,专业的人做专业的事,解决模块之间耦合以及扩展性问题;每个子系统单独部署,避免集中部署导致一个应用挂了,全部应用不可用的问题。

  等级定义作用:用于流量突发时,对关键应用进行保护,实现优雅降级;保护关键应用不受到影响。

  2应用集群部署(分布式,集群,负载均衡)

  分布式部署:将业务拆分后的应用单独部署,应用直接通过RPC进行远程通信;

  集群部署:电商网站的高可用要求,每个应用至少部署两台服务器进行集群部署;

  负载均衡:是高可用系统必须的,一般应用通过负载均衡实现高可用,分布式服务通过内置的负载均衡实现高可用,关系型数据库通过主备方式实现高可用。

  3 多级缓存

  缓存按照存放的位置一般可分为两类本地缓存和分布式缓存。本案例采用二级缓存的方式,进行缓存的设计。一级缓存为本地缓存,二级缓存为分布式缓存。(还有页面缓存,片段缓存等,那是更细粒度的划分)

  一级缓存,缓存数据字典,和常用热点数据等基本不可变/有规则变化的信息,二级缓存缓存需要的所有缓存。当一级缓存过期或不可用时,访问二级缓存的数据。如果二级缓存也没有,则访问数据库。

  缓存的比例,一般1:4,即可考虑使用缓存。(理论上是1:2即可)。

  4,单点登录(分布式Session)

  系统分割为多个子系统,独立部署后,不可避免的会遇到会话管理的问题。一般可采用Session同步,Cookies,分布式Session方式。电商网站一般采用分布式Session实现。

  再进一步可以根据分布式Session,建立完善的单点登录或账户管理系统。

  流程说明

  用户第一次登录时,将会话信息(用户Id和用户信息),比如以用户Id为Key,写入分布式Session;

  用户再次登录时,获取分布式Session,是否有会话信息,如果没有则调到登录页;

  一般采用Cache中间件实现,建议使用Redis,因此它有持久化功能,方便分布式Session宕机后,可以从持久化存储中加载会话信息;

  存入会话时,可以设置会话保持的时间,比如15分钟,超过后自动超时;

  结合Cache中间件,实现的分布式Session,可以很好的模拟Session会话。

  数据库集群(读写分离,分库分表)

  大型网站需要存储海量的数据,为达到海量数据存储,高可用,高性能一般采用冗余的方式进行系统设计。一般有两种方式读写分离和分库分表。

  读写分离:一般解决读比例远大于写比例的场景,可采用一主一备,一主多备或多主多备方式。

  本案例在业务拆分的基础上,结合分库分表和读写分离

  业务拆分后:每个子系统需要单独的库;

  如果单独的库太大,可以根据业务特性,进行再次分库,比如商品分类库,产品库;

  分库后,如果表中有数据量很大的,则进行分表,一般可以按照Id,时间等进行分表;(高级的用法是一致性Hash)

  在分库,分表的基础上,进行读写分离;

  相关中间件可参考Cobar(阿里,目前已不在维护),TDDL(阿里),Atlas(奇虎360),MyCat(在Cobar基础上,国内很多牛人,号称国内第一开源项目)。

  电商网站后台功能模块分析;

  后台:各类主要信息的概要统计,包括客户信息、 订单信息、商品信息、库存信息、评论和最近反馈等。

  商品模块:

  1.商品管理:商品和商品包的添加、修改、 删除、复制、批处理、商品计划上下架、SEO、商品多媒体上传等,可以定义商品是实体还是虚拟,可以定义是否预订、是否缺货销售等。

  2.商品目录管理:树形的商品目录组织管理,并可以设置关联/商品推荐。

  3.商品类型管理:定义商品的类型,设置自定义属性项、SKU项和商品评论项。

  4.品牌管理:添加、修改、删除、上传品牌 LOGO。

  5.商品评论管理:回复、删除。

  销售模块:

  1.促销管理:分为目录促销、购物车促销和 优惠券促销三类,可以随意定义不同的促销规则,满足日常促销活动:购物折扣、购物赠送积分、购物赠送优惠券、购物免运输费、特价商品、特定会员购买特定商品、折上折、买二送一等。 2.礼券管理:添加、发送礼券

  3.关联/推荐管理――基于规则引擎,可以支持多种推荐类型,可手工添加或者自动评估商品。

  订单模块:

  1.订单管理:可以编辑、解锁、取消订单、 拆分订单、添加商品、移除商品、确认可备货等,也可对因促销规则发生变化引起的价格变化进行调整。订单处理完可发起退货、换货流程。

  2.支付:常用于订单支付信息的查看和手工 支付两种功能。手工支付订单,常用于“款到发货”类型的订单,可理解为对款到发货这类订单的一种补登行为。

  3.结算:提供商家与第三方物流公司的结算 功能,通常是月结。同时,结算功能也是常用来对“货到付款”这一类型订单支付后的数据进行对帐

  库存模块:

  1.库存管理:引入库存的概念,不包括销售 规则为永远可售的商品,一个SKU对应一个库存量。库存管理提供增加、减少等调整库存量的功能;另外,也可对具具体的SKU设置商品的保留数量、***小库存量、再进货数量。每条SKU商品的具体库存操作都会记录在库存明细记录里边。

  2.查看库存明细记录。

  3.备货/发货:创建备货单、打印备货单、打印发货单、打印EMS快递单、完成发货等一系列物流配送的操作。

  4.退/换货:对退/换货的订单进行收货流程的处理。

  内容模块:

  1.内容管理:包括内容管理以及内容目录管理。内容目录由树形结构组织管理。类似于商品目录的树形结构,可设置目录是否为链接目录。

  2.无限制创建独立内容网页,比如关于我们,联系我们。

  3.广告管理:添加、修改、删除、上传广告、 定义广告有效时限。

  4.可自由设置商城导航栏目以及栏目内容、栏目链接。

  客户模块:

  1.客户管理:添加、删除、修改、重设密码、 发送邮件等。 2.反馈管理:删除、回复。

  3.消息订阅管理:添加、删除、修改消息组 和消息、分配消息组、查看订阅人。 4.会员资格:添加、删除、修改。

  系统模块:

  1.安全管理:管理员、角色权限分配和安全日志

  2.系统属性管理:用于管理自定义属性。可关联模块包括商品管理、商品目录管理、内容管理、客户管理。

  3.运输与区域:运输公司、运输方式、运输 地区。 4.支付管理:支付方式、支付历史。 5.包装管理:添加、修改、删除。

  6.数据导入管理:商品目录导入、商品导入、 会员资料导入。 7.邮件队列管理:监控邮件发送情况,删除 发送异常邮件。

  报表模块:

  缺省数个统计报表,支持时间段过滤、支持按不同状态过滤、支持HTML、PDF和Excel格式的导出和打印。 1.用户注册统计 2.低库存汇总 3.缺货订单 4.订单汇总 5.退换货

  以上便是电商网站内容管理系统包括前端、后端数据等方面的技术架构的介绍,当然,只是部分大纲,您还可以咨询中恒电国际,以求更为详细的资料。

相关视点: