`
gemantic
  • 浏览: 335798 次
  • 性别: 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 代码生成工具




 





  
   


分享到:
评论

相关推荐

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

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

    云计算体系架构.pdf

    云计算体系架构 云计算与虚拟技术 应用接口层(SaaS) 基础管理层(IaaS) 存储层 访问层 云计算的核心架构 服务层次 公有云 (通过Internet提 供公共服务) 混合云 (通过Internet和 Intranet提供公共 和私有服务)...

    用vue与springcloud微服务架构开发的在线考试系统

    项目简介:在线考试系统,采用vue与springcloud微服务架构开发,前后端完全分离,json格式数据交互,全部由本人独立开发完成。目前项目已部署在本人的学生版阿里云centos7服务器上。 ​主要功能有:对班级和科目的...

    基于Android+JAVAEE架构的校园信息交互系统

    统架构可同时满足客户端的用户体验与系统的复杂信息处理功能,是移动互联应 用的一种较完善的开发模式。 本文针对一个基于Android+JAVAEE架构的校园信息交互系统的设计与开 发工作进行论述与说明。首先,简单的介绍...

    通用项目微服务架构图高清版

    微服务架构根据目前产品存在的问题,针对快速开发、海量用户、大量数据、低延迟等互联网应用的实际需要,通过对业务架构、系统架构、基础架构、技术架构进行设计,彻底解决系统解耦、性能低下等问题,而且支持云计算...

    大型分布式网站架构设计与实践.带目录书签.完整版.rar

    第1章 面向服务的体系架构(SOA) 1 1.1 基于TCP协议的RPC 3 1.1.1 RPC名词解释 3 1.1.2 对象的序列化 4 1.1.3 基于TCP协议实现RPC 6 1.2 基于HTTP协议的RPC 9 1.2.1 HTTP协议栈 9 1.2.2 HTTP请求与响应 15 ...

    如何在微服务架构下构建高效的运维管理平台?

    本文内容有三点:1、微服务架构特点及其传统巨石架构的差异,以及传统运维工具面临的挑战;...多:互联网用户量巨大,达百万级在线量;快:服务请求反应速度要在一秒以内甚至更快;好:服务质量稳定性

    AMX三层架构(MVC)家庭财务管理系统源码

    典型的MVC三层架构编写,代码层次清晰,是学习三层架构以及工厂模式,反射的轻量级DEMO学习实例。 主要功能包含: 1、财务项目管理、家庭成员管理、收支明细管理、登陆用户管理、修改用户密码、 切换登陆账户。 2、...

    在线考试系统,架构:springboot+vue+mysql

    在线考试系统是一种常见的...在线考试系统需要展示考生信息、考试信息、试卷信息、成绩信息和系统设置等功能,因此前端界面需要具有良好的用户体验。我们可以采用 Vue.js 作为前端框架,结合 Bootstrap 和 Font Aweso

    基于大数据的数据分析系统架构.doc

    一、基于大数据的应用系统架构 在Hadoop体系的分布式应用中,基于大数据的数据分析应用架构已经和大数据 信息架构互相结合,为各个行业领域在大数据的应用中带来了许多经济价值和数据信息 资产,Hadoop体系采用...

    信息架构 超越Web设计(第4版).pdf

    自顶向下的信息架构 68 自底向上的信息架构 70 不可见的信息架构 73 信息架构组件 74 浏览帮手 75 搜索帮手 76 内容和任务 77 “不可见的” 组件 78 本章回顾 78 第6章组织系统 79 组织信息的挑战 80 模糊性 81 异质...

    Java架构师简历模板(P6、P7)

    近9年Java开发经验,其中3年以上大型系统架构设计经验,以及2年以上的团队管理经验,具有分布式、高并发、高可用、大数据量的系统架构设计以及研发经验,目前正负责注册用户三千万,日活三百多万,日访问量1亿+,...

    资源管理系统架构设计及开发-L1(入库).xlsx

    资源管理系统架构设计及开发-L1(入库 2051018 单选 以下哪个表空间不能设置为OFFLINE? 2051019 多选 资管系统基础功能批量导入数据,系统会对数据进行校验,校验内容是()。 2051020 多选 资管系统承载的家客驻地...

    电商商城项目最初架构分析

    互联网架构解析 互联网世界一直是追求极致的用户体验,不仅要求有美观大气的页面效果,还需要有操作流 ...当一个 web 系统从日访问量 10 万逐步增长到 1000 万,甚至超过 1 亿的时候,web 系统承 受的压力

    信息架构:超越Web设计(第4版)(全彩).[美]Louis Rosenfeld(带详细书签) PDF 下载 高清 完整版

    自顶向下的信息架构 68 自底向上的信息架构 70 不可见的信息架构 73 信息架构组件 74 浏览帮手 75 搜索帮手 76 内容和任务 77 “不可见的”组件 78 本章回顾 78 第6章 组织系统 79 组织信息的挑战 80 ...

    从无到有搭建中小型互联网公司后台服务架构与运维架构

    系统的吞吐量,指系统在某一时间可以处理的数据总量,通常可以用系统每秒处理的总的数据量来衡量;系统的并发能力,指系统可以同时完成某一功能的能力,通常也用QPS(query per second)来衡量。 3、 高可用:系统的...

    基于docker容器的高并发web系统架构设计与实现.caj

    《基于docker容器的高并发web系统架构设计与实现》随着互联网迅速发展,社交、媒体以及电商等web网站用户数量 越来越大,并发流量也越来越高,这对于传统web系统架构设计提出 新的挑战。本文基于...

    物业管理系统 架构:springboot+vue+mysql

    物业管理系统需要展示住户管理、服务管理、报修管理、公告管理和系统设置等功能,因此前端界面需要具有良好的用户体验。我们可以采用 Vue.js 作为前端框架,结合 Bootstrap 和 Font Awesome 等 UI 组件来设计界面,...

    进销存管理系统,系统架构:springboot+mysql+mybatis+VUE

    进销存管理系统需要展示采购、销售和库存等功能,因此前端界面需要具有良好的用户体验。我们可以采用 Vue.js 作为前端框架,结合 Bootstrap 和 Font Awesome 等 UI 组件来设计界面,使得界面更加

Global site tag (gtag.js) - Google Analytics