`
gemantic
  • 浏览: 338790 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在线百万用户量下的系统架构

 
阅读更多
题记
    本文是从PPT中整理而来,细节问题没有描述的太清楚,有问题可以直接与我联系,或者是以后会整理出相对比较完善的文档.


一.要解决的问题和方案的选择.
   
一般而言,我们希望达到的目标是这样的:
  
引用
一个高并发的系统
    一个稳定的系统
    一个高扩展性的架构
    一个简洁的方案


关于最后一点,从前端到后端解决并发/稳定/扩展可能有很多种方案.从机器的硬件性能到数据库的扩展设计等等都会有自己的方案,这里给出的是一个我们认为相对简洁高效的SCA方案.


二.关于Sql的使用限制

引用
绝对不允许出现跨表的查询

DB的设计更大程度上取决于缓存的设计

防止穿透缓存直接到达DB的访问

将业务逻辑放到代码中实现,不要忘了DB的主要作用毕竟是存储



DB不是用来解决并发问题的,并发靠缓存.所以针对DB的查询都应该是精简的,尽可能的可以被缓存的数据.

怎么样能保证缓存使用的最大化呢?

1.每一个查询只缓存ID.
2.根据ID取对象单独缓存.


维护缓存中的数据也是一件比较麻烦的事情.如果维护缓存的代价太大,不如直接使用失效策略.
这也要看具体的业务场景.




三.服务

这里介绍的是使用Apache Tuscany提供的SCA的解决方案.简单的来说.我们是将一个个复杂的系统拆解成可以独立布署的服务,每一个服务提供的功能都是可以做平滑的扩展的.

有关服务的一些要点如下:

引用
没有业务逻辑的基础服务

包含业务逻辑的复杂服务

独立折分和部署

数据读写部分只交给服务处理

尽量减少服务之间的相互依赖

Controll负责服务之间的调度




这样从前到后分别是:WEB层,Service层,DB层.
WEB层是Controll层,负责解析用户的请求,调用不同的Service,并返回结果给用户.WEB层可以通过布署多台WEB来实现.
Service层负责处理业务逻辑和对数据操作的封装,Service是有多个的,不同的业务划分为不同的Service,同一种类型的Service依照负载情况可以布署多台.
DB层负责数据的持久化,大数据量使用分库.




四.工具


引用
尽可能多的做设计

尽可能少的写实现

尽可能多的测试

尽可能多的分析



用到的开源软件列表:
1.Mysql 数据库
2.DAL是对数据读写的封装,包括对于缓存的处理.
3.Tuscany 实现SCA的功能.
4.Scallop.对Tuscany的扩展,实现Tuscany的负载均衡.
5.Memcache 缓存.
6.Qpid JMS系统
7.DemoCode 代码生成工具




 





  
   


分享到:
评论

相关推荐

    百万用户级游戏服务器架构设计.doc

    ### 百万用户级游戏服务器架构设计 #### 一、引言 随着互联网技术的不断发展,网络游戏已经成为人们娱乐生活中不可或缺的一部分。为了满足数以百万计的用户同时在线的需求,游戏服务器的设计面临着前所未有的挑战...

    百万用户同时在线游戏服务器架构实现

    事实上100万游戏服务器,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高效率的编程语言、高性能的数据库、还有高性能的架构模型。但是除了这几个方面,还没法根本...

    百万用户级游戏服务器架构设计

    百万用户级游戏服务器架构设计是游戏开发领域内一个至关重要的话题,尤其在当下移动互联网用户基数迅速增长的背景下,如何构建一个稳定、高效的游戏服务器架构,以支撑起大规模在线游戏的运行,成为了技术开发者和...

    [转]百万用户级游戏服务器架构设计

    - **重要性**: 良好的结构有助于提高系统的可扩展性和可维护性,对于支撑大规模用户量尤为关键。 #### 二、基础结构模型 - **最简单的模型**: 客户端直接连接服务器(client-server)。 - 客户端发起连接请求。 -...

    最新百万用户级游戏服务器架构设计.docx

    随着游戏用户量的增长,登录服务器可能会遇到负载问题,尤其是在新开服时。为了解决这一问题,可以通过实现登录服务器的负载均衡来优化服务器架构。 ##### 5.1 动态调整登录服务器 登录服务器的设计应当能够根据...

    软考系统架构设计师-论云原生架构及其应用范文

    软考系统架构设计师-论云原生架构及其应用范文 云原生架构是指基于微服务和容器技术的架构设计原则,它有四类设计原则:服务化、强韧性、可观测性和自动化。云原生架构可以将应用分解为多个服务,每个服务可以选择...

    亿级访问量下的新浪微博系统架构.doc

    【亿级访问量下的新浪微博系统架构】 新浪微博作为一个拥有亿级活跃用户的社交平台,其背后的技术架构需要具备高可用性、高并发处理能力和低延迟特性,以应对庞大的用户基数和业务需求。从最初的LAMP架构(Linux + ...

    最新“系统架构设计师”论文范文——论微服务架构及其应用.docx

    【系统架构设计师】论文主要探讨了微服务架构在构建一站式互联网大数据征信平台中的应用,文章首先介绍了背景,指出传统单体架构在面对快速变化的需求和大规模用户量时的不足,以此作为采用微服务架构的理由。...

    系统架构师设计教程-杨春晖-计算机技术与软件技术资格考试指定书

    7. 可扩展性与弹性:讲解如何设计可横向扩展的架构,以应对未来用户量的增长或业务需求的变化。 8. 微服务架构:深入研究微服务的优缺点,以及如何设计和实现微服务间的通信。 9. 技术选型:如何根据项目需求选择...

    系统架构:复杂系统的产品设计与开发PPT.zip

    《系统架构:复杂系统的产品设计与开发》是2016年出版的一本关于系统架构设计的重要著作。这本书深入探讨了在构建大型、复杂系统时所面临的挑战和解决方案,为IT行业的专业人士提供了宝贵的指导。其PPT形式的资料集...

    2019年软考系统架构设计师学习笔记.pdf

    【系统架构设计师】是IT行业中一个关键的角色,其主要职责在于理解和管理非功能性系统需求,制定开发规范,设计系统的整体架构,以及明确关键技术细节。系统架构师不仅关注技术实现,还需协调团队工作,确保功能需求...

    系统架构设计师考试全程指导(已添加导航).zip

    《系统架构设计师考试全程指导》是一本专门为准备参加高级软考——系统架构师考试的考生量身定制的参考资料。该书全面覆盖了考试所需的各项知识领域,旨在帮助考生深入理解和掌握系统架构设计的核心概念、原则和实践...

    软考系统架构师案例分析知识点汇总

    ### 软考系统架构师案例分析知识点汇总 #### 一、软件架构风格概述 **软件架构风格**是描述某一类特定应用领域中软件系统组织方式和惯用方式的重要概念。它不仅涉及到软件系统的组成部分(即构件),还涉及到这些...

    微博.亿级用户下的新浪微博平台架构_2014

    这一系统通过多级缓存架构来应对用户的访问请求,确保内容能够快速被用户获取。 微博的技术架构持续演化,以便应对业务的快速发展和用户需求的不断变化。微博从2009-2010年的基础架构起步,逐步演进到更为复杂和可...

    支付体系架构与实践.pdf

    随着业务规模的扩大和交易量的激增,支付系统面临着严峻的挑战,这就要求我们不仅要对支付体系架构进行深入的研究,还要不断总结实践经验,以应对新的挑战。 在支付系统的发展历程中,我们可以看到一个从简单到复杂...

    系统架构设计-如何设计架构

    2. **租借系统**:尽管用户数量相对有限,但复杂的业务逻辑要求清晰的分层。WIMP界面提供直观的用户交互,而业务逻辑层则处理复杂的租赁规则和流程。可能还需要引入额外的中介层来协调各层之间的通信,确保系统的...

    嵌入式系统架构发展与选择

    在当今快速发展的科技背景下,嵌入式系统架构经历了从封闭到开放、从定制到标准化、从低速并行到高速串行的发展过程。系统设计的多样性与统一性、系统设计模式和系统扩展模式是设计嵌入式系统架构时需要考虑的关键...

Global site tag (gtag.js) - Google Analytics