说说如何实现可扩展性的大型网站架构

大型网站架构核心要素之扩展性:可扩展架构 前言 续上节大型网站架构核心要素性能之后,我们今天要讲的是第四个要素:扩展性,什么叫扩展性呢?简单的说就是在对现有系统影响最小的情况下,系统功能可持续扩展及提升的能力,讲扩展性之前,我先讲下扩展性和伸缩性的区别,因为这两个点经常有人会混淆; 扩展性:指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力,表现在系统基础设施稳定,不需要经常变更,应用之间较少依赖和耦合,对需求变更可以快速敏捷响应。它是系统设计层面的开闭原则(对扩展开放,对修改关闭),架构设计考虑未来功能扩展,当系统增加新功能时,不需 阅读详情

网站的可扩展性架构设计,能够在对现有系统影响最小的情况下,系统功能可以可持续扩展及提升的能力。

在此,对容易混为一谈的 “扩展性” 和 “伸缩性” 的概念进行详细说明:

扩展性

表现为:基础设施不需要经常变更,应用之间较少依赖或耦合,可以对需求变更快速响应。它对扩展开放,对修改关闭。架构设计会考虑到未来功能的可扩展性,所以当系统增加新功能时,不需要对现有系统的结构和代码进行修改。

伸缩性

是指系统通过增加(或减少)自身资源规模的方式增强(或减少)处理业务的能力。如果这种增减是成比例的,就可以称之为线性伸缩性。通常是利用集群的方式增加服务器的数量,以提高系统整体业务吞吐能力。

1 构建可扩展的网站架构

度量一个开发框架、设计模式或编程语言优劣的一个重要尺度就是它是否能够让软件开发过程和软件产品更加低耦合。

因为低耦合的系统更容易扩展,也更容易被复用,而且也会让开发过程和维护变得更加容易。但如何分解系统的各个模块、如何定义各个模块的接口、如何复用、组合不同模块构造一个完整的系统,这是软件设计中最具挑战性的部分。

软件架构师的最大价值,就在于把一个大系统分解为 N 个低耦合的子模块的能力,这些子模块包含横向的业务模块与纵向的基础技术模块。这种能力来源于专业技术能力与经验、业务场景的理解、对人性的把握以及对世界的认知。

构建可扩展的网站架构的核心思想是模块化,并在此基础上,降低模块之间的耦合性,提高模块的复用性。

可以利用分层与分割的方式,把软件分割为若干个低耦合、独立的组件模块,然后在这些组件模块之间以消息传递或依赖调用的方式聚合成一个完整的系统。

这些模块可以通过分布式部署的方式,部署在独立的服务器上。这种从物理上分离模块之间的耦合关系,可以进一步降低耦合性。

模块的分布式部署后的聚合方式有:

  • 分布式消息队列。
  • 分布式服务。

1 使用分布式消息队列降低耦合性

如果模块之间不存在直接调用关系,那么新增或修改模块对其他部分的影响最小,这样的扩展性自然更好。

1.1 事件驱动架构

事件驱动架构指的是:在低耦合的模块之间传输事件消息,保持模块之间的松散耦合,通过事件消息来完成模块之间的通信。 事件驱动架构最常见的实现方式就是使用分布式消息队列。

基于消息队列的事件驱动架构

消息队列基于发布——订阅模式工作,消息发送者发布消息,一个或多个消息接收者订阅消息。消息发送者把消息发送至分布式消息队列后就处理完毕,然后由消息订阅者从消息队列中获取消息进行处理。对于新增的业务,只要对某个消息感兴趣,就可以订阅该消息,而这对原有的系统和业务没有任何影响,从而实现系统的可扩展性设计。

消息接收者还可以对收到的消息再构造,定义出一个新的消息类型,然后再把消息发送给订阅了这一新消息类型的接收者。所以基于消息对象的事件驱动架构可以是一系列的流程。

因为消息发送者无须等待就可以返回,所以系统具有更好的响应时间;而且在访问高峰,消息可以暂存于消息队列中,从而减轻了数据库的存储负载压力。

1.2 分布式消息队列

队列是一种先进先出的数据结构,我们可以把消息队列部署到独立的服务器中。应用通过远程访问接口使用消息队列,进行消息的存取操作,从而实现分布式的异步调用:

分布式消息队列原理

目前较为流行的分布式消息队列是 Apache ActiveMQ。

因为消息队列服务器上的数据可以看做是即时处理的,所以在伸缩性上,我们把新服务器加入分布式消息队列集群后,只需要通知生产者服务器更改消息队列的服务器列表就好啦O(∩_∩)O~

在可用性上,如果内存队列满了,要将消息写入磁盘,这样当消息推送模块把内存队列中的消息处理完毕后,就会把磁盘中的消息加载到队列中继续处理。

为了避免消息队列服务器宕机造成消息丢失,会把消息存储在消息的生产者服务器上,这样等消息确实被消息消费者服务器处理后才会删除。如果消息队列服务器宕机,生产者服务器会选择分布式消息队列服务器集群内的其他服务器发布消息。

分布式消息队列可以很复杂,比如支持 ESB(企业服务总线)和 SOA(面向服务的架构)等。也可以很简单,比如使用 MySQL 作为分布式消息队列:消息的生产者把消息作为记录写入数据库,消费者查询数据库(按记录写入库表的时间戳排序),这就是一个分布式消息队列啦。再配上成熟的 MySQL 运维手段,也可以达到一个较高的可用性和性能指标哦O(∩_∩)O~

2 使用分布式服务构建可复用的业务平台

分布式服务可以通过接口降低系统的耦合性,不同的子系统之间通过相同的接口描述调用服务。

随着网站功能的日益复杂,系统会逐渐发展成为一个巨无霸,里面聚合了大量的应用和服务组件,这样的一个系统会给开发、维护、部署带来巨大的麻烦:

  • 编译、部署困难。
  • 代码分支管理困难:复用的代码模块由多个团队共同维护修改,所以在代码合并时总会发生冲突。
  • 耗尽数据库连接:假设一个应用设定了 10 个数据库连接,那么一个拥有数百台服务器集群的应用就会在数据库上创建数千个连接。
  • 新增业务困难。在这样一个剪不断、理还乱的系统中新增业务?开玩笑吧O(∩_∩)O~

所以我们要做拆分,把模块独立部署,降低系统的耦合性:

  • 纵向拆分 - 把一个大应用拆分为多个小应用。如果新增的业务较为独立,就直接将其设计并部署为一个独立的 Web 应用。
  • 横向拆分 - 把复用的业务拆分出来,独立部署为分布式服务,新增的业务只需要调用这些分布式的服务,就可以快速搭建出一个应用系统。即使模块内的业务逻辑发生变化,只要保持接口一致,就不会影响其他模块。

分布式服务架构

纵向拆分较简单,通过梳理业务,把关联较少的业务剥离,使其成为独立的 Web 应用。而横向拆分不仅需要识别出可复用的业务、设计服务接口以及规范服务之间的依赖关系,而且还需要一个完善的分布式服务管理框架。

2.1 Web Service 分布式服务

Web Service 曾经是企业应用系统在开发领域中最时髦的词汇之一,它用于整合异构系统以及构建分布式系统:

Web Service 原理

服务提供者通过 WSDL(Web Services Description Language,Web 服务描述语言)向注册中心(Service Broker)描述自身所能提供的服务接口内容,然后注册中心使用 UDDI(Universal Description, Discovery, and Integration,统一描述、发现和集成)发布服务提供者提供的服务。服务请求者从注册中心检索到服务后,通过 SOAP(Simple Object Access Protocol ,简单对象访问协议)与服务提供者通信,使用该服务。

Web Service 虽然有成熟的技术规范和实现,但有如下缺点:

  1. 臃肿的注册、发现机制。
  2. 低效的 XML 序列化手段。
  3. 开销较高的 HTTP 远程通信。
  4. 复杂的部署与维护手段。

这些问题导致 Web Service 难以满足大型网站对高性能、高可用、易部署与易维护的要求。

2.2 大型网站分布式服务的要求

分布式服务框架需要能够支持以下特性:

  • 负载均衡 - 对于服务请求者能够使用可配置的负载均衡算法来访问热门服务(比如登录或商品服务,这些服务被部署在一个集群上)。
    *失效转移 - 可复用的服务被多个应用调用,一旦服务不可用,就会影响到很多应用的可用性。所以即使是很少访问的服务,也需要集群部署。分布式服务框架检测到某个服务不可用时,就会切换到其他服务实例上,保证整体高可用。
  • 高效的远程通信
  • 整合异构系统
  • 对应用最小侵入 - 分布式服务框架支持服务(服务模块需要即支持集中式部署,也支持分布式部署)的渐进式演化和反复。
  • 版本管理 - 网站服务不可中断,所以分布式服务框架需要支持服务的多版本发布,服务提供者升级发布接口新版本的同时,还会继续支持旧版本的服务,直到请求者调用的接口升级后,才会关闭旧版本的服务。
  • 实时监控 - 监控服务提供者和调用者的各项指标,提供运维与运营的支持。

2.3 分布式服务框架设计

大型网站需要更简单、更高效的分布式服务框架构建其 SOA(Service Oriented Architecture ,面向服务的体系结构)。目前国内有较多成功实施案例的开源分布式服务框架是阿里巴巴的 Dubbo。

Dubbo 架构

服务消费者通过接口使用服务,接口通过代理加载具体服务,可以是本地的代码,也可以是远程的服务,因此对应用侵入较小。

客户端模块通过服务注册中心加载服务提供者列表(服务提供者启动后自动向服务注册中心注册自己可以提供的服务接口列表),然后根据配置的负载均衡策略把服务调用请求发送到某台服务提供者的服务器。如果服务调用失败,客户端模块会自动从服务提供者列表中选择一个可以提供同样服务的服务器重新请求,即自动失效转移,保证服务的高可用。

Dubbo 使用 NIO 通信框架,因此具有较高的网络通信性能。

4 可扩展的数据结构

使用 NoSQL 数据库(如 Cassandra)的 ColumnFamily (列族)技术可以做到可扩展的数据结构设计。它是一种面向列族的稀疏矩阵的存储格式。

只需要指定 ColumnFamily 的名字,即可创建表。字段可以在写入数据时再指定,通过这种方式,一张表可以包含数百万个字段。这就使得应用的数据结构可以随意扩展。只需要指定任意字段名称和值即可查询。

5 利用开放平台建立生态圈

用户只有得到他们想要价值,才会愿意使用网站的服务,这样的网站才有存在的意义。但一个网站毕竟不能满足所有用户的需求。

用户不会为网站提供的价值买单,所以网站必须提供更多的增值服务才能赚钱。根据长尾效应,增值服务的数量越大,种类越多,盈利也就越多。但一个网站能够自己开发的增值服务也是有限的。

大型网站为了更好地服务用户、为他们开发出更多的增值服务,会把网站内部的服务封装成接口开放出去,供外部第三方开发者使用,这个平台就叫做开放平台。第三方开发者利用这些开放的接口就可以开发应用程序(如 APP)或网站,为用户提供更多的价值。网站、用户、第三方开发者
相互依赖,形成一个生态圈。

开放平台是网站内部和外部交互的接口。外部会面对众多的第三方开发者,内部面对的是网站内众多的业务服务。下面是开放平台的架构:

开放平台的架构

  • API 接口:暴露给开发者的一组 API,可以是 RESTful、WebService、RPC 等形式。
  • 协议转换:把各种 API 的输入转换为内部服务可识别的形式,并把内部服务的返回信息封装为 API 格式。
  • 安全:除了身份识别、权限控制等手段之外,还要对访问带宽进行分级限制,保证平台资源被第三方应用合理公平地使用,也能保证网站自身的内部服务不会被外部应用拖垮。
  • 审计:监控第三方应用的访问情况并计费。
  • 路由:把开放平台的各种访问路由映射到具体的内部服务。
  • 流程:把一组松散的服务组织成一个上下文相关的新服务,对外提供接口供开发者使用。
UE4 Instanced Mesh 半透明渲染顺序不对解决 以绿色方块为Instanced Mesh为例。 正确的半透应该是这样的: 这是一般蓝图Actor方块,其半透是正常的。 然而Instanced Mesh因为过多,UE4不给你缓存正确的渲染顺序。所以,在不改代码的情况下,想解决Instanced Mesh半透问题,是不可能的。不正确的半透如下: 注意到错误发生在Instanced Mesh的方块与方块之间。 但我就是要解决,... 阅读详情

相关推荐

Win10自动更新怎么永久关闭?有效的Win10强制更新关闭方法

之前小编为大家分享过一些Win10彻底关闭Windows Update自动更新的方法,主要是通过一些如设置流量计费或借助一些专门的小工具来实现,但往往会发现,Win10自动更新就像打不死的小强,不管怎么关闭,之后还是会自动更新,让不少小伙伴颇为不爽。今天小编带来了这篇改进型教程,通过全方位设置,彻底关闭Win10自动更新,感兴趣的小伙伴不妨试试吧。 ...

jianai0602的博客 108万+

可扩展系统的“9不”原则和“5个”衡量维度

构建可扩展系统的目的是实现可扩展的应用与服务。 首先我们了解一下可扩展应用与服务的“9不”原则。 ·不要完全依赖本地资源:数据必须实现云(网络)存储,Hadoop HDFS就是一个很好的例子,三份数据拷贝(同机架不同主机两份、跨机架第三份)以保证高可用性。 ·服务尽量避免强依赖性:服务的强依赖性指的是当B服务依赖于A,而A下线后直接导致B服务的下线。在第三平台的架构设计中我们应把B服务设计为当A不可用时,采用其他渠道继续提供服务,例如从CDN或缓存区中保存的数据继续提供服务,以此来提高用户体验(同时在

Ultipa的博客 941

【Unity】制作简易三维场景

本文介绍如何制作一个三维场景

CiNian_的博客 4784

选择平台最不能忽视的功能—扩展性

系统的维护和服务离不开系统良好的扩展性,单纯靠“热情”但付出的代价非常高,软件公司和企业用户都难以承受,而降低系统维护和服务的成本、提升服务的效率和质量,企业系统的扩展性和灵活性具有举足轻重的地位。很多的厂商为了宣传其功能强大,将许多的功能“堆积”在一起,这些功能表面上看似很完善,随着深入的使用问题层出不穷,而由于系统缺乏良好的扩展性无法调整和完善,系统在企业内部不能够得到深入的应用,提升办公效率和企业管理都成了空谈,而这一切都和系统的灵活性和扩展性有着紧密的联系。可扩展性是软件拓展系统的能力。

L39935539的博客 1871

框架和平台的扩展性

我们的产品底层是一个平台,提供基础业务,以及扩展API。在平台之上,通过个性化配置,和定制开发,得到最终的产品 本文不谈配置的事,只说说定制 平台发布到不同的项目之后,各项目自行定制。由于不同的项目需求差异较大,有时候平台提供的扩展API无法满足,项目就直接修改或增加平台的代码。但是这样就有个问题,平台就不能随意升级了,因为项目对平台代码的修改不可控,平台升级之后,很可能与定制的代码冲突 延

kyfxbl 1440

WINCC8.1工业组态软件安装与授权配置指南

SCADA系统作为工业自动化控制的核心平台,通过实时数据采集与监控实现生产流程可视化。WINCC作为西门子旗舰级组态软件,其8.1版本凭借稳定的运行时环境在汽车制造、流程工业等领域广泛应用。本文从工业控制系统软件安装规范切入,重点解析WINCC8.1与Automation License Manager的协同工作原理,详细说明包括系统环境检查、安装包校验、授权文件配置等关键技术环节。针对工程实施中常见的内存配置不足、授权管理器报错等典型问题,提供经过现场验证的解决方案,特别适用于需要进行产线监控系统升级维护

cqwf95925的博客 1013

云优化,集大成的可扩展平台是硬道理

导语:云IaaS进入成熟期,如何取得新的优化成效?如何在计算、存储、内存、安全等方面实现四位一体的可扩展平台级融合?请看新一代云优化的必由之路。 近日,Gartner发布了2019年全球IaaS市场数据,根据Gartner的数据,全球基础设施即服务(IaaS)市场在2019年增长了37.3%,达到445亿美元。2019年,亚马逊在IaaS市场上保持第一的位置,其次是微软,阿里巴巴,谷歌和腾讯。 2019年,排名前五的IaaS提供商占据了市场的80%,高于2018年的77%,亚马逊继续领导全球Ia..

云科技时代 872

Office Tool Plus:正版Office干净部署指南

Office部署是Windows新机配置的关键环节,涉及版本选择、架构匹配、语言支持与合规激活等基础技术问题。其核心原理基于微软官方Office Deployment Tool(ODT)的声明式XML配置机制,通过标准化流程确保安装可复现、可审计、无第三方捆绑。技术价值在于规避官网安装器的版本锁定、架构误配和语言缺失等常见风险,提升部署稳定性与安全性。典型应用场景包括企业批量部署、IT运维标准化、隐私敏感型用户自主安装。本文以Office Tool Plus为实践载体,深入解析ODT底层逻辑、XML配置规范

776

大型网站技术架构(七)--网站的可扩展性架构

大型网站技术架构(一)--大型网站架构演化 大型网站技术架构(二)--架构模式 大型网站技术架构(三)--架构核心要素 大型网站技术架构(四)--网站的高性能架构 大型网站技术架构(五)--网站高可用架构   大型网站技术架构(六)--网站的伸缩性架构 [草稿]

星空的专栏 1万+

大型网站架构模式

为解决大型网站面临的高并发访问、海量数据处理、高可靠运行等一系列问题与挑战,大型互联网公司在实践中提出许多解决方案,以实现网站的高性能、高可用、易伸缩、可扩展、安全等各种技术架构目标。这些解决方案又被更多网站重复使用,从而形成大型网站架构模式。 分层 最典型的就是网络的7层通信协议,将系统从横向维度切分成几个部分,每个部分负责比较单一的职责,通过上下层的依赖和调用组成一个完整的系统。 网站架...

前行的博客 612

golang 线上事故

golang 线上事故 最近公司要做大促的一些活动。并且单量,qps持续上涨。之前使用的是django python 语言做的一个服务端。目前已经部署的国家里面最多的国家会有300+个实例。大促期间还可能会增加一个实例数。这么多的实例部署,回滚的时间都会特变长,除了问题也不好定位。并且如此多的一个机器,连接数* 实例数也会导致DB等其他服务扛不住这么大的并发。所以决定上go服务解决性能问题。 ...

lcf枫的博客 1029

大型网站技术架构(七)——网站的可扩展性架构

大型网站技术架构(七)——网站的可扩展性架构 大型网站技术架构(一)——大型网站架构演化:http://mp.weixin.qq.com/s/ZJ7vhD-KFWig16nAmn4ArA 大型网站技术架构(二)——架构模式:http://mp.weixin.qq.com/s/3iBgVogJpMnvkYKH50kJZQ 大型网站技术架构(三)——架构核心要素:

huangshulang1234的博客 758

全面解析:时延扩展与相干带宽、多普勒扩展与相干时间——无线通信基础

时延扩展与相干带宽 多径时延扩展与多径衰落 接收机所接收到的信号是通过不同的直射、反射、折射等路径到达接收机。由于电波通过各个路径的距离不同, 因而各条路径中发射波的到达时间不同,造成多径时延扩展。距离不同所以到达接收机的相位也不相同,不同相位的多个信号在接收端叠加, 如果同相叠加则会使信号幅度增强, 而反相叠加则会削弱信号幅度。 这样,接收信号的幅度将会发生急剧变化,就会产生多径衰落。 ...

king阿金 4万+

大型网站技术架构(二)--架构模式

大型网站技术架构(一)--大型网站架构演化          每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。           所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠运行灯一系列问题与挑战。为此,在实践中提出了许多解决方案,以实现网站高性能、高可靠性、易伸缩、可扩展、安全等各种技术

星空的专栏 8681

大型网站技术架构-入门梳理

来源: 时间:2017-1-24 09:39 阅读数:807 作者:brianway 摘要:罗列了大型网站架构涉及到的概念,附上了简单说明 前言 本文是对《大型网站架构设计》(李智慧 著)一书的梳理,类似文字版的“思维导图” 全文主要围绕“性能,可用性,伸缩性,扩展性,安全”这五个要素 性能,可用性,伸缩性这几个要素基本都涉及到应用服务器,缓存服务器,存储服务器这几个方面 概述 三个纬...

行僧 201

多台树莓派(主机)通信

在做无人机实验时,有个任务需要 两台无人机 或 无人机与小车 进行通信。 由于我们飞机上用了树莓派,相当于一台电脑,索性选用Socket网络编程。 条件:树莓派、局域网(手机热点或路由器)。需要通信的两台树莓派接入同一个局域网。 如若现场没有网络,可将树莓派配置为无线路由器,发射wifi。网上很多教程,注意一点是树莓派需要先用网线接入路由器再配置。 发送数据: # -*- coding...

LNL_LNL的博客 7233

大型网站技术架构-2. 大型网站架构模式

分层分层是企业应用中最常见的一种架构模式,将系统在横向维度上切分为几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。在大型网站架构中也采用分层结构,将网站软件系统分为:应用层、服务层、数据层;·应用层:负责具体的业务和视图展示,如网站首页及搜索输入和结果展示;·服务层:为应用层提供服务支持,如用户管理服务,购物车服务;·...

weixin_34064653的博客 260

DCMTK编译

dcmtk-3.6.4 使用Unicode?dcmtk的编译选项里没有关于Unicode的选项,OFString的接口里明确使用了OFString(char*)作为构造函数参数,所以,我们可以假设不能够自己擅自在CMakeList.txt里增加一行 add_definitions(-DUNICODE -D_UNICODE) 来强制使用Unicode编码。 亲测:加了之后编译不过 void...

C++ 爱好者 make_it_simple888 1337

网站架构模式

1.分层: 分层是企业应用系统中最常见的一种架构模式, 将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责, 然后通过上层对下层的依赖和调用组成一个完整的系统。 在大型网站架构中也采用分层结构,将网站软件系统分为应用层、服务层、数据层,便于分工合作开发和维护; 各层之间具有一定的独立性,只要维持调用接口不变,各层可以根据具体问题独立演化发展而不需要其他层必须做出相应调整。 ...

抛弃幻想,准备斗争 491

大型分布式网站架构总结

本文是学习大型分布式网站架构的技术总结。对架构一个高性能、高可用、可伸缩及可扩展的分布式网站进行了概要性描述,并给出一个架构参考。文中一部分为读书笔记,一部分是个人经验总结,对大型分布式网...

JAVA高级架构 318

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

《大型网站技术架构》核心原理与案例分析

作为科普类书籍阅读,扩展视野。

qq_43783527的博客 376

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

浅谈大型网站动态应用系统架构【转】

浅谈大型网站动态应用系统架构 动态应用,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。 大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统...

weixin_30475039的博客 80

《大型网站技术架构:核心原理与案例分析》

1、大型网站架构演化 2、大型网站架构模式 3、核心架构要素 4、高性能架构 5、高可用架构 6、伸缩性架构 7、可扩展架构 8、安全架构 9、案例 10、架构师

-根号四 - 的博客 1007

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

千万级流量的大型分布式系统架构设计

本文是学习大型分布式网站架构的技术总结。对架构一个高性能、高可用、可伸缩及可扩展的分布式网站进行了概要性描述,并给出一个架构参考。文中一部分为读书笔记,一部分是个人经验总结,对大型分布式网...

架构师小秘圈 1166

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

《大型网站技术架构:核心原理与案例分析》读书笔记

由于网站的访问流量是缓慢增长的(PS除了垄断的12306),所以一般网站的架构也是不断的演化的,没有一开始就搞出个支持大并发的网站。无论从开发到发布的时间、消耗的资源上来看,或者是说从开发、维护的难度上看,或者从开发的防止“过度设计”的维度思考,绝大多数网站设计是一个演化的过程。这也是植根于需求的表现。 分析目前大型互联网可以从两个维度,用户需求、结构框架。当然是前者决定后者。从用户需求特点分析,大

胜利者的经验并不复杂,那就是寻找人生的关键点,并在关键时刻竭尽全力 1988
上一篇: 系统整合 jasperreports 6.x 导出 HTML 的工具方法
下一篇: jasperreports 抛出 NoClassDefFoundError:net.sf.jasperreports.functions.standard.DateTimeFunctions 解决方法
Deniro Lee
博客等级 码龄10年 1282粉丝 947原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值