分布式 - 如何把应用从单机扩展到分布式
2018-03-04 00:00
375 查看
本节会学习以下内容:
第一版 单台服务器应用
第二版 应用服务器和数据库服务器分离
第三版 应用服务器集群
第四版 负载均衡器
第五版 数据库服务器集群
第六版 搜索引擎集群
第七版 缓存服务器
第八版 数据库水平/垂直拆分
第九版 应用服务器垂直拆分
第十版 SOA服务(分布式架构)
出现以下问题:
由于流量越来越大出现服务器性能问题。
对架构增加了一台服务器,应用和数据库分别部署到不同的服务器上,对于开发和测试没有任何影响,只需要应用服务器新增一个远程调用数据库服务器的连接,有效的缓解了应用服务器负载的压力。
出现以下问题:
随着请求流量得进一步增大出现应用服务器性能问题。
流量请求得到缓解。
应用服务器集群后出现以下问题:
1.需要使用session+cookie维护用户
2.如何做请求转发(cdn,前端做负载均衡器)
1.负载均衡器优化了访问请求在服务器组之间的分配,消除了服务器之间的负载不平衡,从而提高了系统的反应速度与总体性能;
2.负载均衡器可以对服务器的运行状况进行监控,及时发现运行异常的服务器,并将访问请求转移到其它可以正常工作的服务器上,从而提高服务器组的可靠性采用了负均衡器器以后,可以根据业务量的发展情况灵活增加服务器,系统的扩展能力得到提高,同时简化了管理。
负载均衡器之后出现以下问题:
随着流量的新增,数据库服务器有性能压力,数据库遇到瓶颈。
数据库服务器集群后出现以下问题:
1.数据库读写分离
2.数据库数据同步
3.数据库路由
搜索引擎集群后出现以下问题:
1.搜索引擎的索引数据如何同步,实时增量or定时全量?
用户量是没有上限的
缓存、 限流、 降级
注:架构到了第七版还不能算分布式架构,只能说是由多台服务器组成的高可用的架构
目前将数据库进行垂直拆分,还未进行数据库水平拆分(比如将订单表分库分表就属于水平拆分)
以淘宝为例:
user.taobao.com
product.taobao.com
order.taobao.com
根据不同域名请求访问不同服务器,如果涉及到用户需要查询商品或订单,直接在用户服务器里写DAO层查询商品或订单数据库表。
产生问题:应用服务器交互调用问题。
最后第十版就不是web应用服务了,应用服务拆分为服务节点,属于微服务了。
第一版 单台服务器应用
第二版 应用服务器和数据库服务器分离
第三版 应用服务器集群
第四版 负载均衡器
第五版 数据库服务器集群
第六版 搜索引擎集群
第七版 缓存服务器
第八版 数据库水平/垂直拆分
第九版 应用服务器垂直拆分
第十版 SOA服务(分布式架构)
第一版 单台服务器应用
出现以下问题:
由于流量越来越大出现服务器性能问题。
第二版 应用服务器和数据库服务器分离
对架构增加了一台服务器,应用和数据库分别部署到不同的服务器上,对于开发和测试没有任何影响,只需要应用服务器新增一个远程调用数据库服务器的连接,有效的缓解了应用服务器负载的压力。
出现以下问题:
随着请求流量得进一步增大出现应用服务器性能问题。
第三版 应用服务器集群
流量请求得到缓解。
应用服务器集群后出现以下问题:
1.需要使用session+cookie维护用户
2.如何做请求转发(cdn,前端做负载均衡器)
第四版 负载均衡器
1.负载均衡器优化了访问请求在服务器组之间的分配,消除了服务器之间的负载不平衡,从而提高了系统的反应速度与总体性能;
2.负载均衡器可以对服务器的运行状况进行监控,及时发现运行异常的服务器,并将访问请求转移到其它可以正常工作的服务器上,从而提高服务器组的可靠性采用了负均衡器器以后,可以根据业务量的发展情况灵活增加服务器,系统的扩展能力得到提高,同时简化了管理。
负载均衡器之后出现以下问题:
随着流量的新增,数据库服务器有性能压力,数据库遇到瓶颈。
第五版 数据库服务器集群
数据库服务器集群后出现以下问题:
1.数据库读写分离
2.数据库数据同步
3.数据库路由
第六版 搜索引擎集群
搜索引擎集群后出现以下问题:
1.搜索引擎的索引数据如何同步,实时增量or定时全量?
第七版 缓存服务器
用户量是没有上限的
缓存、 限流、 降级
注:架构到了第七版还不能算分布式架构,只能说是由多台服务器组成的高可用的架构
第八版 数据库水平/垂直拆分
目前将数据库进行垂直拆分,还未进行数据库水平拆分(比如将订单表分库分表就属于水平拆分)
第九版 应用服务器垂直拆分
以淘宝为例:
user.taobao.com
product.taobao.com
order.taobao.com
根据不同域名请求访问不同服务器,如果涉及到用户需要查询商品或订单,直接在用户服务器里写DAO层查询商品或订单数据库表。
产生问题:应用服务器交互调用问题。
第十版 SOA服务(分布式架构)
最后第十版就不是web应用服务了,应用服务拆分为服务节点,属于微服务了。
相关文章推荐
- 如何把应用从单机扩展到分布式
- solr 应用全面解析,简单的应用,多实例,分布式索引分发,如何在客户端配置注册多实例
- 如何构建大型分布式应用-山东省寿光市区域公共卫生平台 推荐
- 如何设计扩展操作码--应用
- 如何通过AgileEAS.NET快速搭建属于你的企业应用(二)——智能版本升级和多数据库访问的分布式部署
- Gearman分布式任务处理系统(二)扩展应用
- App Extension编程指南(iOS8/OS X v10.10):应用扩展如何工作
- PHP扩展开发与内核应用阅读笔记---php的作用域以及如何在扩展中定义,查找php变量
- 如何开发Office平台上的扩展应用(又称为Office 2013 App,Office 2013 Add-Ins,Apps for Office,Office 应用)
- 无法打开谷歌网上应用商店 --> 设置(齿轮) --> 我的扩展程序和应用 这个选项?该如何解决呢?
- 分布式应用下的Redis单机锁设计与实现
- Bind 搭建 DNS(应用:域名方式配置分布式集群,扩展方便)
- Cinder-Volume如何实现AA高可用——分布式锁及其在OpenStack上的应用
- 如何在Chrome浏览器安装chrome应用商店外的第三方扩展程序
- 前面在《Asp.Net Forums中对.Net中序列化和反序列化的应用》一文中讲了,对于一些扩展属性,可以将字符串集合序列化为二进制,也可以从二进制反序列化为字符串集合。其实我一直有个疑问,对于asp.net中可以很容易实现,但是在asp中该如何?
- 如何创建以Microsoft .NET Remoting为基础的分布式应用架构?
- [ lucene高级 ] 研讨如何进行Lucene的分布式应用 [转]
- 如何利用kubernetes实现应用的水平扩展(HPA)
- 如何使用Lua扩展C/C++应用系列3-转自bbs.luachina.net
- 如何在Centos6.5下部署hadoop2.2单机伪分布式(二)