近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。
品优购网上商城是一个综合性的B2B2C电商平台,类似京东商城,天猫商城。网站采用商家入驻的模式,商家入驻平台提交申请,由平台进行审核,当审核通过后,商家拥有独立的管理后台录入商品信息。商品提交审核通过后即可上架销售。品优购网上商城主要分为网站前台、运营商后台,商家管理后台三个子系统
主要包括网站首页、商家首页、商品详细页、搜索页、会员中心、订单与支付相关页面、秒杀频道等等
运营商后台是运营人员的管理后台。主要包括商家审核,品牌管理,规格管理、模板管理、商品分类管理、商品审核、广告类型管理、广告管理、订单查询、商家结算等。
入驻的商家进行管理的后台,主要功能是对商品的管理以及订单查询统计、资金结算等功能。
SOA是一种面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。其实SOA架构更多应用于互联网项目开发。为什么互联网项目会采用SOA架构呢?随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,迫切需一个治理系统确保架构有条不紊的演进。
品优购采用当前流行的前后端编程架构
后端框架采用 Spring+SpringMVC+mybatis+Dubbox。前端采用angularJS+BootStrap
Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,继续维护,命名为Dubbox。
Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,简单的说,dubbox就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbox这样的分布式服务框架的需求,并且本质上是个服务调用的东西,说白了就是个远程服务调用的分布式框架
节点角色说明:
Provider:暴露服务的服务提供方
Consumer:调用远程服务的服务消费方
Registry:服务注册于发现的注册中心
Monitor:统计服务的调用次数和调用时间的监控中心。
Container:服务运行容器
调用关系说明:
0.服务容器负责启动,加载,运行服务提供者
1.服务提供者在启动时,向注册中心注册自己提供的服务
2.服务消费者在启动时,向注册中心订阅自己所需的服务
3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果失败,再选另一台调用。
5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
官方推荐使用 zookeeper 注册中心。注册中心负责服务地址的注册与查找,相当于目录
服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。
Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适
合作为 Dubbox 服务的注册中心,工业强度较高,可用于生产环境。
Zookeeper的数据模型很简单,由一系列被称为ZNode的数据节点组成,与传统的磁盘文件系统不同的是,zk将全量数据存储在内存中,可谓是高性能,而且支持集群,可谓高可用,另外支持事件监听。这些特点决定了zk特别适合作为注册中心(数据发布/订阅)。
开发注意事项:
在serviceimpl类中 ,@Service注解与原来不同,需要引入com.alibaba包下的
import com.alibaba.dubbo.config.annotation.Service;
applicationContext-service.xml 基本配置:
注:dubbo:annotation用于扫描@Service注解
服务消费者的 applicationContext-web.xml文件配置
第一天只用搭建parent、pojo、dao、common、sellergoods-interface、sellergoods-service、manage-web等模块
这种错误是服务层代码没有成功注册到注册中心导致,检查服务层是否添加了@Service注解,并且包一定com.alibaba.dubbo.config.annotation
或者服务层工程由于某些原因没有正常启动
检查ip端口是否填写正确,检查注册中心是否正常启动正在运行。