分布式系统架构

一.简单分析下下图的分布式系统架构。

分布式系统架构_第1张图片

        通过CND减轻带宽问题,静态资源处理。然后访问到自己的多台服务器,每台服务器搭建keepalived,互相监听,设置一个主服务器,主服务挂了,备用服务器接替主服务器工作。

        同时nginx做反向代理和负载均衡工作。指向Tomcat,也就是我们的action部署的地方。然后用Dubbo远程调用Service服务。当然,我们的Service服务,拆分了很多个,订单服务,注册服务,支付服务等,一个服务可能会部署到多个服务器上。

        最后,就是到我们的数据库环节了,数据库也是一件让人脑壳疼的事,比如淘宝的用户有好多个亿,订单的数量就更不用说了,但是他们查询速度为何这么快。这里就用到了分库分表功能,再加上读写分离,这样数据库承载的压力就比较大了。


二.描述

CDN

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。

CDN的目的为了处理一些大型网站的静态资源,刚刚进入首页的时候,会加载大量的图片,而且很多是比较大的。那我们该怎么处理呢?比如我们买了杭州的CDN代理商,小明刚好在杭州,那么他读取静态资源,只需要在杭州地区获取了,这样一来获取的速度就特别快了。动态资源就访问自己的服务器了。

CND服务器通过缓存或者主动抓取主服务器的内容来实现资源储备。

Keepalived

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

Dubbo

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。


MyCat

MyCat是mysql分库分表中间件。
mycat是一个数据库中间件,也可以理解为是数据库代理。在架构体系中是位于数据库和应用层之间的一个组件,并且对于应用层是透明的,即数据库感受不到mycat的存在,认为是直接连接的mysql数据库(实际上是连接的mycat,mycat实现了mysql的原生协议)
mycat还可以用到读写分离,具体就不细讲了。


你可能感兴趣的:(项目设计)