1.技术性
2.技术范围广
3.分布式
4.高并发,集群,负载均衡,高可用
5.海量数据
6.业务复杂
7.系统安全
B2B:企业到企业,商家到商家.代表:阿里巴巴
B2C:商家到客户.代表:京东.淘宝商城
C2C:客户到客户.淘宝集市
O2O:线上到线下
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
搜索系统:提供商品的搜索功能。
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布
式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
缺点:随着应用功能的增多,代码量越来越大,越来越难维护,需要解决代码一体化的问题?
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的 Web 框架(MVC) 是关键。
缺点:垂直架构中相同逻辑代码需要不断的复制,不能复用。每个垂直模块都相当于一个独立的系统。
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作 为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求. 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
缺点:服务越来越多,需要管理每个服务的地址,调用关系错综复杂,难 以理清依赖关系,服务状态难以管理,无法根据服务情况动态管理。
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。 此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。
o 缺点:服务间会有依赖关系,一旦某个环节出错会影响较大,服务关系复杂,运维、测试部署困难,不符合 DevOps 思想。
单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责
微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。
面向服务:面向服务是说每个服务都要对外暴露服务接口 API。并不关心服务的技术实现,做到与平台和语言无关,也不限定用什么技术实现,只 要提供 Rest 的接口即可。
自治:自治是说服务间互相独立,互不干扰
1.团队独立:每个服务都是一个独立的开发团队,人数不能过多。 技术独立:因为是面向服务,提供 Rest 接口,使用什么技术没有别人干涉
2.前后端分离:采用前后端分离开发,提供统一 Rest 接口,后端不用再为 PC、移动端开发不同接口
3.数据库分离:每个服务都使用自己的数据源
4.部署独立,服务间虽然有调用,但要做到服务重启不影响其它服 务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护 Docker 部署服务
a. 传统架构
传统架构有以下几点问题?
1、 模块之间耦合度太高,其中一个升级其他都得升级
2、 开发困难,各个团队开发最后都要整合一起
3、 系统的扩展性差
4、 不能灵活的进行分布式部署。
解决方法:系统拆分
优点:
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
b. 分布式架构
分布式架构:
把系统按照模块拆分成多个子系统。
优点:
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署。
缺点:
系统之间交互需要使用远程通信,接口开发增加工作量。
最终架构图如下:
Java(核心编程语言)
Spring、SpringMVC、Mybatis(三大框架)
Dubbo(分布式服务框架)
Zookeeper(服务注册中心)
Redis(缓存数据库)
Elasticseach(搜索引擎)
SSO(单点登录)
MySql(数据库)
Nginx(web 服务器)
Vsftp(文件上传服务器)
RabbitMQ(消息队列)
Alipay(支付宝支付)
Geetest(极验验证)
jQuery、Bootstrap(前端框架)
doT.js(模板引擎)
UEditor(富文本编辑器)
Google Kaptcha(图形验证码)
商城系统优势:
包括硬件成本和软件成本,硬件包括店面、房租、装修、印刷、纸张等最必须用品,软件包括网上商城购物系统、网络信息、图片、视屏等,都可长期使用、良性循环、 经济和环保。
传统媒体广告费用高昂,更适合于进行品牌塑造;而网络营销主要是策略与定位把 控的问题,实惠很多,费用与传统媒体相比微乎其微,并且流量与用户也更加精准。
通过互联网,企业的信息展示、品牌塑造和形象宣传可以通过文字、图片、音频、视频等多维度进行现实与虚拟相结合的展示,使用户对企业的了解更加立体和全面,有助于形成良好的形象与口碑。
运用信息化的数据库管理,各类信息精准、清晰、无误的保存,避免出现人工操作
商家入驻功能包括:商家入驻申请流程、商家店铺自定义装修功能、多套店铺模板选择、商家店铺街展示、商家独立店铺功能、商铺报表统计功能、搜索店铺列表页、商家自定义广告位、区分平台与商家分类、类型、订单分单功能(按商家)、订单
退换功能、商家订单佣金结算等。
会员中心功能包括:会员中个人主页美化、会员中心订单列表美化、会员中心收货 地址列表美化 、会员中心缺货登记、会员中心退换货、会员中心退换货详情页 、用户信息、新增会员头像上传功能 、平台红包、物流跟踪功能、资金管理
购物车功能包括:购物车选择购买功能、购物车加强功能、商品促销满减、满赠、 折扣功能、凑单功能、简化购物流程、购物车为空时去购物功能、提示购物车商品
是否有库存。
订单功能包括:商家自定义配送方式和运费、门店自提功能、发票功能、商品无库存时提交订单弹窗提示继续购物、结算页面无货提交弹出框、快递配送方式选择如 韵达。
积分商城功能包括:积分商品列表、兑换商品排序、精品推荐、热门兑换、兑换商 品详情页。
拍卖活动功能包括:拍卖活动列表、竞拍商品排序和搜索、拍卖商品详情页、出价记录、商家店铺。
是否有库存。
订单功能包括:商家自定义配送方式和运费、门店自提功能、发票功能、商品无库存时提交订单弹窗提示继续购物、结算页面无货提交弹出框、快递配送方式选择如 韵达。
积分商城功能包括:积分商品列表、兑换商品排序、精品推荐、热门兑换、兑换商 品详情页。
拍卖活动功能包括:拍卖活动列表、竞拍商品排序和搜索、拍卖商品详情页、出价记录、商家店铺。
优惠活动功能包括:优惠活动列表页、优惠范围、优惠方式。