.net团队分享

来源:互联网 发布:新三板源码 编辑:程序博客网 时间:2024/06/05 12:42
1.网站架构演化发展历程
网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,简单的业务一旦需要处理大量的数据和用户,问题就会变得棘手。
1.1初始阶段的网站架构
     应用程序、数据库、文件等所有资源在一台服务器上
1.2应用服务和数据服务分离
     应用和数据分离后整个网站使用三台服务器:应用服务器,文件服务器,数据库服务器。根据三方的需求不同,服务器配置不同的硬件资源。
1.3使用缓存改善网站性能
     随着数据访问量的增大,数据库的压力越来越大,从而影响整个系统的性能。数据读写,和业务数据访问都遵循2/8定律,通过缓存可以有效的减少数据库系统的压力。
     缓存类型:内存缓存,分布式缓存(redis,memcached),客户端缓存,cdn等。
     缓存过期问题,数据同步问题
1.4 使用应用服务器集群改善网站的并发处理
     使用缓存后,数据访问的压力减小,单一应用服务器沟通处理的并发请求连接有限。使用集群是解决高并发的常用手段。通过集群可以提高系统的可伸缩性。
     集群注意问题:会话状态保持无状态性。
     反向代理服务器:nginx,haproxy,lvs;硬件负载均衡器;
1.5数据库读写分离
     数据库系统的读写是一对矛盾,大量读写同时进行的时比单纯的只读或写要暂用更多的资源。通过数据库系统的主从热备实现读写分离,可以有效改善数据库负载压力。
1.6分布式文件系统和数据库系统拆分
     文件,数据库和应用服务一样,也会存在单一服务器无法满足业务持续增长的需求。
     常用的数据库拆分手段是业务分库。
     1.将不同的业务数据库部署在不同的物理服务器上,例如用户库,订单库,归档历史日志库
     2.相同业务数据库分表,当前操作数据和历史数据拆分,归档历史数据;历史表,当前表,数据库分区。通过视图进行统一的数据读操作。
1.7业务拆分

2.网站架构中的一些实践
     1.使用队列。主要目的:控制并发和业务服务化,应用解耦,错误重试。
        使用队列,首先意味着应用程序的一次分离,即需要将用户请求和业务处理进行分离。应用系统分离后,用户应用和队列服务之间,可以通过通信协议进行交互,也可以通过共享数据的方式进行联系。
        并发:UU云通过队列解决小米抢购时的数据库负载崩溃。
        业务服务化: 用户可能需要在不同的应用系统中,进行相同的业务逻辑的操作;或者,不同的系统之间有同类的业务处理需求。例如:消息推送,提现工资发放等,可以有错误重试机制等。
        应用解耦:用户请求后,业务处理实践较长。比如,速录侠语音文件格式化,切片等。
     2.动静数据分离
        业务数据一般分为两种:进行中和已完成。进行中的,进行中的需要进行频繁的数据读写;已完成大部分是查询操作。
        根据业务需求,将数据分别存储到不同的表中,通过作业定时转移,使用视图提供统一的查询。
     3.历史数据聚合
        业务部门经常需要各种报表数据,业务明细的数据量非常大,报表数据不直接查询历史明细。在历史的基础上聚合到天,周,月,报表数据通过聚合数据查询。
        1.减少查询的数据量
        2.充分利用服务器的空闲时间
        3.不必进行实时计算

3.常见故障和排查方式
      故障的表现形式:系统不可用,系统缓慢。
      服务器的排查方式:CPU(100%),内存(100%),带宽(100%),磁盘(空间用完),数据库(请求数量),网络(不通)
      1.应用执行慢排查
         大部分涉及数据量和数据库查询,查看运行时cpu和内存,先区分时加载数据量太大,还是数据库执行慢。使用sqlserver profiler跟踪具体sql的执行,或者使用sqlserver执行计划查看sql的执行情况,找到影响的具体sql,添加索引。
     2.磁盘空间不足
        IIS日志(默认在C盘)
        业务日志(记录的跟踪日志)
        数据库数据( 完整或者大容量日志模式,对于频繁进行数据修改、删除操作的系统,数据库日志的增长会很快)
        nginx日志
     3.缓存引发故障
         在缓存已经成为应用系统的基石的情况下,如果缓存系统出现故障,对于系统的伤害可能就是致命的了。
         缓存服务器不可访问的原因,可能是服务器/网络故障,或者人为关闭。
     4.硬盘损坏
           硬盘故障一般出现在数据库中,因为数据库系统的读写频率非常高,它出现故障的几率大。
     5.机房问题
        网线掉线, 这应该是一个非典型的情况,但是它在景安机房确实发生了很多次,并且大部分都是内网网线掉了,内网无法访问;
        网络攻击ip被封;
        运营商线路故障;

原创粉丝点击