B2B2C商城的系统架构思考

随笔1个月前发布 襟上花
5 0 0

一、总述

本方主要向你介绍思程Shop  (SiC B2B2C Shop)的技术方案,帮助快速了解思程Shop的技术架构。

系统安全方案;
系统扩展方案;
系统性能指标;
技术架构蓝图;
集群部署图;
采用的技术框架;
高质量的代码;

二、系统安全方案

目标:构建安全的信息系统,保证用户数据安全,防止系统被黑客攻击。

安全特性 描述

密码加强

使用sha1算法 + salt(盐) ,来防止碰撞猜出密码。

使用SystemService.entryptPassword()生成安全的密码,生成随机的16位salt并经过1024次 sha – 1 hash。

安全cookie

使用HTTPonly状态的cookie,使js无法读出cookie,无法盗取cookie。

智能验证码

登录失败3次后,要求输入图片验证码。

权限验证

每一个方法都有服务端权限验证,无法绕过,保证数据安全。

表单验证

前端使用js做表单验证,用户体验好。

服务端再做一次相同逻辑的的表单验证,安全性高。

防止SQL注入

本系统可防止SQL注入攻击,保护数据安全。

防止XSS攻击

对文本框防止xss攻击,对于富文本编辑器防止xss攻击,保护数据安全。

属主检查

修改、删除数据时,做属主检查。防止跨会员删除数据

多用户平台,在删除记录时,要检查这条记录的主人是不是当前用户,是才可以删除,防止人为修改url中的ID参数删除其它用户的记录。

防止表单重复提交

网速较慢时,用户可以连续点击“保存”按钮:解决方案。1按钮变灰,2 使用token

按F5刷新页面会导致前面提交过的表单再一次提交,使用重定向来解决。

图片访问控制

普通图片,都是可以匿名访问的(如产品图片),只要知道图片的url,就可访问图片。

由于业务需要,系统接收了用户上传的身份证、营业执照的图片,这些图片需要保密,不能泄漏到互联网上。由图片访问控制来保证安全。

三、系统扩展方案

本系统采用高扩展性的技术架构方案,系统可扩展性强,为未来大数据量、大用户量,留出了扩展的空间。

应用服务器:可做集群部署。

缓存服务器:可做分布式部署。

搜索服务器:可做分布式部署。

图片存储服务器:可采用支持分布式存储的文件系统。

四、系统性能指标

目标:构建高性能的信息系统。

性能项 性能指标
系统可承受会员量 100万
系统可承受商品量 500万
系统可承受日访问量 300万PV/天
PC端页面打开时间 低于2秒

并发压力(独立 IP)

同时在线人数

50000

注意:采用10台常规物理服务器(8核16G),并且分布式、集群部署。

五、技术架构蓝图

本架构蓝图,在技术方面,描述B2B2C的核心架构。读者可通过本图,对B2B2C商城架构有一个全貌的了解。便于更好的做开发工作。

 
B2B2C商城的系统架构思考

 

应用层
前台Front:是商城的前台系统,主要用于展示商城首页、商品列表页、商品详情页。
会员中心Member:买家登录后进入会员中心,与当前买家购买相关的信息都在这里。
商家中心Seller:卖家登录后进入商家中心,与当前卖家开店销售相关的信息都在这里。
安全中sso:对会员(买家、卖家)账号的管理,实现单点登录功能。
管理后台Admin:商城平台管理员登录后进入管理后台,可管理整个商城。
静态资源Static:cssjs图标都在这里,前端的库(jqueryootstrap)都在这里,便于管理,做CDN加速。
上传Uploader:接收上传来的图片,图片处理(缩图),后端接图片存储。做CDN加速。

领域服务
库存服务:计算商品的库存量,总库存=可销售库存+订单占用库存。
价格服务:计算商品的价格。
令牌服务:产生令牌、验证令牌。向uploader系统上传文件时、单点登录时,通过令牌验证合法性。
Cahce服务:为业务层提供Cache操作的能力,后端可对接多种缓存技术。

基础服务
略…

任务调试
结算任务:定时执行结算任务
统计任务:定时执行统计任务
定时任务:系统还有很多种业务的定时任务。

搜索
采用solr技术实现的搜索引擎,供业务系统调用,实现商品搜索(按关键字、按参数)、猜你喜欢、相似商品推荐、搜索建议。

图片处理
在用户访问时实时生成缩略图。

文件存储
本地存储:在单机部署时,使用本地文件系统来存储图片。
OSS云存储:可对接阿里云的OSS云存储,海量、高性能。
FastDFS:一种分布式文件存储系统。

MQ
是消息队列,实现削峰填谷抵挡突发流量,实现异步调用,实现可靠消息。

缓存
可对接多种缓存实现,当单机部署时使用Ehcache缓存,当分布式部署时使用Redis缓存。

数据库访问层DAL
通过DAL实现访问 Oraclemysqlsqlserver数据库。完成实体关系映射。

数据库(读写分离)
面对大型系统时,使用读写分离技术,提供高性能的数据库能力。

外部接口
支付接口:对接支付宝、易宝支付
短信接口:对接多种外部的短信网关
邮件接口:对接多种外部的邮件通道
物流接口:查快递信息

公共设施
监控系统:使用外部成熟的监控系统,监控商城的硬件资源、系统可用性、系统响应时间。
日志收集:收集并分析日志

六、系统部署图

集群部署图

整个系统采购集群部署,避免出现单节点,保障系统的高可用性。

 
B2B2C商城的系统架构思考

 

单节点简化部署图

最简化的单节点部署,用于便捷快速的完成部署,常用于开发环境。

 
B2B2C商城的系统架构思考

 

七、采用的技术框架

B2B2C商城的系统架构思考

八、高质量的代码

我团队十分注重编码规范,代码格式美观,结构优良,变量名见名知意,数据表结构合理,表名命名优雅。

请参考以下部分截图

B2B2C商城的系统架构思考

B2B2C商城的系统架构思考

B2B2C商城的系统架构思考

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...