【分布式电商网站(学习笔记)】1.环境搭建

电商网站

访问量大
数据量大
并发高
有一定的业务复杂性技术点丰富
涉及安全方面

工程架构(分布式应用架构)

【分布式电商网站(学习笔记)】1.环境搭建
各个应用独立分层使用rpc实现web与service,service与service的互相调用提高代码复用性

项目架构

1)工程结构
Maven为基础 对项目进行分层架构
【分布式电商网站(学习笔记)】1.环境搭建
2)项目架构
面向服务的分布式架构(SOA)
【分布式电商网站(学习笔记)】1.环境搭建
技术栈
【分布式电商网站(学习笔记)】1.环境搭建

二、分布式工程搭建

【分布式电商网站(学习笔记)】1.环境搭建
【分布式电商网站(学习笔记)】1.环境搭建
【分布式电商网站(学习笔记)】1.环境搭建
【分布式电商网站(学习笔记)】1.环境搭建

三、Dubbo和zookeeper

【分布式电商网站(学习笔记)】1.环境搭建

四、笔记

1.新建user项目(用来提供用户服务)

C:\Windows\System32\drivers\etc
修改hosts文件 将本地 locahost 变为 user.gmall.com
【分布式电商网站(学习笔记)】1.环境搭建
刷新配置
私用ngix服务器

2.通用mapper的整合

使用框架tk.mapper
【分布式电商网站(学习笔记)】1.环境搭建
添加pom.xml 依赖
【分布式电商网站(学习笔记)】1.环境搭建
接口继承mapper<>泛型 可以去除@Mapper
【分布式电商网站(学习笔记)】1.环境搭建
成功生成增删改查方法
注意 使用时要添加
【分布式电商网站(学习笔记)】1.环境搭建
主键返回策略

Gmall-parent 父依赖创建
1)用maven创建 gmall-parent 工程
2)新建其他项目模块(子模块)
3)Gmall-parent 依赖基于 springboot 1.5
4)在gmall-parment中定义整个项目的技术栈架构版本管理

Gmall-api
1)使用maven创建一个gmall-api工程
2)引入tk通用mapper(映射类)
3)将xxxService 接口和所有bean类放到api中
4)抽取service serivceImpl mapper **Mapper.xml 修改路径

Gmall-util
1)项目中的通用框架,是所有应用工程引入的包
springBoot common-lans common-beanutils
2)基于SOA的架构理念项目分为web前端controller
Jsp thymeleaf cookie工具类
3)基于SOA的架构理念项目分为web后端service
Mybaties redis

拆分成分布式架构
SOA面向服务(以dubbo为基础)
1)Dubbo的SOA工作原理
2)Dubbo与springcloud区别在于dubbo由自己的协议通讯,sc是由http协议(rest风格)
3)Dubbo有一个注册中心的客户端时时同步注册中心的服务信息
4)dubbo有一个javaweb的监控中心 负责监控服务的注册信息甚至可以配置负载均衡

@## 将项目改造为dubbo分布式框架
1.将user项目拆分为user-service 和 user-web
2.引入 dubbo 框架
3.将dubbo框架引入 gmall-common-util中 因为 web层和service层将来需要支持dubbo通讯
【分布式电商网站(学习笔记)】1.环境搭建
Zookeeper 服务启动成功产生“心跳”
【分布式电商网站(学习笔记)】1.环境搭建
产生匹配的服务
【分布式电商网站(学习笔记)】1.环境搭建
【分布式电商网站(学习笔记)】1.环境搭建
【分布式电商网站(学习笔记)】1.环境搭建
本地@Autowired不在同一个容器无法注入 只能使用远程协议代理

1.切换本地@service 为dubbo

注意事项
1)Spring 的 @service 改为 dubbo的service
2)将@Autowired 改为 @Reference
3)dubbo在进行dubbo协议通讯是需要实现序列化接口(封装数据的对象)
【分布式电商网站(学习笔记)】1.环境搭建
Bean对象没有序列化
4)Dubbo comsumer访问服务三秒钟每一秒访问一次 默认一秒超时
超过三次失败
【分布式电商网站(学习笔记)】1.环境搭建
开发阶段可以设置consumer设置超时延长(单位 毫秒)
【分布式电商网站(学习笔记)】1.环境搭建