2024面试必问:系统频繁Full GC,你有哪些优化思路?

不久之前,我遇到了一个Java GC问题。有个服务在高峰期耗时增加,触达上游超时配置,导致上游调用失败率增加。经过初步排查确认这并非因为个别接口的性能恶化,而是服务整体上性能恶化。 最终定位原因是,高峰期 YoungGC和 FullGC 频率过高,导致耗时增加。遂决定从GC方向优化性能,经过两周的治理,GC问题得到大幅改善,接口耗时下降30%。…

hello hello 发布于 2024-08-20

原来,这才是JDK推荐的线程关闭方式

JDK在线程的Stop方法时明确不得强行销毁一个线程,要优雅的退出线程。 何谓优雅退出线程,即业务将进行中请求正确被处理,取消待执行请求,执行资源回收,最终Thread Runable run 方法return 结束执行。 首先问为什么要退出一个线程,再提问如何退出一个线程 任务执行完成,或异常终止,任务认为无需再占用线程。…

hello hello 发布于 2024-08-20

Tomcat中的Connector源码分析

前言 本文将介绍 Tomcat 中的 NIO 使用,使大家对 Java NIO 的生产使用有更加直观的认识。 虽然本文的源码篇幅也不短,但是 Tomcat 的源码毕竟不像 Doug Lea 的并发源码那么“变态”,对于大部分读者来说,阅读难度比之前介绍的其他并发源码要简单一些,所以读者不要觉得有什么压力。 本文基于 Tomcat…

hello hello 发布于 2024-08-20

Java网络与NIO总结

Java IO Java IO的基础知识已在前文讲过 Socket编程 socket是操作系统提供的网络编程接口,他封装了对于TCP/IP协议栈的支持,用于进程间的通信,当有连接接入主机以后,操作系统自动为其分配一个socket套接字,套接字绑定着一个IP与端口号。通过socket接口,可以获取tcp连接的输入流和输出流,并且通过他们进行读取和写入此操作。…

hello hello 发布于 2024-08-20

总结Java 空指针异常隐藏最深的8 个场景

1. 自动拆箱出现 null 包装器类型自动拆箱为基础类型时极容易出现NPE。如下图示例,方法void initTask(int taskId),调用时taskId如果为 null ,则会出现NPE。正确做法是 可能为 null 的属性,一律声明为包装器,此外从外部获取的变量一定要检查 null ,进行防御式编程。 public void…

hello hello 发布于 2024-08-20

Tomcat 中的 NIO 模型介绍

摘要: I/O复用模型,是同步非阻塞,这里的非阻塞是指I/O读写,对应的是recvfrom操作,因为数据报文已经准备好,无需阻塞。 说它是同步,是因为,这个执行是在一个线程里面执行的。有时候,还会说它又是阻塞的,实际上是指阻塞在select上面,必须等到读就绪、写就绪等网络事件。 一、I/O复用模型解读…

hello hello 发布于 2024-08-20

零成本申请一个永久免费的域名,还可以托管到Cloudflare

什么是ClouDNS ClouDNS 身为欧洲名列前茅的全球托管 DNS 服务供应商,其服务范畴涵盖了 GeoDNS、Anycast DNS 以及拥有 DDoS 防护的 DNS 等领域。该公司大力推行业界领先的云服务架构,力求实现顶级的 DNS 速度和 DNS 冗余性能。ClouDNS 平台针对应用程序以及 DNS…

hello hello 发布于 2024-08-19

一个开源、高颜值、且零配置的 Docker 控制面板

简介 DweebUI 是一个开源的 Web 用户界面(WebUI),旨在用于容器管理。它提供了简便的设置流程、可动态更新的仪表盘以及多用户权限系统。 功能特点 该项目的功能涵盖以下方面: 动态更新的仪表盘 :能够展示服务器指标、容器指标以及容器控制。用户可通过该仪表盘监控服务器和容器的状态信息。 多用户支持和权限系统…

hello hello 发布于 2024-08-19

Spring Boot 集成qwen:0.5b实现对话功能

1.什么是qwen:0.5b? 模型介绍: Qwen1.5是阿里云推出的一系列大型语言模型。 Qwen是阿里云推出的一系列基于Transformer的大型语言模型,在大量数据(包括网页文本、书籍、代码等)进行了预训练。 硬件要求: CPU配置:CPU最低第六代intel酷睿4核,AMD ZEN 4核以上;推荐12代intel酷睿8核,AMD ZEN…

hello hello 发布于 2024-08-19

Spring Boot + pf4j 实现插件开发功能

1.什么是pf4j? 一个插件框架,用于实现插件的动态加载,支持的插件格式(zip、jar)。 核心组件 Plugin :是所有插件类型的基类。每个插件都被加载到一个单独的类加载器中以避免冲突。 PluginManager:用于插件管理的所有方面(加载、启动、停止)。您可以使用内置实现作为JarPluginManager,…

hello hello 发布于 2024-08-19
上一页 下一页