高并发、海量数据
一、什么是分布式?
-
任务分解
-
节点通讯
二、分布式和集群的关系?
分布式:一个业务分成多个子系统,部署在不同的服务器上。
集群:通过一个业务,部署在多个服务器上。
- 分别为应用服务器和数据库服务器,不同的服务器可以承担不同请求,减轻服务器负担,如果一个服务器宕机,对另一个服务器没有影响。
对请求流量进行分流:应用服务器做集群。
加负载均衡器
数据库的高性能操作:因为数据库操作80%是读,读写分离操作。
- 数据库读写分离怎么做?
- 数据库同步?
- 数据路由:怎么选择读请求和写请求?mycat
电商平台最多的操作是:搜索商品,需要搜索引擎
搜索引擎的数据怎么做同步,实时增量同步?还是定时全量同步?
性能:解决访问量持续增高
用户量是么有上限的。缓存、限流、降级。
引入缓存。
数据库水平/垂直拆分
应用服务器垂直拆分:拆分成商品、用户、订单
然后根据需求调用相应的服务
soa服务:通过Zokeeprer完成注册中心的功能,每个服务通过zk自己提供的服务以及需要的服务名,zk实现发布订阅的功能,服务之间的调用使用grpc和Dubbo
分布式架构与传统架构的区别:
项目粒度分的更加细。耦合度降低
soa架构与微服务架构
SOA架构代表面向服务架构。
rpc远程调用框架:httpClient, springcloud,dubbo,grpc
核心底层socket技术或者netty实现
微服务:基于SOA架构演变过来的
微服务和SOA架构的区别:
SOA架构缺点:采用SOAP(Http+XML),XML传输协议占用带宽,使XML报文中有大量冗余,所以在微服务架构中以json轻量级方式代替xml传输。
微服务:
微服务架构是从SOA 架构演变过来的,比SOA架构上粒度上更细,让专业的人做专业的事,提高效率。
每个服务之间互不影响,每个服务独立部署(独立数据库,独立redis)
轻量级:协议:http+JSON格式