java中,生产环境服务器变慢,如何诊断处理?

java中,生产环境服务器变慢,如何诊断处理?,第1张

生产环境应当有负责监控项目的一些系统。例如,kibana上可以查看哪些接口的响应时间比较长。数据库监控可以看到有没有慢查询,有的话去找运维要一下具体的慢查询语句,然后去分析这个慢查询产生的时间和都有哪些接口被调用了。去看这些接口的响应时间哪个能对的上。定位到对应的代码,进行优化。这个是个人认为比较常见的一种情况。

在进行服务器处理的过程中,需要保证数据的正确处理,那么最重要的就是使用不同的数据处理模式进行运算。在整个过程中,可能很多人对服务器的知识并不了解,那么应该如何进行Java开发服务器的线程处理呢,关于线程处理有哪些知识?下面昌平北大青鸟为大家介绍关键服务器线程处理的简单知识。

1、BIO线程模型

在JDK14中引入JavaNIO之前,所有基于Java的Socket通信都使用了同步阻塞模式(BIO)。这种请求-响应通信模型简化了上层的应用程序开发上,但在具有性能和可靠性的情况下,存在一个巨大的瓶颈。在一段时间里面,大型应用程序服务器主要是用C或C++开发的,因为它们可以直接使用 *** 作系统提供的异步I/O或AIO功能。

当流量增加且响应时间延迟增加时,JavaBIO开发的服务器软件只能通过硬件的不断扩展来满足并发性和低延迟的情况,这极大地增加了企业的成本和群集大小。系统的不断扩展,系统的可维护性也面临着巨大的挑战,只能通过购买性能更高的硬件服务器来解决问题,这将导致恶性循环的产生。

2、异步非阻塞线程模型

从JDK10到JDK13,Java的I/O类库非常原始。UNIX网络编程中的许多概念或接口未反映在I/O类库中,例如Pipe、Channel、Buffer和Selector等。在发布JDK14的时候,NIO正式发布JDK作为JSR-51。并且它还添加了一个javanio包,为异步I/O开发提供了许多API和库。

3、RPC性能三原则

影响RPC的性能主要有三大元素,其中主要为I/O模型、协议及线程。

I/O模型:使用什么样的通道传递给另一方,BIO,NIO或AIO发送数据,IO模型在很大程度上能够决定框架的性能。

协议:应该使用什么样的通信协议,Rest+JSON或基于TCP的专用二进制协议。参加电脑培训的过程中发现,协议的选择不同,性能模型也不同。内部专用二进制协议的性能通常可以比公共协议更好地设计。

线程:如何读取数据报?在执行读取后的编解码器的哪个线程中,如何分发编码消息,通信线程模型是不同的,并且对性能的影响也非常大。

在进行服务器处理的过程中,需要保证数据的正确处理,那么最重要的就是使用不同的数据处理模式进行运算。在整个过程中,可能很多人对服务器的知识并不了解,那么应该如何进行Java开发服务器的线程处理呢,关于线程处理有哪些知识?下面北京北大青鸟为大家介绍关键服务器线程处理的简单知识。

1、BIO线程模型

在JDK14中引入JavaNIO之前,所有基于Java的Socket通信都使用了同步阻塞模式(BIO)。这种请求-响应通信模型简化了上层的应用程序开发上,但在具有性能和可靠性的情况下,存在一个巨大的瓶颈。在一段时间里面,大型应用程序服务器主要是用C或C++开发的,因为它们可以直接使用 *** 作系统提供的异步I/O或AIO功能。

当流量增加且响应时间延迟增加时,JavaBIO开发的服务器软件只能通过硬件的不断扩展来满足并发性和低延迟的情况,这极大地增加了企业的成本和群集大小。系统的不断扩展,系统的可维护性也面临着巨大的挑战,只能通过购买性能更高的硬件服务器来解决问题,这将导致恶性循环的产生。

2、异步非阻塞线程模型

从JDK10到JDK13,Java的I/O类库非常原始。UNIX网络编程中的许多概念或接口未反映在I/O类库中,例如Pipe、Channel、Buffer和Selector等。在发布JDK14的时候,NIO正式发布JDK作为JSR-51。并且它还添加了一个javanio包,为异步I/O开发提供了许多API和库。

3、RPC性能三原则

影响RPC的性能主要有三大元素,其中主要为I/O模型、协议及线程。

I/O模型:使用什么样的通道传递给另一方,BIO,NIO或AIO发送数据,IO模型在很大程度上能够决定框架的性能。

协议:应该使用什么样的通信协议,Rest+JSON或基于TCP的专用二进制协议。参加电脑培训的过程中发现,协议的选择不同,性能模型也不同。内部专用二进制协议的性能通常可以比公共协议更好地设计。

线程:如何读取数据报?在执行读取后的编解码器的哪个线程中,如何分发编码消息,通信线程模型是不同的,并且对性能的影响也非常大。

这个主要要看你网站的架构。
如果是大型的交易平台,建议在两台服务器上部署两个应用,可以通过服务器或者硬件设备实现均衡负载,这时,维护的时候,即使停掉一台服务器,也不会影响另一台服务器的使用。可以先维护A,在维护B服务器。
如果你的应用程序只部署了一份,则在升级的时候出现短暂的不能访问(服务器加载更新文件)是很正常的。 如果你是java应用,建议使用weblogic 或者开源服务器使用最多,性能卓越的JBOSS服务器。 jboss 支持热部署,建议部署的应用时文件夹的方式,这是,你可以直接把你需要更新的类,通过 ftp 等方式传上去,JBOSS会自动加载更新的类。 如果你修改的是描述文件,如 WEBXML,strurs,webservices的文件,服务器则会先卸载应用,在重新部署。
如果系统对实时性要求很高,则建议使用集群的方式进行设计和部署。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12785992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存