Java 杂谈lu‘s note程序员

【分布式】应用从单机到分布式的演进过程

2018-10-19  本文已影响6人  l鹿狸i

前言

单机的性能会遇到瓶颈,这仅仅是从性能来看。即使不从性能来看,如果一个机器的性能足够,那么也会存在单点故障的问题,所以我们需要分布式的高可用。

一、单台服务器应用

出现以下问题:

由于流量越来越大出现服务器性能问题。

二、应用服务器和数据库服务器分离

对架构增加了一台服务器,应用和数据库分别部署到不同的服务器上,对于开发和测试没有任何影响,只需要应用服务器新增一个远程调用数据库服务器的连接,有效的缓解了应用服务器负载的压力。

出现以下问题:

随着请求流量得进一步增大出现应用服务器性能问题。

三、应用服务器集群

流量请求得到缓解。

应用服务器集群后出现以下问题:

1.需要使用session+cookie维护用户

2.如何做请求转发(cdn,前端做负载均衡器)

四、负载均衡器

1.负载均衡器优化了访问请求在服务器组之间的分配,消除了服务器之间的负载不平衡,从而提高了系统的反应速度与总体性能;

2.负载均衡器可以对服务器的运行状况进行监控,及时发现运行异常的服务器,并将访问请求转移到其它可以正常工作的服务器上,从而提高服务器组的可靠性采用了负均衡器器以后,可以根据业务量的发展情况灵活增加服务器,系统的扩展能力得到提高,同时简化了管理。

负载均衡器之后出现以下问题:

随着流量的新增,数据库服务器有性能压力,数据库遇到瓶颈。

五、数据库服务器集群

数据库服务器集群后出现以下问题:

1.数据库读写分离

2.数据库数据同步

3.数据库路由

六、搜索引擎集群

搜索引擎集群后出现以下问题:

1.搜索引擎的索引数据如何同步,实时增量or定时全量?

七、缓存服务器

用户量是没有上限的

缓存、 限流、 降级

注:架构到了第七版还不能算分布式架构,只能说是由多台服务器组成的高可用的架构

八、数据库水平/垂直拆分

目前将数据库进行垂直拆分,还未进行数据库水平拆分(比如将订单表分库分表就属于水平拆分)

九、应用服务器垂直拆分

以淘宝为例。根据不同域名请求访问不同服务器,如果涉及到用户需要查询商品或订单,直接在用户服务器里写DAO层查询商品或订单数据库表。

产生问题:应用服务器交互调用问题。

在此我向大家推荐一个架构学习交流群。交流学习群号:478030634 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

十、SOA服务(分布式架构)

最后第十版就不是web应用服务了,应用服务拆分为服务节点,属于微服务了。

上一篇下一篇

猜你喜欢

热点阅读