`

《后端技术架构设计与优化》讲座笔记

阅读更多

时间:2013-08-31

地点:北京京仪大酒店

主题:后端技术架构设计与优化

备注:第19期阿里技术沙龙

链接:http://club.alibabatech.org/salon_detail.htm?salonId=39

(一)《天猫后端技术架构优化实践》(关键词:优化)

1、优化概述:

  1)明确优化的度量指标:QPSRT(Response Time)

2、缓存条件:

  1)读比写多得多;

  2)查询条件足够简单,不能在查询上就耗费太多时间;

  3)本地缓存失效问题:服务器主动推送新的缓存到前端的本地缓存,一个一个地更新。

3、常用策略:

  1)动静分离:业务逻辑上和服务器都进行分离;

  2)模型松耦合---大缓存:查询和缓存时进行打包(把相关的内容一起缓存,就不用进行二次查询了);

  3)并发:降低RT

  4)异步:降低上下文切换开销;

  5timeout:控制服务,防止主站被某个服务拖挂掉;

       流控:前端对流量进行控制。

  6)客户端容灾:非核心业务不能影响核心业务;即使核心业务没出来,客户端也不能影响用户的基本浏览需求。

4、问题及讨论:如何为双十一作准备,如何提升系统的抗压能力?

双十一前会梳理系统业务的核心链路,评估各个节点。

分层控制:

1Web层:超过阈值的流量直接由Nginx拦掉;

2)业务代码层:限流控制;

3)服务中间件:timeout、流控等。

 

(二) 《人人网网站架构变迁》(关键词:服务化)

1、业务特点:异构、分散、易变动、相关联;

2、移动客户端:

  1)尽量保持一个socket

  2)网络通信很烂的情况下如何保持数据/业务的一致性(有可能数据在传输过程中网络突然断掉):类似svn的版本控制,采用数字进行标识。

3、问题及讨论:

1)单个socket如何提供多个服务?

 thrift原生支持(协议层支持),协议头中用ID进行服务标识,而不用端口进行标识(共用一个端口)。

2thrift相关讨论

A、在生产环境下进行测试,thrift的对象封装与解封装、压缩与解压缩,甚至比Java原生的序列化更快;

Bthrift由于是跨语言的,所以在人人网的框架中增加对异常的处理(有的语言如C/C++对异常支持不友好),异常一般情况下都返回NULL对象;

CICEthrift并无高下之分,选择由ICEthrift迁移,是因为thrift足够简单,而ICE功能太强(如集群管理等)、太重了,有些功能也用不到。节点管理等运维方面比较困难,而且在上面增加功能和进行改进比较困难。目前人人网仍有1/3的服务在使用ICE

 

(三)《新浪微博稳定性经验》(关键词:稳定)

1Design for Failure

(1)分层隔离

A、主要接入方隔离。如weibo.comweibo.cnapi.weibo.com,从DNS上隔离;

B、业务逻辑隔离。不同的业务方拆分;

C、按功能的核心度隔离。核心功能使用一个线程池,非核心功能使用一个线程池;

2SLA保证

3、容灾预案

   1)降级(降级有问题的资源、保护核心功能)。非核心功能有不同的等级,降级之后,在超时时间、控制策略上都对应着发生改变。

   2)在线容灾演练---TouchStone系统。采用tcpcopy将线上流量拷贝过去.进行分析。

分享到:
评论

相关推荐

    国外技术干货:eBay Architecture(Tony Ng) 2011- Tony NG.zip

    《eBay架构解析》是由Tony Ng在2011年分享的技术干货,主要探讨了eBay这个全球知名电子商务平台的架构设计与实现。这个压缩包包含了一本PDF文档,可能是讲座笔记或者报告,以及一个名为"UhR8x728IOQQHzmP8fTct0QzaBN...

    阅读笔记:阅读笔记

    阅读笔记是学习过程中的重要工具,它可以帮助我们记录和整理从书籍、课程或讲座中获取的知识。在这个“阅读笔记”项目中,我们可以看到三个不同层次的软件开发学习资源,分别是针对初学者的基础知识,中级开发者的...

    BITS-Compre:笔记、试卷和讲座幻灯片的在线学术知识库

    BITS-Compre 是一个专为一年级和二年级学生设计的在线学术知识库,它整合了笔记、试卷和讲座幻灯片等教育资源,旨在提供便捷的学习资料获取途径。这个项目使用了 JavaScript 这一广泛应用于前端开发的编程语言,使得...

    学习活动专题网站建站系统源码 v2023.9.zip

    此外,可能会涵盖系统的架构设计,例如前端和后端技术栈的选择,以及可能采用的框架和库。 使用手册则是一个详细的指导文档,帮助用户了解如何操作和管理该系统。这可能包括创建和管理学习活动、用户管理(注册、...

    python108大学生就业信息管理系统(django).zip

    61. 技术培训:技术培训是指通过课程、讲座、在线教程等方式帮助个人掌握特定技术的过程。技术培训对于职业发展和技能提升非常重要,它可以帮助个人适应技术变革。 62. 职业咨询:职业咨询是为个人提供职业规划、...

    ASP基于WEB在线教育系统(源代码+论文模板+任务书).7z

    论文模板可能提供了关于系统设计、实现和测试的详细描述,包括系统架构、技术选型、功能实现以及性能优化等方面。这对于理解系统的整体设计和开发过程非常有用,同时也为其他开发者提供了参考。 任务书则可能列出了...

    Lecture__NeuralNets_DL:机器学习Dojo讲座4

    在本讲座"机器学习Dojo讲座4"中,我们将深入探讨神经网络与深度学习(DL)的概念,这是人工智能领域中的核心部分。这个课程是为那些已经熟悉基础编程和机器学习概念,想要进一步提升自己在神经网络和深度学习技能的...

    基于互联网技术的实验编程(20181206更新).pptx

    本讲座主要涵盖了利用互联网技术进行心理学实验编程的相关知识,包括对在线调查系统Qualtrics的使用以及网络基础和Web编程的介绍。首先,我们回顾了Qualtrics在线调查系统的主要功能,如确定调查主题、设计流程、...

    campus-version-of-facebook:Facebook精简版

    - 后端技术:可能基于Node.js、Java或Python等后端语言搭建服务器,处理数据请求。 - 数据库:MySQL或NoSQL数据库如MongoDB用于存储用户信息和社交数据。 - 移动端适配:考虑iOS和Android平台,开发原生应用或...

    OSDT-Slides:OSDT社区(HelloGCC、HelloLLVM)组织的活动中的报告

    这些幻灯片可能涵盖了与GCC和LLVM相关的技术讲座、实践经验分享以及项目的最新进展。活动参与者可能是开发者、学生或对编译器技术感兴趣的其他人员,他们通过这样的交流活动增进对GCC和LLVM的理解,提升技术水平。 ...

Global site tag (gtag.js) - Google Analytics