程序的伸缩性_应用程序可伸缩性:对于企业应用程序仍然难以捉摸

本文主要是介绍程序的伸缩性_应用程序可伸缩性:对于企业应用程序仍然难以捉摸,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

程序的伸缩性

诸如Facebook,Twitter之类的Consumer Business应用程序的出现改变了Application Scalability的定义。 十年来已有超过1000万的庞大用户群,Facebook到今年年底将达到10亿以上的用户。 在100+百万用户范围内有成千上万的应用程序。 这些大型消费者业务应用程序采用的技术和方法不同于传统的企业应用程序设计和体系结构技术。

如果我们研究这些大型消费者业务应用程序采用的架构原理,那么我们可以得出以下结论:

  • 所有大型消费者业务应用程序均已构建并利用云计算
  • 应用程序是结合使用开源产品和平台来构建的
  • 创建当前解决方案集不符合要求或无法扩展的解决方案(例如,HipHop,Hadoop,ChaosMonkey等)
  • 在社区内不断进行知识共享(FB / Twitter / Google开源了许多内部产品)

从应用程序可伸缩性的角度来看,出现了以下关键体系结构模式,这些模式用于扩展应用程序

  • 无状态应用程序 –现代Web应用程序维护状态,这意味着它们在上次请求的过程中会记住您所做的事情,并且在会话中会记住所有这些数据。 应用程序的“有状态”性质意味着,如果保持该状态的服务器出现故障,则整个用户状态都会丢失。 跨服务器节点同步用户会话数据或保留在数据存储中的传统技术无法很好地扩展。 为了克服此缺点,创建服务器不维护状态的无状态应用程序的整个概念。 该应用程序使用cookie并利用RESTful API来改善用户体验。 诸如Play Framework,Node.js,Vertx.io之类的较新框架都促进了这种无状态应用程序的开发,并且可以很好地随着用户负载的增加而扩展。 用来减轻会话状态的另一个选项是基于高吞吐量内存的键值存储,这在无状态节点之间很常见。
  • 数据分片 –规模遇到的另一个问题是数据库服务器的负载不断增加。 DB Server确实采用了诸如“主/从”或“集群”技术之类的技术,再加上强大的功能强大的盒子,但超过100百万的用户,这些技术也失败了。 此外,昂贵的硬件和软件许可使传统的DB选项非常昂贵。 因此,公司已经使用MySQL作为基础,并围绕该MySQL创建了许多解决方案/拓扑。 这些技术之一是数据分片 。 数据分片是数据的水平分区,这意味着表的行是单独保存的。 这种分区方法有许多优点。 由于将表划分并分配到多个服务器中,因此减少了每个数据库中每个表的总行数。 这样可以减小索引大小,从而通常可以提高搜索性能。 可以将数据库分片放置在单独的硬件上,并且可以将多个分片放置在多台计算机上。 这使数据库在大量机器的分布,使数据库性能是分布在多台机器,大大提高了整体performance.Many新的非关系型数据库(俗称NoSQL数据库),如卡桑德拉 ,MongoDB的HBase的有以数据库分片为主要功能创建的。
  • 使数据更接近用户(缓存) –缓存已被大多数Consumer Business Apps采用并很好地使用。 像memcache这样的开源产品提供了跨层(Web层/应用层和数据层)的缓存选项。 Memcache提供了传统缓存解决方案(一致性,兵马俑)的可靠替代方案。 此外,NoSQL解决方案使用缓存引擎来加快数据库的读写操作。 Couchdb使用内存缓存提供内存中的读/写解决方案。
  • 服务提供商/消费者模型 –出现的另一种模式是服务提供商和消费者。 它是SOA模型的派生产品,但更加精简和简单。 业务功能通过JSON数据格式的RESTful API作为一组服务公开。 表示层是使用这些服务来建立用户体验的消费者。 构建服务和提供者的技术可以完全分开。 根据最适合用例选择技术 。 合同仅由服务版本和定义强制执行。 前端通常使用PHP或Ruby在rails上构建。 服务是使用Scala,Akka,C ++,Java等构建的。

为什么企业要看这些模式?

  • 企业已开始大体上采用云(公共/私有)。 弹性缩放意味着实时响应不断变化的负载模式。 在缺乏扩展能力的情况下,对云的所有投资都是浪费
  • 传统的基于CPU / Core的许可模型在云世界中被证明是昂贵的。 企业需要采用许可包随附的OSS框架/解决方案
  • 用户的期望提高了几个等级。 对企业应用程序进行了比较,并期望与其他Internet Scale应用程序具有相同的弹性和性能。
  • 用于企业应用程序的扩展模型(添加更多CPU)会带来额外的资本支出。 依靠商品服务器或可以在混合云上运行的横向扩展模型(添加更多小型服务器)正变得更具成本效益的解决方案
  • 企业正在走向全球,这要求系统能够24X7全天候可用。 当前紧密耦合的应用程序设计不适用于可伸缩性模式

参考: 应用程序可伸缩性:在Tech Spot博客上,我们的JCG合作伙伴 Munish K Gupta 对于企业应用程序仍然难以捉摸 。


翻译自: https://www.javacodegeeks.com/2012/08/application-scalability-still-elusive.html

程序的伸缩性

这篇关于程序的伸缩性_应用程序可伸缩性:对于企业应用程序仍然难以捉摸的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848887

相关文章

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

这些心智程序你安装了吗?

原文题目:《为什么聪明人也会做蠢事(四)》 心智程序 大脑有两个特征导致人类不够理性,一个是处理信息方面的缺陷,一个是心智程序出了问题。前者可以称为“认知吝啬鬼”,前几篇文章已经讨论了。本期主要讲心智程序这个方面。 心智程序这一概念由哈佛大学认知科学家大卫•帕金斯提出,指个体可以从记忆中提取出的规则、知识、程序和策略,以辅助我们决策判断和解决问题。如果把人脑比喻成计算机,那心智程序就是人脑的

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

Spring Roo 实站( 一 )部署安装 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://stati