`
lcycenter
  • 浏览: 35935 次
  • 来自: ...
社区版块
存档分类
最新评论

"构建可扩展微博架构"PPT学习笔记

 
阅读更多

1. 业务

  • 核心模型:用户、关系、Feed
  • 把微博比作邮件:Inbox、Outbox
  • 主要业务功能:发布、查看

2. 技术架构

  • 微薄本质:消息分发系统
  • 信息聚合设计模式:PULL、PUSH
    • PUSH:简单,是实现的首选;分发量大;冗余存储大
    • PULL:节约存储;计算量大

3. 架构挑战

1)除夕、春节时的系统峰值处理

解决方案:异步设计

-不同步等待

-将消息存入MQ:大量使用Memcacheq,提到使用MQ的原则“计算开销大于消息分发开销”(不太理解)

-轻量级的发表

 

2)实时性

解决方案:Cache中心化,Ram is the new the disk

-多层次的Cache:Local Cache;Memcached;Database buffer/cache

-容量问题(TB级):压缩(QuickLZ、LZO、不使用gzip)

-单点问题:Consistent hash;Read-through cache

-避免evictions:容量规划;区分永久数据、临时数据;不使用随机字符做为KEY

-multiget hole问题:Memcached replication  

 

如何实现Read-through and write-througe cache:

-产品或者项目:MySQL memcached UDF;Cache money for Ruby on Rails

-wrap a proxy for the db driver

 

3)海量存储

 

4)国内网络带宽

-存在问题:访问速度、IDC不可用、故障

-分布的核心是数据分布(http://timyang.net/data/multi-idc-design/

 

5)API访问量

-使用REST API

-使用SAE解决轮询压力

 

 

 

 

分享到:
评论

相关推荐

    struts中文文档及学习笔记

    它基于Model-View-Controller(MVC)架构模式,旨在简化开发过程,提高代码的可维护性和可扩展性。Struts 1是早期版本,而Struts 2是其后续升级版,引入了更多现代Web开发特性。 在“struts中文文档及学习笔记”中...

    韦东山老师ppt

    2. 架构设计原则:将阐述设计系统或应用时需要遵循的基本原则,如模块化、可扩展性、易维护性等。 3. 主要组件和它们的关系:会详细解释系统中的各个组成部分,以及它们如何相互协作,形成一个完整的工作流程。 4....

    SpringBoot+Vue在线教育系统答辩PPT.pptx

    这样的技术选型确保了系统的可扩展性和稳定性。 **系统功能结构设计** - **用户管理**:系统管理员可以对用户信息进行增删改查操作,以实现用户管理的规范化。 - **课程信息管理**:管理员可以查看并进行课程信息的...

    编译原理实用PPT课件PPT课件PPT学习教案.pptx

    6. **编译器开发**:学习如何开发编译器,包括编译程序的架构、错误处理、代码生成策略等,这能够让学生具备实战能力,独立完成编译器的部分或全部功能。 7. **应用扩展**:编译原理的知识不仅限于编译器的构建,还...

    UC编程知识点总结,包括PPT代码笔记

    - **Component系统**:Actor可以包含多个Component,这种设计允许组件化地构建游戏对象,便于复用和扩展。 - **蓝prints**:一种可视化编程工具,为非程序员提供了创建游戏逻辑的途径,同时也可用于与C++代码交互...

    关于软件项目实施PPT

    设计阶段要考虑到系统的可扩展性、可维护性和性能要求。 4. **编码与开发**:程序员根据设计文档编写代码,实现系统的各个功能模块。这个阶段通常使用版本控制工具如Git进行代码管理,以确保代码的质量和一致性。 ...

    java,jsp,jdbc自学所用笔记和ppt

    本资源包包含了用于自学这些技术的笔记和PPT,对于初学者和进阶者都是宝贵的参考资料。 1. **Java**: Java是一种面向对象的编程语言,以其“一次编写,到处运行”的特性闻名。它具有丰富的类库,适用于各种应用领域...

    尚硅谷SpringMVC源码及PPT

    SpringMVC是Spring框架的一个模块,用于构建Web应用程序。它是一个模型-视图-控制器(MVC)架构,提供了一种解耦的方式,使开发者能够...通过理论与实践相结合,你可以更好地运用SpringMVC构建高效、可维护的Web应用。

    方立勋JavaWeb视频教程配套ppt下载

    通过这些组件,开发者可以构建出高效、可扩展的Web应用程序。 【方立勋JavaWeb视频教程】 方立勋是一位知名的JavaWeb讲师,他的视频教程深入浅出地讲解了JavaWeb的基础到进阶知识。该教程可能涵盖以下几个主要部分...

    尚硅谷springboot课件笔记文档

    同时,对于SpringBoot的微服务架构支持,也有助于开发者进入微服务领域,理解如何构建可扩展、高可用的应用系统。 在实际开发中,SpringBoot的易用性和高效性使其成为许多企业和项目的首选。开发者可以通过这份资料...

    SpringCloud学习-黑马1

    微服务强调每个服务的独立性,通过服务间松耦合的RESTful通信,实现高度可扩展和灵活的系统设计。这种架构允许使用不同的技术栈开发不同的服务,每个服务都可以独立部署和扩展,提高了系统的弹性和可维护性。然而,...

    基于j2ee开发的web笔记

    这本笔记旨在为初学者提供一个清晰的路径,了解如何利用J2EE技术构建高效、可扩展的Web应用程序。J2EE是一个标准的框架,包含了各种服务、接口和API,用于开发分布式多层应用,特别是Web应用。 【描述】:“在培训...

    javaee笔记

    8. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它整合了众多优秀框架,如Interceptor拦截器机制,提高了代码的可维护性和可扩展性。 9. **Spring**:Spring是JavaEE应用的核心框架,提供依赖注入...

    Mobile IP通讯协议架构

    Mobile IP(移动互联网协议)是一种网络通信协议,用于在移动设备改变其连接的网络...通过这些文件,开发者可以深入理解Mobile IP的架构、原理和实现细节,这对于构建能够支持移动设备在网络间无缝漫游的系统至关重要。

    Celery课件笔记

    通过深入学习 Celery,开发者可以构建出健壮、可扩展的分布式任务处理系统。Celery 的灵活性和强大的功能使其成为 Python 开发者的首选工具之一,尤其在处理异步任务和高并发场景时。在实际项目中,结合合适的 ...

    Unix 脚本编程总结与应用实例及其他内部资料

    最后,"负载均衡器培训胶片V2.0.ppt"可能涉及网络服务的负载均衡技术,这对于构建高可用性和可扩展性的服务器架构至关重要。 通过学习这些资料,你可以深入理解Unix脚本编程,提升系统管理和自动化能力,同时也能...

    java EE入门基础资料

    Struts2学习笔记.docx和Struts2-Introduction.pdf将介绍Struts2的基本架构、Action、结果类型、拦截器、配置文件等关键概念。Struts2笔记.ppt则可能是对Struts2框架的实践总结,包括常见问题和解决方案。 总的来说...

    ice.rar_ICE_ICE 开发_ICE CORBA_corba_ice接口

    使用ICE,开发者可以快速构建可扩展、高可用性的分布式系统,同时享受到其提供的强大调试工具和完善的API文档,从而提高开发效率。 总结来说,ICE是一种强大的分布式计算框架,具有与CORBA类似的接口规范,但更易于...

    PHP YII框架教程+笔记.zip

    它遵循模型-视图-控制器(MVC)架构模式,旨在提高开发速度并提供可扩展性。在本教程中,我们将深入探讨Yii框架的核心概念和特性。 首先,让我们从框架的基础开始。Yii提供了丰富的功能,包括缓存管理、数据库抽象...

    usbcaliarqsoftenvia:软件架构课程实践研讨会

    在这个研讨会中,参与者可能学习如何设计可扩展、可维护和高效能的软件架构,这是任何软件开发项目的基础。 JavaScript,作为Web开发的主流语言,其在软件架构中的角色至关重要。研讨会可能会涵盖以下几个...

Global site tag (gtag.js) - Google Analytics