Day01、电商项目介绍

1、简介

品优购网上商城是一个综合性的 B2B2C 平台,类似京东商城、天猫商城。网站采用商家入驻的模式,商家入驻平台提交申请,有平台进行资质审核,审核通过后,商家拥有独立的管理后台录入商品信息。商品经过平台审核后即可发布。

品优购网上商城主要分为网站前台、运营商后台、商家管理后台三个子系统

1.1、网站前台:主要包括网站首页、商家首页、商品详细页、、搜索页、会员中心、订单与支付相关页面、秒杀频道等。

1.2、运营商后台:是运营商的运营人员的管理后台。主要包括商家审核、品牌管理、规格管理、模板管理、商品分类管理、商品审核、广告类型管理、广告管理、订单查询、商家结算等。

1.3、商家管理后台:入驻的商家进行管理的后台,主要功能是对商品的管理以及订单查询统计、资金结算等功能。

1.4、SOA架构:是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式;随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,迫切需一个治理系统确保架构有条不紊的演进。

2、电商架构图和表结构

架构图

2.1、表结构

 品牌:tb_brand
 规格:tb_specification
 规格选项:tb_specification_option
 类型模板:用于关联品牌和规格:tb_type_template
 商品分类:tb_item_cat
 商家:tb_seller
 商品:tb_goods
 商品详情:tb_goods_desc
 商品明细:tb_item
 内容(广告):tb_content
 内容(广告)类型:tb_content_category
 用户:tb_user
 订单:tb_order
 订单明细:tb_order_item
 支付日志:tb_pay_log

2.2、所涉及的技术

 框架组合:前后端采用 Ajax交互
 后端框架Spring +SpringMVC+mybatis +Dubbox
 前端angularJS + Bootstrap

2.3、Dubbox框架介绍和架构图

 Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
 简单的说,dubbox就是个服务框架,如果没有分布式的需求,其实是不需要用的,只
 有在分布式的时候,才有dubbox这样的分布式服务框架的需求,并且本质上是个服务
 调用的东西,说白了就是个远程服务调用的分布式框架。

架构图

节点角色说明:

• Provider: 暴露服务的服务提供方。
• Consumer: 调用远程服务的服务消费方。
• Registry: 服务注册与发现的注册中心。
• Monitor: 统计服务的调用次调和调用时间的监控中心。
• Container: 服务运行容器。

调用关系说明:

• 0. 服务容器负责启动,加载,运行服务提供者。
• 1. 服务提供者在启动时,向注册中心注册自己提供的服务。
• 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
• 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
• 4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
• 5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
注册中心使用Zookeeper:注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。

3、创建项目说明

3.1、工程结构

工程说明:
        pinyougou-parent 聚合工程
        pinyougou-pojo 通用实体类层
        pinyougou-dao 通用数据访问层
        pinyougou-xxxxx-interface  某服务层接口
        pinyougou-xxxxx-service   某服务层实现
        pinyougou-xxxxx-web     某web工程 

Day01创建:
        pinyougou-parent(POM)
        pinyougou-pojo(jar)
        pinyougou-dao(jar)
        pinyougou-common(jar)
        pinyougou-sellergoods-interface(jar)
        pinyougou-sellergoods-service(war)
        pinyougou-manager-web(war)
        pinyougou-shop-web(war)

端口名规则:所有的服务工程端口:900X、所有的web工程端口910X

4、Dubbox的入门Demo

服务提供方:

    import com.alibaba.dubbo.config.annotation.Service;
    import com.kid.dubbox.service.UserService;
    @Service
    public class UserServiceImpl implements UserService {
        @Override
        public String getName() {       
            return "I'm a kid";
        }
    }
    
   <dubbo:application name="dubboxdemo-service"/>
   <dubbo:registry address="zookeeper://192.168.25.128:2181"/>
   <dubbo:annotation package="com.kid.dubbox.service"/>

服务消费方:

    @Controller
    @RequestMapping("/user")
    public class Snippet {
        
        @Reference  //import com.alibaba.dubbo.config.annotation.Reference;、
        private UserService userService;    
            
        @RequestMapping("/showName")
        @ResponseBody
        public String showName(){
            return userService.getName();
        
        }
    }
    <dubbo:application name="dubboxdemo-web"/>
    <dubbo:registry address="zookeeper://192.168.25.128:2181"/>
    <dubbo:annotation package="com.kid.dubbox.controller" />
    启动的时候先启动服务,再启动消费方

猜你喜欢

转载自www.cnblogs.com/miantiao312/p/9751272.html
今日推荐