首页 >知识讲堂 >网站建设知识>总结分析构建高性能WEB系统相关经验与常用技术

总结分析构建高性能WEB系统相关经验与常用技术

2020-12-25 10:09:17 阅读(184 评论(0)

自互联网发展以来,各种应用层出不穷,用户数量上亿。因此,如何构建一个优秀的高性能、高可靠的应用系统对每个开发者都至关重要。本文总结了我在工作中学到和使用的一些方法,希望对其他学生发挥一些参考作用,在未来的发展中遇到类似的问题,能够快速找到解决方案。我主要使用JAVA语言,所以下面没有特别说明。这是使用JAVA语言实现高性能的关键。为了实现高性能,我总结了三点:缓存DNS缓存数据库缓存分布式缓存拆分业务拆分数据库拆分异步网络异步磁盘异步使用新闻中列出了三点中的一些常见情况,无论你在哪里遇到性能瓶颈,记住这三点,大多数时候你都能找到解决方案。在整个架构的各个方面,我们应该首先考虑无状态对象。无状态对象可以简单地理解为无状态对象。例如,model/entity对象不属于无状态对象,因为它包含field,例如典型的MVC场景**Controller,**Service是无状态的,它们只含有method。有些也有状态,比如Structs2框架的Action,所以Structs2现在用的比较少。有些也是有状态的,比如Structs2框架的Action,所以Structs2现在很少使用。有了无状态对象,我们可以构建无状态服务,因为请求链路中没有状态对象,所以我们的每个请求都是独立的。这种结构有助于扩展我们的服务。无状态服务有时难免会遇到一些有状态的对象,比如最常见的是session。由于http请求本身是无状态的,因此cookie和session必须配合使用,才能多次识别http请求属于同一用户。一般有两种解决方案:使用cookie存储和使用分布式session服务。首先是将所有对象信息存储在cookie中,并通过相应的算法在服务端读取cookie中的信息。这些信息通常是加密的。第二种方法是将session存储在分布式数据库或分布式缓存中,通常存在redis或memcache中。这种服务扩展将依赖于第三方数据库或缓存的能力。淘宝有类似的组件,开源世界也有基于memcache和redis的分布式session无状态服务。拆分和缓存业务拆分可以扩大应用程序服务水平,但当单个应用程序太大太臃肿时,有必要拆分应用程序。垂直拆分是根据业务进行拆分,如电子商务系统、订单系统、积分系统等。拆分可以方便开发和扩展。系统大了之后,每个业务的访问量就不一样了。比如买家系统肯定比卖家系统大很多。这个时候只能增加买家系统的机器。除了根据不同的业务分为不同的系统外,我们的应用层也可以分为应用层、逻辑层和原子层。应用层是各种数据和逻辑业务的组装。逻辑层包含大量可重用的逻辑。原子层直接操作数据库,包括一些基本的数据操作。无论以何种形式拆分,拆分后的系统都会在物理层面上分离,因此系统之间的通信是拆分中最重要的问题。RPC在RPC服务之前有很多系统通信方式,比如RMI、WebService,然而,RPC现在已经成为主流的通信手段,以更方便、更高效的方式跨平台。几乎每个大公司都有自己的RPC框架:淘宝的HSF、SCF也有许多优秀的开源框架:Dubbo、GRPC、Thrift等等。国内也有很多大公司使用dubo:JD.COM和当当都是。MQRPC调用一般用于耦合重、同步调用的场景。MQ也被广泛应用于各种业务中,作为另一种异步通信手段。常用的有:ActiveMQ、RabbitMQ、Kafka、RocketMQ。前两种一般作为企业级应用,其主要特点是支持许多特点和规范。后两者是互联网级的,吞吐量更强,性能更高,但牺牲了很多MQ的特点。mq通常用于需要最终连续性的场景,如用户注册和积分发送。注册后,用户可以直接返回前台成功,然后向mq系统发送成功注册信息,发送积分动作订阅注册事件,消耗mq事件信息。MQ最大的优点是峰值切割和解耦,在RPC同步呼叫场景中,如果相同的逻辑呼叫A和B,那么在扩展中,A和B必须需要同时扩展,但消息后,A发送消息给B,B暂时不能处理,也可以等到B继续处理后的峰值,即使B短期不能匹配A发送消息的能力。一般来说,数据库拆分项目会经历数据量从小到大的变化,因此数据库拆分也会根据不同的数据量在不同的阶段进行相应的处理。读写分离是大多数应用在遇到性能瓶颈时首先要做的事情。大多数互联网应用程序都是阅读占道90%以上的场景。所以一主多从,一个master写,其他slave读。然而,这种主从模式也存在一些问题。例如,有些数据需要更及时,也就是说,它们需要在写入后立即阅读。由于主同步是通过log异步复制的,因此存在数据不一致的窗口。此时,必须强制读取主库,以确保数据的安全。开发时必须注意。垂直分割是将不同的业务放在不同的数据库中,以减少单个数据库的压力,提高整体性能。垂直分割应注意业务边界问题。边界问题是有一个表,感觉适合放在A和B库中。这取决于经验,不能考虑太多,因为事实上,无论你以前有多好,在应用程序迭代中,总会有更多的表找不到一个明确的边界。在业务模块划分中,这个问题也是如此。水平分割一般意味着sharding。将同一表中的不同字段分成不同的表,或根据hash或业务字段将同一表分成不同的片段。这通常需要DAL框架的支持,包括TDDL框架、Cobar、Mycat等。就像操作数据库一样,程序编写者通过框架拆分数据库是看不见的。但目前的DAL框架还没有达到这样的目的,特别是在跨库事务的情况下,一般需要以其他方式进行处理。跨库事务/分布式事务一般通过最终一致性解决,即不强迫ACID满足,允许数据不一致的时间窗口,但总会有一个时间点数据达到最终一致的状态。解决方案很多,但核心原理是一样的,无非是靠补偿。计算机世界有句名言:“计算机科学领域的任何问题都可以通过增加间接的中间层来解决。”缓存是中间层。有很多场景使用缓存,几乎所有你能想到的地方。在这里,我们将讨论两种常见的数据库数据缓存缓存,local和remote,一般来说,使用缓存是很麻烦的,因为虽然缓存很好,但维护缓存的更新和删除是非常麻烦的。一般缓存可分为读缓存(大多数场景)和写缓存(一般针对数据安全性较低的场景)。例如,当读取数据库中的数据并写入缓存时,下次读取数据时,可以直接读取缓存中的数据,从而大大降低数据库的压力。说起来很简单。事实上,有很多种架构。每个架构都有优点和缺点。你可以详细了解它们。写缓存,就是先把数据写进缓存里,然后持续一段时间,也会提高效率。这个方案的问题是,如果此时停机,部分数据会丢失,所以适用于数据安全性低的场景。虽然缓存速度很快,但除了维护和更新之外,内存也是一个昂贵的*件。因此,除了在缓存中存储热点数据外,还需要其他方法来解决在一般缓存中维护数据的索引或主要字段用于列表显示的问题。对于大多数场景,我们的数据在一定时间内不会改变,或者即使改变,页面的一小部分也会改变,可以单独取出不变的部分进行静态。比如JD.COM商城的页面是静态的。静态化后,数据不需要每次从缓存或数据库中获取,然后封装成页面,而是直接要求返回静态页面,性能无疑有了很大的提升。除上述常用方法外,还有许多重要的方法:CDN加速DNS缓存页面缓存使用分布式存储使用多线程编写程序

以上就是关于总结分析构建高性能WEB系统相关经验与常用技术的相关介绍,更多总结分析构建高性能WEB系统相关经验与常用技术相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对总结分析构建高性能WEB系统相关经验与常用技术有更深的了解和认识。

内容来源:网络,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

像素和分辨率是什么

像素和分辨率是一个意思吗?不是分辨率分辨率是指单位长度内像素点的数量,它的单位通常为像素/英寸(ppi)如72ppi表示1英寸包含72个像素点,300ppi表示每英寸含300个像素点。分辨率决定了位图细节的精细程度,通常情况下,分辨率越高包...查看详情

线上服务不只是客服,电商系统满足购物体验也是服务要求

电商市场拓展快速,队伍也在逐渐壮大,不同类型的电商平台层出不穷,同一类型的电商平台数不胜数。当下,企业进行电商系统开发的时候,不仅要明确企业自身的电商系统要求,更要满足消费者对电商系统的要求。毕竟,得人心者得天下…查看详情

2021国内saas软件公司排名 saas品牌大厂商对比

经济飞速发展的时代,国内外各个领域之间都存在SaaS做得非常出色的企业,本期就和大家聊聊国内saas品牌大厂商对比,2021国内saas软件公司排名是个什么样的情况?排名不分前后。 1. 钉钉saas软件公司 ...查看详情

推荐一些不要钱的变声器(变声器免费版)

现在新媒体的发展越来越快,因此很多人可能会选择在新媒体去闯一闯,因此就可能会运用到一些变声器软件,但是很多变声器软件都是收费的,因此很麻烦,以下是我给大家推荐的一些不要钱的变声器。1、万能语音变声器是一款变声娱乐软…查看详情

微信小程序怎么做店铺?

  微信小程序是一种针对微信用户开发的轻量级应用程序,可以在微信内直接使用,无需下载安装。随着微信用户数量的不断增加和消费行为的转变,微信小程序成为了越来越多商家和品牌的选择。  如果你想在微信小程序上开设一个电…查看详情

个人所得税怎么申报?个人所得税申报流程

  企业的在发放员工的薪资时需要根据税收政策,在扣除个人所得税之后才发放的,这其中就会涉及到个税的申报流程。很多人对于这些都是了解的比较少的,也是很感兴趣的。其实个人也是可以申报个人所得税的,下面*就给大家来详细介…查看详情

做电商需要学哪些基础 电商需要学什么做什么

  现在很多人都想去做电商,但是又不知道怎么入手,下面万商云集*给大家详细介绍下做电商需要学哪些基础 电商需要学什么做什么。希望能帮助到大家。  做电商货源是必须的,常规渠道有三种:  (1)线上采购(阿里巴巴)。…查看详情

2022钢琴排行榜前十名 钢琴十大品牌排行榜

弹钢琴是从小培养孩子的,如果不从小培养,等到孩子十几岁的时候再去培养的话,这就会迟一些,从小培养孩子学习钢琴,说不定长大孩子就会成为一名正式的钢琴家,那么,钢琴排行榜都有哪些呢?1、施坦威有名的钢琴牌子初成立时间法…查看详情

计算机版权登记涉及到利益平衡和信息发展,能不重要吗?

软件著作权为了保护软件著作权人的合法权益,宏观调控计算机软件再开发、传播、使用中的利益关系,促进产业发展。计算机版权登记重要吗?可以从权益涉及到的主体、客体来进行分析。软著权的主体著作权人是软件开发者,客体是计算…查看详情

cpu温度过高怎么办 cpu温度过高解决办法

  很多用户在使用笔记本电脑玩游戏时,发现cpu温度过高,担心会对电脑造成什么损伤,本期文章以华硕、飞行堡垒6为例,给大家来介绍一下cpu温度过高怎么办 cpu温度过高解决办法这一块的相关内容,希望能帮助到大家解决相关的问题…查看详情

[商标注册方案] 以第41类为主要类别的方案,还需做以下延伸!

教育服务行业基于中国教育体制状况,向来被归为“朝阳产业”。教育服务本身是具有使用价值和交换价值的教育产品,不仅具有产业性、导向性、消费性和多元化等特征,还具有跨行业共性的延伸性。因此教育服务行业除了进行第41类商标注…查看详情

如何建设一个网站,用户量和功能需求不大的那种!

想要建站的朋友想必都看了很多关于建站的文章,查阅了大量相关信息,有没有越看越不知道从哪里着手,越看越复杂,越看越不知道如何建设一个网站。原因主要在于,你想要做一个高大上的网站,但一开始就把这件事情当成了一件很庞大…查看详情

淘宝抵价券使用注意事项是什么?

一堆5元淘宝购物券,不知道怎么用?在付款的时候,付款界面,会有一个“使用抵价券”的显示,你在前面打勾勾就好了前提是,你要买的那家店的东西,是支持使用抵价券的哦淘宝的抵价券一次交易中只能用一张吗?三、使用抵价券1、必须在抵价券…查看详情

晋江小说排行榜,重点推荐这几本

可能有很多人不知道什么叫做晋江小说,其实晋江小说,主要是指晋江文学城中的小说排名,而这也是十分有知名度的女性文学和网站,其中的言情板块也是很受欢迎的,那么下面就为大家介绍晋江小说排行榜,希望能够带来帮助。1、天官赐…查看详情

国内外最具影响力CRM软件排行榜

说到SaaS软件,你可能首先想到的是Salesforce等国外品牌。事实上,国内CRM市场同样火爆,单服务厂商就有好几百家,软件版本更是数以万计。因此,企业在选型CRM时不用把眼光都放到国外产品,国内产品也值得选型。今天,我们就一起来看下国...查看详情

首页

产品

万商学院

客户服务

会员中心

当前站点

h

选择站点

全国站成都

一 客户顾问-张三

已为0个客户提供专业互联网服务咨询
  • 手机号码
  • 验证码图形验证码换一张
  • 短信校验码

    电话咨询

    在线咨询