0571-88730320

当老板想让你优化网站的性能时,作为一个工程师应该怎么做?

当老板想让你优化网站的性能时,作为一个工程师应该怎么做?

发布时间:2020-01-13 13:10:00

缓存是指将数据存储在访问速度相对较高的存储介质中,用于系统处理。一方面,缓存访问速度快,可以减少数据访问时间。另一方面,如果对缓存...

如果您有类似需求请致电

17742004931 , 0571-88730320

1、 使用缓存

缓存是指将数据存储在访问速度相对较高的存储介质中,用于系统处理。一方面,缓存访问速度快,可以减少数据访问时间。另一方面,如果对缓存的数据进行计算和处理,则可以直接使用缓存的数据,而无需重复计算,因此缓存在减少计算时间方面也起到了一定的作用。

有很多方法可以缓存。有代码级缓存机制,如mybatis和hibernate。也有基于组件的,如ehcache。缓存也有独立于应用程序包的缓存,如redis、ehcache等。当然,在使用缓存时有很多需要注意的地方。我们稍后再谈。

2、 异步操作

在高并发的情况下,同步操作可以异步化,以降低系统压力。例如,使用消息队列。在没有消息队列的情况下,用户的请求数据直接写入数据库。在高并发的情况下,会给数据库带来巨大的压力,同时也会使响应延迟变差。使用消息队列后,用户请求的数据将发送到消息队列并立即返回。然后消息队列的使用者进程(通常,该进程独立部署在一个特殊的服务器集群上)从消息队列中获取数据,并将其异步写入数据库。由于消息队列服务器的处理速度远快于数据库(消息队列服务器的可扩展性也优于数据库),因此可以有效地提高用户的响应延迟。目前,有许多消息中间件,如kafaka、ActiveMQ、rabbitmq等

当然,异步操作的使用需要在业务中进行协调,并在业务流程中进行优化。对于某些实时操作,不能使用异步操作,例如付款。用户将在付款后立即看到结果。

3、 使用群集

在网站高并发访问的情况下,采用负载均衡技术,为一个应用构建由多个服务器组成的服务器集群,并将并发访问请求分发给多个服务器进行处理,避免单个服务器因负载压力过大而响应慢,使用户请求具有更好的响应延迟特性。

我们说清楚。就像我们上厕所一样。当我们去一个坑的时候,我们都得排好队再修理几个坑。我们都清楚了。目前,负载均衡集群的方法很多,包括基于硬件的,如F5;基于软件的,如haproxy、nginx等,但是硬件成本相对较高,但性能良好。毕竟,一般的金融业使用更多的钱。

4、 优化代码

网站的业务逻辑实现代码主要部署在应用服务器上,需要处理复杂的并发事务。合理优化业务代码可以提高网站的性能。在不同的编程语言中有许多代码优化的方法。在这里,我们集中讨论几个重要的方面。

多用户并发访问是网站的基本要求。大型网站的并发用户数将达到数万,单台服务器的并发用户数将达到数百。在CGI编程时代,每个用户请求都是创建的——一个独立的系统进程来处理。由于线程比进程轻,占用系统资源少,切换成本低,目前主要的web应用服务器以多线程的方式响应并发的用户请求,因此web站点开发自然是多线程编程。

在系统运行时,应尽量减少对数据库连接、网络通信连接、线程、复杂对象等昂贵系统资源的创建和破坏,从编程的角度来看,资源重用有两种模式:单体和对象池。

程序的早期定义是:程序是数据结构+算法,数据结构对程序设计的重要性不言而喻。通过在不同的场景中使用适当的数据结构,灵活地组合各种数据结构来提高数据读取、写入和计算特性,可以极大地优化程序的性能。

如果web应用程序运行在JVM等具有垃圾收集功能的环境中,垃圾收集可能会对系统的性能特性产生巨大影响。了解垃圾收集机制有助于程序优化和参数调整,以及编写内存安全代码。

联系我们,谈您的需求

立即咨询