http://my.oschina.net/u/173426/blog/618865

看了很多文章,都是关注微观细节上优化,而我喜欢从大的往小的说。

 

1、服务器集群、负载均衡

     毫无疑问,程序写得再好,只能最大利用一台服务器的性能,让单台服务器能够支持更多的人访问请求。但别忘了,单台服务器性能再高也是有限的,

带宽也是有限的,要想支撑更多的并发量,只能采用多服务器集群方式,每台服务器支撑一定数量的并发,这就是负载均衡概念。

    负载均衡分为硬件负载均衡(如F5、dns负载均衡)和软件负载均衡(如Nginx/LVS/HAProxy),硬件级负载均衡转发到的必须是具有外部ip的服务器,而这台服务器又是一台软件负载均衡服务器,转发给内部局域网的多台服务器,最终接入web系统。

    一般来说,一台搭建有Nginx/LVS/HAProxy 的软件负载均衡服务器,支撑的并发数在5万以内(理论最高值),正常在一半(2.5万)左右,要考虑并发量在千万级,那就需要400台以上的具有外部ip的软件负载均衡服务器。

 

2、web网站集群、缓存集群、session集群

     每一台最终用户接入的服务器都部署完全一样的web服务,这些web程序虽然可以统一连接数据库作为数据全局共享,但是数据库连接操作影响了很大的性能,所以需要使用缓存数据提高性能,这些缓存数据可能分布在不同的服务器中,为了保持数据的一致性,必须同步共享。个人数据保存在Session中也一样,每台服务器保存的Session数据也需要同步。

    这些数据的集群共享,已经有很多成熟的方案,比如 mecached session manager 等。

 

3、数据库集群

     数据库服务器集群无非也是想达到负载均衡提高吞吐量的作用,传统的数据库如 MySQL /oracle/ sqlserver 等,可以采用分布式安装部署,通过分表分区技术达到负载均衡,但是,为了保护数据的一致性,只能均衡读操作的负载,无法均衡写操作的负载,也就是插入数据库时,还是采用只在中心服务器插入,然后复制到其他服务器,这就导致了瓶颈出现在中心服务器的插入性能上。

 

4、内存数据库

    内存操作比传统数据库采用的磁盘读写操作,速度上不是一个量级的,如果中心数据库采用内存数据库,那么将会很好地解决插入瓶颈的问题,大大提高并发量。

    gemfire是比较成熟商业化的内存数据库,现在已经有了开源版本,据说12306就是采用它,缺点是开发文档比较少。

    mongodb是开源的比较有影响力的内存数据库,基于类json格式结构数据库,比较靠近关系型数据库,用于统计查询过滤的系统是很好的选择。

    redis 是纯key-value的缓存数据库,结构比较单一,用作缓存比较合适。

 

5、缓存数据集群

   缓存数据可以减少数据库的频繁操作,提高性能,但是为了保证数据的一致性,这些分布在不同服务器的缓存数据需要集群共享。

   mecached 是不错的分布式缓存。

 

6、session集群

    用户数据一般保存在session中,类似于缓存数据,Session数据也需要集群共享。

   mecached session manager 是值得推荐的 集群Session方案。

 

7、独立文件存储服务器

   说完了服务器集群,现在该说怎么优化单台服务器性能了。

   下载文件,显示图片,这些都是占用很大带宽的资源,带宽不够,还会消耗cpu性能。

   我们把文件和图片都保存到独立的文件服务器里,这样web服务器就会只负责运算和传输少量文字内容,显示图片或下载文件转向文件服务器,显示图片或下载文件慢也不会影响后面的用户操作,增加高并发量。当然,文件服务器也可以多台镜像服务器负载均衡提高下载速度。

 

8、html静态化

    很多数据库里的固定资源(比如新闻内容)可以查询出来后转成html页面,这样就不需要每次都去查询数据库,直接访问html页面提高速度。

    值得注意的是,html静态化只适用于某些特定场合,很多系统是无法静态化的,不要抱以太高的希望。

 

就这些了,可能还有些没想到的方面。

关注我写的开源框架  ErpCore & BigCore ,

下载源码到  http://www.8088net.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ErpCore是一套强大的云计算ERP开发框架,集数据库设计、软件建模、模型自动生成、界面可视化设计、业务流可自定义、全自动生成用户所需系统于一体。在此框架上扩展出所有行业的业务系统,它让软件工程师从“建模——写代码——测试”所有繁琐重复的工作变为全自动化生成,大大简化了企业软件的开发时间和成本;同时,使用该框架扩展的所有业务子系统能够无缝连接进行数据共享,这也是云计算ERP的实现基础,杜绝了传统ERP的子系统信息孤岛的弊端,真正实现无缝整合企业的所有资源进行管理。 灵活的自定义对象功能解决了传统ERP由软件厂商定死业务规则的弊端,业务流规则将变成企业自己自定义,满足国内不同企业存在不同工作业务流、或者同一个企业不同时期的业务流变动情况。 功能描述: 1、自动建模 框架内部带有虚拟数据库系统,用户可在虚拟数据库上创建表、字段、表间关联,企业根据自己的具体业务需求构建合适的数据库架构,即通过自动化实现销售业务人员将能完成DBA的工作。业务流程将变成企业自定义。 2、自定义对象 对应于虚拟数据库上创建表、字段、表间关联,用户可自定义对象、对象属性、对象关联。奠定了可以扩展出符合所有行业所有业务系统可能性。 3、窗体表单可视化设计 通过拖拽拉的方式,业务人员即可创建软件使用界面,把界面关联起来即可实现不用编码就能创建所需的业务系统。 4、全自动创建子系统 管理员在后台通过创建对象、创建窗体,并集成成一个子系统,普通使用人员就能使用子系统进行工作,不需额外开发工作。 5、云计算提高效率 系统可扩展出分布式存储计算,可集成多数据库服务器,完美解决传统ERP的单数据库服务器的统计效率问题。 6、系统扩展及二次开发 从框架的业务基类派生出更高一层的业务模型,企业的软件开发人员快速开发出个性化功能的模型对象,满足不同企业的个性需求功能,并能与整个ERP系统无缝数据共享,真正把所有企业资源整合成一体。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值