大数据正式京淘1
技术点
- Spring、SpringMVC、Mybatis框架
- 富客户端EasyUI、KindEditor图文控件
- Maven项目管理工具
- PowerDesigner表设计及优化
- Mapper插件
- Nginx负载均衡
- Tomcat集群
- RESTFul访问方式
- HttpClient系统间调用
- Redis缓存服务器,分片,哨兵高可用
- RabbitMQ消息队列
- MySql主从复制,Amoeba读写分离
- Lucene、olr搜索
- Linux/CentOS操作系统
涉及重点
- 高并发
- 高可用
- 电商架构
- Redis缓存
- 搜索+爬虫
分布式
- Nigix负载均衡集群
- TomcatWeb中间件集群
- Redis缓存集群
- MySql主从
- Solr全文检索集群
环境
- Windows/CentOs6.5/VMworkstation10
- PowerDesigner 15.6
- Eclipse neon
- JDK1.7以上
- Maven5.5
- Tomcat7.0.59
- Nginx1.9.9
- Redis3.2.11
- MySql5.5.27
单maven项目
- 优点
- 结构简单
- 开发过程不需要考虑分布式的难题
- 不需要考虑jar包依赖
- 缺点
- 高可用能力低
- 团队开发配合难度大
京淘系统
- 多个工程系统【分为两部分】
- 业务系统(启动这些系统)
- 前台系统【单独Maven】
- 访问首页
- 登录连接
- 注册连接
- 购物车连接
- 订单连接
- 后台系统【单独Maven】
- 商品增删改查
- 购物车系统【单独Maven】
- 选择商品
- 数量
- 支付金额
- 订单系统【单独Maven】
- 发起链接
- 生成订单
- 收货人信息
- 付款方式
- 商品内容
- 登录系统
- 登录系统【单独Maven】
- 权限管理
- 用户信息的获取
- 前台系统【单独Maven】
- 支撑系统
- 父工程:管理依赖的jar包(maven继承)【单独Maven】
- 工具工程:管理所有工程的公用工具类(maven依赖)【单独Maven】
- 业务系统(启动这些系统)
纵向拆分【一级拆分】
- 【parent父依赖】【common工具】
- 子模块【依赖:父依赖+工具】
横向拆分【二级拆分】
- pojo
- mapper
- service
- controller
京淘的整体布局结构
多个过程,根据项目的纵向拆分,分为不同的工程系统、
- 京淘
- 登录系统
- 购物系统
- 。。。
不同的工程系统,又可独立的进行纵向拆分
- 登录系统
- LoginController
- LoginService
- LoginMapper
- 。。。
Maven工程的继承
情景分析
- 庞大的工程的分为几个工程时
- 各自为政
- 不同的需求需要不同版本的jar包
Maven问题
- 更换了maven库后,创建工程显示错误
- 解决
- 更新不及时--删除联网重新下载
- 损坏,版本号错--删除,更新
- 解决
软件资源和版本管理
资源
- 静态页面
- css
- img
- 系统对接接口
- 开发需求书
- jar
- 工具类
管理
- CVS:早期
- SVN:资源管理
- GIT:版本管理