前言
本文主要讲解现如今大型电子商城的架构案例(如京东,淘宝),后面的博客中将一一详解的技术框架和代码实现。
商城是一个综合性的B2B2C平台,随着互联网流量的日益剧增,从过往的一台服务器网站实现(LAMP),到现如今的SOA实现,大型网站在架构上有一个跨越性的飞跃。
何为SOA?
SOA是一种面向服务的设计模式,将应用程序的不用功能分离出来,成为一个独立的服务。服务之间同个特定的方式进行通讯,实现服务间的松耦合。
SOA具有五个特征:
1、可重用
一个服务创建后能用于多个应用和业务流程。
2、松耦合
服务请求者到服务提供者的绑定与服务之间应该是松耦合的。因此,服务请求者不需要知道服务提供者实现的技术细节,例如程序语言、底层平台等等。
3、明确定义的接口
服务交互必须是明确定义的。Web服务描述语言(Web Services Description Language,WSDL)是用于描述服务请求者所要求的绑定到服务提供者的细节。WSDL不包括服务实现的任何技术细节。服务请求者不知道也不关心服务究竟是由哪种程序设计语言编写的。
4、无状态的服务设计
服务应该是独立的、自包含的请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。当产生依赖时,它们可以定义成通用业务流程、函数和 数据模型。
5、基于开放标准
当前SOA的实现形式是Web服务,基于的是公开的W3C及其他公认标准.采用第一代Web服务定义的SOAP、WSDL和UDDI以及第二代Web服务定义的WS-*来实现SOA。
主流的微服务架构: springcloud 、dubbo
商城使用分布式微服务架构,随着流量的日益剧增,传统的垂直应用架构已经无法满足需求,而基于SOA的分布式微服务架构和分布式计算架构已成为主流。
商城系统架构图(转载)
一个完整的商城包括商城门户网站、运营者后台管理系统、商家管理系统。
门户网站面向用户,可进行登录、门户浏览、商品搜索、加入购物车、下单支付、个人中心、收藏商品、评论商品等等。
商家管理系统主要面向入住商家,商家可申请管理系统账户进入管理系统,进行自家商品信息管理,品牌管理,订单结算、订单查询。
运营商管理系统由商城运营人员进行管理,可对商家入驻进行审核、商品审核、商品管理、商家管理、平台用户管理、商家结算、数据统计分析等等
技术方案:
前端:vue
后端:springboot+spring data jpa
数据库:mysql + mycat
服务中间件:dubbox
注册中心:zookeeper
搜索:elasticsearch
安全框架:springSecurity
离线计算:spark
实时计算:sparkStream
消息系统:kafka
结束:后面的博客中我将对以上每种技术进行详解和代码实现,后期我会把代码进行发布,敬请期待