架构-伸缩性-扩展性-高可用的学习

标签: 架构 伸缩性 扩展 | 发表时间:2015-07-31 10:42 | 作者:username2
出处:http://www.iteye.com

 

 高可用系统: 

 1 利用负载均衡做集群并且利用负载均衡进行无状态服务的转移  

 2 session管理:1 session复制  2Session绑定 3 Cookie记录Session 4 Session服务器 

 3、数据备份:数据冷备,数据热备(异步热备和同步热备)。关系型数据库通常热备机制为设置主从数据库

 4、失效转移:失效确认、访问转移、数据恢复 (当数据库不可用时,保证数据库的可用性)

 5、高可用系统发布:关闭负载均衡上一台或一批服务器路由,关闭这些服务器应用,部署后启动服务器,然后打开负载均衡即可 

    可以在不影响用户使用的情况下达到服务器部署 

 6、自动化测试:为了节省人工测试成本、时间和覆盖率,使用自动化测试脚本或工具完成测试。如ThoughtWorks 

    或自己开发来完成:系统部署,测试数据生成,测试执行,测试报告生成  

 7、为了减小线上系统故障,要有预发布验证 环境

 8、代码控制:主干开发,分支发布、分支开发,主干发布

 9、网站要有监控

  

 

 网站伸缩性:

  1、应用集群实现伸缩性处理,需要用到负载均衡

    (Http重定向负载均衡,DNS解析负载均衡,反向代理负载均衡,IP负载均衡,数据链路层负载均衡)

 

  2、分布式缓存(1)Hash余数、2)一致性Hash算法hash环算法加上虚拟节点 

  3、分布式关系型数据库:

1)数据库做双向主从备份 

2)多个数据库之间用开源软件做负载路由Cobar,但不能解决分页和事务问题

3)Cobar可以用负载均衡实现伸缩处理

4)数据库需要前期创建n多Schema,数据库伸缩可以将相应的Schema拷贝到新的数据库中即可 

  4、NoSQL数据库伸缩性设计

 

 

 

  可扩展性架构:

   1、事件驱动架构(主要用队列)

   2、分布式服务架构(代码进行横向和纵向拆分,进行分布式部署,保证模块独立性,)

   3、分布式框架设计(有待学习啊Dubbo)

 

 

故障教训:

   1、日志问题:

       服务器日志级别至少调整到warn级别,以防产生过多日志占用服务器资源

       日志文件不要放在服务器内部,找单独的服务器目录保存

   2、数据库查询:在访问量比较大的页面数据最好走缓存不要直接访问数据库。

   3、锁的使用:高并发模块用锁谨慎,以防出现排队现象,访问超时

   4、缓存:初始的作用也许不明显,会导致缓存服务器管理疏忽,一旦缓存成系统不可缺的一部分的时候

   要提高对缓存应用的关注。

   5、大小文件的保存最好分开以免上传大文件时候占用太多资源,影响其他资源

   6、提交代码前要仔细比较,防止错误代码提交(仔细)

 

 

没有救世主

发掘优秀的人,

接收他人对自己工作的指指点点

让他人理解自己设计的目的

让他人对自己工作更有责任感

让项目成为他人的一部分

成就他人,成就自己 

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [架构 伸缩性 扩展] 推荐:

架构-伸缩性-扩展性-高可用的学习

- - 企业架构 - ITeye博客
 1 利用负载均衡做集群并且利用负载均衡进行无状态服务的转移  .  2 session管理:1 session复制  2Session绑定 3 Cookie记录Session 4 Session服务器 .  3、数据备份:数据冷备,数据热备(异步热备和同步热备). 关系型数据库通常热备机制为设置主从数据库.

[译]InnoDB官方博客:InnoDB Plugin的性能和可伸缩性

- Eneri - P.Linux Laboratory
本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/database/plug-in-for-performance-and-scalability.html. 原文地址:http://blogs.innodb.com/wp/2009/03/plug-in-for-performance-and-scalability/.

Facebook使用Corona提升Hadoop的可伸缩性

- - InfoQ cn
Facebook已经 开源了Corona,这是一款内部开发的用以改善Hadoop MapReduce调度的软件. Corona将集群管理和作业跟踪这两个关键任务分开. 这与 Apache YARN在概念上不谋而合,YARN也是MapReduce调度器和资源管理器的一个改进版本. Facebook的工程团队发表了一篇文章来 解释Corna及其背景.

Dropbox可伸缩性设计最佳实践分享

- - InfoQ cn
  Dropbox的运维工程师 Rajiv,跟大家分享了可伸缩性设计的 最佳实践第一讲. 众所周知, Dropbox是一款非常易用的网络存储云端产品,现已达到40,000,000的用户. 令人惊奇的是, Dropbox公司对于服务器集群的运维人员投入在一到三个人. Rajiv就系统的可伸缩性设计,尤其在资源有限、流量快速增长的情况下,将最佳实践分享给大家.

可伸缩性最佳实践:来自eBay的经验

- - 人月神话的BLOG
原文: http://www.infoq.com/cn/articles/ebay-scalability-best-practices. 在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力. 我们所做的每一项架构及设计决策,身前身后都能看到它的踪影. 当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题.

软件中谈到的可伸缩性原理(转载)

- - 研发管理 - ITeye博客
英文原文:Scalability Principles.   从最简单的水平来看,可伸缩性就是做更多的事情. 更多的事情可以是响应更多的用户请求,执行更多的工作,或处理更多的数据. 设计软件这件事本身是复杂的,而让软件做更多的工作也有其特有的问题. 这篇文章针对构建可伸缩软件系统提出了一些原则和方针.

JVM性能优化, Part 5:Java的伸缩性

- - 并发编程网 - ifeve.com
JVM性能优化系列文章由Eva Andearsson在javaworld上发表共计5篇文章, ImportNew上有前4篇译文. 本文(第5篇)由 吴杰翻译自: javaworld . 很多程序员在解决JVM性能问题的时候,花开了很多时间去调优应用程序级别的性能瓶颈,当你读完这本系列文章之后你会发现我可能更加系统地看待这类的问题.

[转]企业级 GIS 性能和可伸缩性——基础设施

- - ArcGIS技术研究
性能是计算机系统工作速度的度量值. 可伸缩性则是一种在不带来负面影响的前提下增加大小和复杂性的能力. 这两者任一方面出现问题都可能导致企业级系统的运作效率低下,并引发关键业务组件的潜在性常规故障. 对环境的测试、监控和调整一定程度上可确保最佳性能的获取从而提高用户满意度. 在实现企业级 GIS 的过程中选择正确的硬件及其后续的配置会对解决方案的性能和可伸缩性产生显著影响.

构建高可伸缩性的WEB交互式系统(上)

- - 博客园_知识库
  可伸缩性是一种对软件系统处理能力的设计指标,高可伸缩性代表一种弹性,在系统扩展过程中,能够保证旺盛的生命力,通过很少的改动,就能实现整个系统处理能力的增长.   在系统设计的时候,充分地考虑系统的可伸缩性,一方面能够极大地减少日后的维护开销,并帮助决策者对于投资所能获得的回报进行更加精准的估计;另一方面,高可伸缩性的系统往往会具有更好的容灾能力,从而提供更好的用户体验.

基于MySQL的高可用可扩展架构探讨-原文已发表于《程序员》

- - Sky.Jian 朝阳的天空
注:原文已发表于《程序员》杂志关系型数据库60周年特刊. 随着信息量飞涨,信息的存储成为了这个时代至关重要的一项技术. 如何来保证数据存储技术能够适应信息量的增长速度和我们对信息的高度依赖,成为一个非常重要的课题. 本文将从数据库架构的层面,通过以开源的数据存储软件来构建分布式数据层的思路,期望实现一个低成本的高可用可扩展的数据层架构.