互联网程序员必备的性能优化技术 互联网程序员必备的性能优化技术是
gaoyangw 2024-10-04 16:52 10 浏览 0 评论
互联网的发展推动了越来越多的企业加入互联网,越来越多的产品出现在互联网,越来越多的网民涌现在互联网,除了提供基本的服务之外,还需要提供更好玩、更便捷稳定的服务,就像手机一样,我们对它最基本的性能要求就是待机时间长,在互联网的性能要求就是不慢不卡,因此性能优化技术是互联网程序员必须掌握的技术。
一套应用程序能运行起来,除了最上层的前端服务、业务层算法之外,还有数据库、操作系统,因此性能优化技术包含了负载均衡技术、缓存技术、数据库技术、RPC技术(RemoteP)、进程通信技术、IO多路复用技术、IO零拷贝技术,互联网程序员掌握了这些技术,就像学好了数理化一样,走到哪里都是香饽饽。
所谓负载均衡技术,就是用来将计算资源、存储资源、网络资源根据实际情况进行分配的一种技术,通过多个节点承载服务,用来达到最优的资源利用、最快的响应时间,实现了性能优化。负载均衡的分类也有很多,有客户端负载均衡、服务器端负载均衡、软件负载均衡、硬件负载均衡。以服务端负载均衡为例,用户在前端发起请求后,经过网络传输给服务端,再通过服务端的负载均衡算法去选择对应的服务器提供服务,最常见的就是nginx算法了。
在负载均衡之后,便是缓存技术,它是通过将访问的热数据提前存起来供业务访问,降低了数据库压力、降低了用户响应时间,实现了性能优化。负载均衡把请求分担为多个节点执行,每个节点都承载着服务的提供,当用户请求从前端经负载均衡算法分配过来后,如果直接去访问获取磁盘的数据库数据,就会非常慢。如果有了缓存,在用户请求到达之后,业务线程就会先访问缓存,如果缓存命中就直接返回用户,如果没有命中,则继续请求磁盘数据库数据,获取后返回用户,同时将磁盘获取的数据结果回写到缓存系统,为下次请求做好准备。
在缓存之后便是数据库技术,缓存访问热点数据后,执行的交易操作需要对数据库中的表进行增删改查,通过将数据库分为主库、读库、大表分为小表,让每个用户请求都能快速访问到数据、快速执行操作,降低了用户延迟,实现了性能优化。数据库的读写分离,使用一台数据库服务器作为主数据库(master),把业务数据都写入该数据库,再另外使用另一台数据库服务器来作为从数据库(slave),将业务数据同步到该数据库上,当业务进行读操作时就读取备数据库的数据即可,这样即缓解了数据库压力,又实现了备份。
在数据库技术之后,便是操作系统级别的IO多路复用技术。我们知道一个程序运行时是一个进程,而程序里有很多的方法要去执行,每个方法就是一个线程,通过并发处理客户端的多个线程请求,并同时等待多个连接发送的请求,减少系统的开销、降低用户延迟,实现了性能优化。此外,IO多路复用也不需要额外创建和维护线程监听客户端的大量连接,减少了服务器的开发和维护成本。典型的线程级别优化技术有java线程池、数据库连接池、PHP内存池。
在IO多路复用技术之后,便是IO零拷贝技术。在操作系统一般把内核划分成内核空间、用户空间,Linux操作系统中读取数据操作都是基于数据拷贝完成的,也就是说数据会在内核地址空间的缓冲区和用户地址空间的缓冲区进行拷贝,数据读取流程一般包含四部分,
1.操作系统需要先从磁盘里读取文件到内核页面的缓存;
2.用户态的应用程序从内核态读取数据到用户空间缓存区,由于内核态的资源比较宝贵会经常释放;
3.用户态的应用程序还需要将数据写回内核空间并放入socket缓冲区;
4.最后操作系统将数据从socket缓冲区复制到网卡接口,再经由网络发送给到消费者进程。
零拷贝技术,将磁盘文件的数据复制到页面缓存中,然后将数据从页面缓存直接发送到网络给到不同的订阅者,避免了重复拷贝操作,极大的提高了速度,实现了性能优化。
从负载均衡、缓存、数据库到IO多路复用、IO零拷贝技术,完成了单服务从业务级到操作系统级的性能优化,但微服务技术的出现将单服务拆分成了多个微服务,对于云原生、微服务时代的性能优化,那便是RPC远程调用技术。
远程是相对本地而言的概念,本地调用存在的场景是在一个服务中有不同的函数实现不同的功能,一个函数要使用另一个函数的功能,那必然要调用它。在本地函数调用时,一般会经过这几个步骤,即函数返回地址入栈、函数参数入栈、堆栈空间提升、函数参数复制、开始函数调用、堆栈情况。
当服务拆分成了微服务之后,函数是在不同的微服务、不同的机器上运行,一台机器想要调用另一台机器的函数执行某个功能,只能通过网络请求来实现(借助两个服务共同维护的关联式容器stub),不能再像本地调用一样使用函数指针实现了。有了RPC,不仅是微服务与微服务之间的调用变得简单,不同语言之间的调用也变得简单了。
以前JAVA语言想要调用C++语言,那是不可能的事,因为用不同语言写的代码,根本无法通信啊。而现在有了RPC,只要框架上支持该语言的解析,那么就可以了。Java语言传递过来函数1的参数1、参数2,通过RPC框架解析为C++语言可以识别的参数1、参数2。RPC技术通过降低了网络延迟从而降低了用户延迟,实现了性能优化。
互联网从网页时代走向互联网时代、移动互联网时代、物联网时代,基础设施从物理机走向虚拟机、容器,技术架构也从单体式服务走向SOA、微服务、分布式,一切技术都在不断的进化演变,唯一不变的便是性能优化技术。从单服务的负载均衡、缓存、数据库,到操作系统级别的IO多路复用、IO零拷贝技术,再到微服务的RPC技术,掌握了之后,任尔技术如何变迁,我自岿然不动~
相关推荐
- 网络推广引流策略:选准平台提升品牌影响力
-
网络推广引流是企业和个人自媒体发展中不可或缺的关键步骤,它能有效提升品牌名声、促进产品销售、吸引众多潜在消费者。为了做好这项工作,我们需深入了解众多细节和策略。下面,我将逐一为大家详细介绍网络推广引流...
- 王心凌翻红,南京某公司专门发文为其拉票?
-
前不久,“刘耕宏女孩”们纷纷加入健身大军,一起跳起了《本草纲目》。最近,“王心凌男孩”们又跳起了《爱你》,登上热搜。一首《爱你》重新翻红5月20日,《乘风破浪3》开播。今年39岁的王心凌在初舞台上,绑...
- 项目招标山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公
-
项目招标山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商
- 关于山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
-
关于山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
- 最新项目山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商
-
最新项目山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
- 山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商
-
山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商...
- 山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
-
山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告...
- 最新公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商
-
最新公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告...
- 最新招标公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性
-
最新招标公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
- 最新公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公
-
最新公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告...
- 合肥网站建设大概流程是怎么样的(合肥网站建设方案开发)
-
合肥网站建设是指在合肥地区进行网站建设的一系列流程和步骤。随着互联网的快速发展,网络在经济、商务、政府、教育和其他领域的作用越来越大,一个高效、安全、易用的网站在合肥的发展中起着重要的作用。下面将简要...
- 网站SEO优化如何制定策略(网站seo的主要优化内容)
-
原文地址:网站SEO优化如何制定策略作者:怎么可以那么难取名字做网站优化首先需要制定好SEO策略,SEO策略贯穿整个SEO工作中心,每一步都是按照这个策略走,循序渐进,一步一步进行。执行SEO之前一定...
- 2025年Google SEO趋势:AI如何重塑你的流量策略?
-
2025年,GoogleSEO正迎来一场由AI驱动的革命。作为一名拥有16年经验的SEO专家,我见证了无数网站因未能适应变化而流量暴跌,也看到那些紧跟趋势的网站实现逆袭。AI如何影响SEO?Goog...
- 网站建设费用包含哪些方面?(网站建设费用计入哪个科目)
-
在网站建设中,费用通常由多个方面组成,这些因素共同决定了网站的整体成本。首先,最基本的费用是域名和主机的购买。域名是网站的地址,而主机则是存放网站内容的服务器,这两者都是网站上线的必要条件。选择合适的...
- 做一个公司官网大概多少钱呢?(做一个公司官网大概多少钱呢知乎)
-
制作公司官网的费用因需求复杂度和服务商不同差异较大,以下是一个大致的费用范围和分析,供参考:#公司官网##网站搭建---**一、影响价格的核心因素**1.**网站类型**-**基础展示型**(5...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 网站建设 (107)
- 网站开发 (47)
- 网络推广哪个平台好 (47)
- 百度收录 (50)
- 网页设计 (44)
- 搜索引擎排名优化 (49)
- 关键词优化工具 (51)
- 外贸网站建设 (56)
- seo整站优化吧 (50)
- 广州seo (47)
- 苏州网站建设 (59)
- 百度搜索推广 (61)
- 关键词优化公司 (51)
- 网页制作 (47)
- 广州网站建设 (48)
- 电商网站建设 (49)
- 百度站长平台 (48)
- 网站收录查询 (46)
- 网站模板 (51)
- 厦门网站建设 (52)
- 百度快照推广 (51)
- 免费网页在线客服系统 (53)
- 雷神代刷网站推广 (53)
- 网站设计模板 (45)
- 一键优化 (47)