[!--temp.gonggao--]
有事点这里,QQ号码:357710851  有事点这里,QQ号码:357710851
水产养殖户王国海诉宁波虬龙水产有限公
轻松管理联系人 手机通讯录备份软件推
中性评级]新能源车热管理系统之竞争格
中国水产品的市场分析和汇总
漳州网站模板制作
湛江国联水产开发公司来铜考察
太平洋寿险首推手机版“微贷款
开锁后拒不付费锁匠赌气重新带门
汇友实锤爆料:Banyan无法出金网站模板是
北森tita等五款好用的企业人才管理软件
国联水产拟收购海外同行公司
word2013怎样制作简历模板
浙江宁波市供电公司贴心服务水产养殖户
美终裁暖水虾税率1816% 国联水产被逼转
8月房价出炉:济青新房价格环比上涨 涨
每日经济新闻专访交通银行首席经济学
【财经数据】8月地方专项债发行量是
区域新闻 - 经济观察网 - 专业财经新
青岛这里房价还涨吗 官方发话了 还有
中消协:八成多受访者遭APP个人信息泄
日本政府调查:5%的男高中生曾吸电子烟
【每日经济新闻:52亿港资今日北上 创
法政府致力将巴黎打造为欧洲金融中心
海南2018年中考6月25日进行 高中生替
2个月吸金超50亿 即时配送领域混战未
青岛新闻网:第三届中国(青岛)金融特殊资
今日财经新闻几分钟了解一下「8月10
官网没买到? iPhone X京东双·11抢购
 

面对峰值响应冲击解决高并发的三大策略


发布者: 来源:本站 更新日期:2018-10-06 07:38:40 人气:0

 

  当前在互联网+的大潮下,众所周知淘宝、京东这些交易系统每天产生的数据量都是海量的,每天的交易并发也是惊人的,尤其是双11、6.18这些活动,对系统的峰值响应提出了非常高的要求,所以对系统架构也就有了很要的要求。

  通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

  其目的,是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。这个不需要单独去实现,可以用现成的产品去做,比如: Akamai(好些,比较贵),Verizon EdgeCast(便宜些),ChinaCach;如果是云平台基本上都提供了这个服务,不过也需要付费的,比如阿里云基于自己的CDN加速提供了不同形式的加速;比如基于P2P技术的PCDN,增强防护DDoS、CC、Web应用攻击的SCDN以及全站加速。

  传统的B/S架构都是把用户会话放到Session里面,在在线用户量不高的情况下没啥问题,但是对于现在互联网采取了分布式或者微服务架构,就很难单独去维护Session了,因为Session会分布在不同的服务器上,会话的同步会面临着很大的问题。所以一种方式是把Session的维护拿到Cookie里去做,不依赖于某台或多台服务器,同时也减少了服务器的开销。当然,也可以利用内存缓存服务器来统一存储Session信息,有的内存缓存服务器还能把内存数据持久化到磁盘来提高可用性和可恢复性,就不会有同步问题了。

  很多大型网站,进去的时候看它页面很复杂,但是加载也没有耗费多长时间,原因在于先于用户获取资源或数据库数据,进而通过静态化处理,生成静态页面。所有人都访问这一个静态页面,而静态化处理的页面本身的访问速度要较动态页面快很多倍,因此程序性能会有大大的提升。使用场景是那些经常需要访问但是数据不经常更新的时候。这种情况就是时候将动态页面静态化了,比如淘宝的宝贝信息页面,页面动态部分可以用AJAX加载进来,比如月销多少笔。

  集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下,集群计算机比单个计算机(比如工作站或超级计算机)性能价格比要高得多,大多数集群采用主从式来管理集群节点,比如Websphere Cluster。

  分布式系统是支持分布式处理的软件系统,是由通信网络互联的多处理机体系结构上执行任务的系统。简单来说,分布式处理就是多台相连的计算机各自承担同一工作任务的不同部分,在人的控制下同时运行,共同完成同一件工作任务。包括分布式操作系统、分布式程序设计语言及其编译系统、分布式文件系统、分布式数据库系统、分布式调度系统等。这常常伴随需要做负载均衡、熔断和限流等;还得考虑是全量计算还是增量计算等。

  所以随着分布式的发展,微服务架构就变得越来越流行,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持,围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单,所以业务的解耦和拆分的就变得越来越重要。

  这一层的缓存主要是对高频数据进行缓存,比如对中间计算结果进行缓存,而且是基于内存缓存居多,比如Memcached和Redis,有的还提供缓存持久化,比如Redis。在分布式计算中经常要对批量数据进行缓存预读取以提高计算速度。

  同步转异步的思路一方面不让进程或者线程阻塞在顺序执行里,从而加快程序的执行,就像Node.js用异步和Java用同步做相同计算测试,好多时候速度Node.js比Java还快,不信大家可以试试,像双11的抢购都是采用了异步机制。

  另一方面不让用户一直等在那里,用户可以继续做别的事情,等异步执行完毕通知用户。这里面大量用到了消息队列(MQ),流行的产品很多,最早的WebsphereMQ,到现在的Kafka、RabbitMQ,有些甚至和流行的开源框架紧密集成,比如RabbitMQ和SpringBoot。

  因为在大数据量并发情况下,读的操作频率远远超过写操作,所以通过读写分离来提高读的速度,其思路是让主数据库(master)处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库(slave)处理SELECT查询操作,下面是淘宝最早的时候采用的读写分离策略:

  集群就不再做过多说明,数据库集群是利用至少两台或者多台数据库服务器,构成一个虚拟单一数据库逻辑映像,像单数据库系统那样,向客户端提供透明的数据服务。其目的还是为了增加数据吞吐量,提高数据库性能,满足大数据量下对数据的读写速度要求。

  缓存无处不在,连CPU都有二级缓存,在数据访问这一层,可以根据你的数据需要充分利用缓存技术来提供读写速度,比如对要求不是特别实时的大数据进行预统计分析,然后缓存下来做报表等,这个时候直接从缓存里读取即可,提高统计速度。

  NoSQL,泛指非关系型的数据库。随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其自身的特点(高可扩展性、分布式计算、低成本、架构的灵活性、半结构化数据,没有复杂的关系)得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。其数据库类型有列存储、文档存储、Key/Value存储、对象存储和图存储等。

  比如,有一个代码表使用分区表把100万纪录分在10个分区中(ID每从1到10万为一个分区),那样写查询语句的时候,只要给出查询条件中所需要的代码,DB自动会定位到对应的分区进行查询,大大降低的查询时间。

  边界网关协议,主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由。中国网通与中国电信都具有AS号(自治系统号),全国各大网络运营商多数都是通过BGP协议与自身的AS号来互联的。

  使用此方案来实现双线路需要在CNNIC(中国互联网信息中心)申请IDC自己的IP地址段和AS号,然后通过BGP协议将此段IP地址广播到移动,网通、电信等其它的网络运营商,使用BGP协议互联后移动。网通与电信的所有骨干路由设备将会判断到IDC机房IP段的最佳路由,以保证移动、网通和电信用户的高速访问。现在不少的云平台都支持BGP。

  缓存、异步和分是互联网大数据量高并发下架构策略中用的最多的3种策略,从上面各个技术层面,分也是占据了大多数技术的核心思想,所以考虑的时候要多想想分哪里、如何分,另外很多业务场景还得想想怎么合。


打印此页】【返回
 

面对峰值响应冲击解决高并发的三大策略芯片级专修学院 版权所有