互联网电商行业的特点
分布式 , 高并发 , 集群 , 海量数据 等等
那如何解决海量数据和高并发的问题呢?
1.dao 层
合理的表设计(尽量避免多表联查 , 不做主外键约束)
高频查询的数据 , 应放入缓存 Redis 中
经常模糊查询的数据放到 solr
数据库分布式部署 分库分表
2.service 层
使用面向服务的开发方式 : SOA 把服务层做成 web 项目 , 给 web 层提供服务 , 服务层之间数据交互操作消息队列MQ
3.web 层
静态页面 , 浏览器缓存 , CDN 部署方案
什么是 SOA 呢?
SOA 是 Service-Oriented Architectrue 的首字母简称,它是一种支持面向服务的架构样式 . 从服务 , 基于服务开发和服务的结果来看 , 面向服务是一种思考方式 . 其实 SOA 架构更多应用于互联网项目的开发 .
为什么要用 SOA ?
因为随着网站应用的规模不断扩大 , 常规的垂直应用架构已经无法应对 , 分布式服务架构以及流动计算架构势在必行 , 迫切需要一个治理系统确保架构有条不紊的演进 .
Dubbox
Dubbox 是一个分布式服务框架 , 前身是阿里巴巴的 Dubbo
Dubbox 是用来干什么的?
Dubbox 提供高性能和透明化的 RPC 远程服务调用方案 , 以及 SOA 服务治理方案 .
如果没有分布式的需求 , 其实是不需要使用的 .
Zookeeper
官方推荐使用 zookeeper 注册中心 . 注册中心 负责服务地址的注册于查找 , 相当于目录服务 , 服务提供者和消费之只在启动时于注册中心交互 , 注册中心不转发请求 , 压力较小 .
1.png
1.服务层注册通过 dubbo 把对象传到 zookeeper 注册中心
2.表现层通过 dubbo 从 zookeeper 注册中心 中获取对象
3.表现层使用获得的代理对象远程调用服务层方法
网友评论