【分布式电商网站(学习笔记)】1.环境搭建
电商网站
访问量大
数据量大
并发高
有一定的业务复杂性技术点丰富
涉及安全方面
工程架构(分布式应用架构)
各个应用独立分层使用rpc实现web与service,service与service的互相调用提高代码复用性
项目架构
1)工程结构
Maven为基础 对项目进行分层架构
2)项目架构
面向服务的分布式架构(SOA)
技术栈
二、分布式工程搭建
三、Dubbo和zookeeper
四、笔记
1.新建user项目(用来提供用户服务)
C:\Windows\System32\drivers\etc
修改hosts文件 将本地 locahost 变为 user.gmall.com
刷新配置
私用ngix服务器
2.通用mapper的整合
使用框架tk.mapper
添加pom.xml 依赖
接口继承mapper<>泛型 可以去除@Mapper
成功生成增删改查方法
注意 使用时要添加
主键返回策略
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通讯
Zookeeper 服务启动成功产生“心跳”
产生匹配的服务
本地@Autowired不在同一个容器无法注入 只能使用远程协议代理
1.切换本地@service 为dubbo
注意事项
1)Spring 的 @service 改为 dubbo的service
2)将@Autowired 改为 @Reference
3)dubbo在进行dubbo协议通讯是需要实现序列化接口(封装数据的对象)
Bean对象没有序列化
4)Dubbo comsumer访问服务三秒钟每一秒访问一次 默认一秒超时
超过三次失败
开发阶段可以设置consumer设置超时延长(单位 毫秒)