系统架构是灵活的,根据需求的不同,不一定每一层的技术都需要使用。例如:一些简单的
CRM系统
可能在产品初期并不需要K-V
作为缓存;一些系统访问量不大,并且可能只有一台业务服务器存在,所以不需要运用负载均衡层。业务系统间通信层并没有加入传统的
HTTP
请求方式。这是因为HTTP
请求-响应的延迟比较高,并且有很多次和正式请求无关的通信(这在下面的内容中会详细讲到)。所以,传统的HTTP
请求方式并不适合在两个高负载系统之间使用,其更多的应用场景是各种客户端(WEB
、IOS
、Android
等)->服务器端的请求调用。我们把业务编码中常使用的缓存系统归入到数据存储层,是因为类似于
Redis
这样的K-V存储系统
,从本质上讲是一种键值数据库。为什么Redis
会很快以至于可以作为缓存使用,我将在随后的文章中进行详细的描述。还有一点需要注意的是,上面架构图中的每层之间实际上不存在绝对的联系(例如负载层一定会把请求转送的业务层,这样的必然性是不存在的),在通常情况下各层是可以跨越访问的。举例说明:如果
HTTP
访问的是一张图片资源,负载层不会把请求送到业务层,而是直接到部署的分布式文件系统上寻找图片资源并返回。再比如运用LVS
做Mysql
负载时,负载层是直接和数据存储层进行合作。
java web 框架图
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...