Springboot Condition 详解Condition 是spring boot 4.0增加的功能,它可以选择性的创建bean@Conditional 源码查看// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) //
# 如何解决 Redis Spring Boot 假死问题 在使用 Redis 作为缓存数据库时,有时会遇到 Redis Spring Boot 假死的问题。假死指的是 Redis 服务器正常运行,但 Spring Boot 无法与 Redis 连接,造成应用无法正常工作。这个问题一般是由于连接池配置不当或网络问题导致的。下面我们将介绍如何解决这个问题。 ## 寻找问题根源 首先,我们需要排
原创 2024-05-13 04:00:07
143阅读
前言Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot 被认为是 Spring MVC 的“接班人”,它可以帮我们自动配置,如果默认配置不能满足需求,我们还可以替换掉自动配置类,使用自己的配置。另外,Spring Boot
转载 2024-07-05 14:28:11
132阅读
一、Ribbon简介   在微服务架构中,每一个业务都可以成立一个独立的服务。每个服务之间需要都需要相互访问。就需要用到ribbon+rest或者用feign。我们先聊聊ribbon+rest的调用方式,feign后面再说。 Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring
目录一、默认的错误处理机制二、ErrorPageCustomizer三、BasicErrorController四、DefaultErrorViewResolver五、定制错误响应页面DefaultErrorAttributesdefaultErrorView六、如何定制Json数据 一、默认的错误处理机制当访问一个不存在的页面,或者程序抛出异常是默认效果:浏览器返回一个默认的错误页面,注意看浏
转载 2024-06-28 06:53:41
49阅读
在现代开发环境中,Spring Boot是一个非常流行的框架,它加速了Java应用的构建。然而,有时我们可能会遇到“假死没有日志输出”的问题,导致应用在关键时刻无法正常工作。本文将深入探讨这一问题,帮助你定位原因、调试并提升性能。 ### 背景定位 遇到Spring Boot假死而没有任何日志输出的情况,可能会对业务造成多方面的影响,例如用户请求超时、系统崩溃以及数据丢失等。为了更直观地评估问
# 实现Spring Boot路由排查 ## 1. 流程概述 在实现Spring Boot路由排查的过程中,我们需要先了解整个流程,然后按照步骤逐步操作。下面是整个流程的简要概述: | 步骤 | 操作 | | ------ | ------ | | 1 | 打开Spring Boot应用的启动类 | | 2 | 添加路由排查配置 | | 3 | 启动应用 | | 4 | 访问http://lo
原创 2024-05-21 07:16:04
63阅读
# Java程序假死排查指南 ## 1. 引言 在开发过程中,我们时常会遇到Java程序假死的情况,即程序无法正常执行或停止响应。为了解决这个问题,我们需要一套排查的流程和方法。本文将介绍如何通过一系列步骤来定位和解决Java程序假死问题,并给出相应的代码示例。 ## 2. 流程图 下面是Java程序假死排查的流程图: ```mermaid stateDiagram [*] -->
原创 2023-10-15 09:22:40
144阅读
# Java 应用假死排查 在开发和运维 Java 应用的过程中,我们经常会遇到应用假死的情况。应用假死指的是应用在运行过程中突然停止响应,无法处理任何请求。这种情况对于用户体验和业务连续性来说是非常严重的。本文将介绍一些常见的应对措施和排查方法,帮助您快速定位问题并修复。 ## 1. 了解假死的原因 在解决问题之前,我们首先需要了解假死的原因。常见的假死原因有以下几种: - 死锁:当多个
原创 2023-12-09 04:59:32
275阅读
本文介绍SpringBoot内置web服务器。知识点有SpringBoot默认web服务器;如何配置当前web容器;内嵌Web服务器如何切换(从tomcat到jetty);Web容器怎么自动配置;web容器启动源码解析;SpringBoot内置服务器不使用SPI机制特别说明。(一)SpringBoot默认web服务器?在SpringBoot中采用的默认web服务器是Tomcat,要了解为什么是To
转载 2023-09-06 19:28:14
260阅读
 Java本质上还是离不开操作系统,一来Java源码是用C/C++实现的,二来java进程还是需要依附于操作系统和硬件资源,有时候一些问题是操作系统级别导致的,下面的整个事件是源自一则真实的线上案例。 过程:JVM死锁导致线程不可用,然后会瞬间起N个线程,当然起再多也是不可用的,因为需要的对象发生死锁,然后耗尽文件句柄导致外部请求也就是TCP连接无法建立产生拒绝服务,看起来就像
问题项目在正式上线后,偶发性出现项目的"假死"的问题,项目无法响应前端的请求,一开始,架构师查询到存在大量锁表的情况,去掉了一些长时间任务的更新的事务,同时提高了JVM的-Xmx和-Xms的大小,第一天虽然情况有所缓解,在第二天访问量上去后,还是出现了假死的问题。于是,在顶着客户在抱怨的情况下,我使用Jstack保存了当时的堆信息,分析当时项目的线程情况。jstack是java虚拟机自带的一种堆栈
转载 2023-11-28 16:00:13
57阅读
18.什么情况下java程序会产生死锁?如何定位、修复?    死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待之中,没有任何个体可以继续前进。死锁不仅仅是在线程之间会发生,存在资源独占的进程之间同样也可能出现死锁。通常来说,我们大多是聚焦在多线程场景中的死锁,指两个或多个线程之间,由于互相持有对方需要的锁,而永久处于阻塞的状态。   
原因: 在使用JAVA 调用Runtime执行Shell脚本时,执行脚本可以运行,但是看日志执行到一半就会自动暂停,我自己又在服务器上手动执行Shell脚本,没有问题,这让我很疑惑。 后来我查询了所有的脚本资料,都无解,因为我是一开始开启的线程池调用Runtime以为是线程池原因,更换后也是没用,最后把问题定位在Runtime上。 废话不多说,看代码:最初的我的代码是这样的:public stat
目录概述故障回溯补充说明其他工具概述最近遇到线上故障,具体的情况就是后端服务请求一直 pending,服务经常假死重启。 但是观察 整个进程CPU + 内存消耗不是特别大, 没有明显的资源泄漏情况。故障回溯top -p 40872查看进程情况,发现没有明显的 内存和 CPU使用率过高top -Hp 40872 查看进程下的所有线程,没有明显的线程 CPU + 内存使用率过高备注若遇到 某个线程
转载 2024-02-05 12:44:34
271阅读
学习在 Spring Boot 中整合 Spring Cache + Redis ,实现数据的缓存。 Spring Cache 统一了缓存江湖的门面,它提供统一的接口,实现可以是 Redis 或 Ehcache 或其他支持这种规范的缓存框架,他们的关系类似于 JDBC 与各种数据库驱动,本文使用 Redis 实现。这种方式相对于自己手动通过 RedisTemplate 往 Redis 中缓存数据(
转载 2023-09-06 17:02:28
50阅读
如果遇到线上应用cpu飙升,并出现OutOfMemery怎么办?首先线上应用的jvm配置要养成良好的习惯,增加一下配置则可以在jvm发生oom的时候自动dump日志了  -XX:+HeapDumpOnOutOfMemoryError   -XX:HeapDumpPath=/export/log/dump/jvm-oom.log如果遇到线上应用特别消耗cpu资源怎么去排
 从根本上说,程序无响应是因为这个程序在运行时向系统请求资源,但一直处在资源不足的状态下,久而久只,出现了饿死现象。导致这个问题主要是该程序的进程优先级的原因,优先级太低,在多个程度进行资源调用时,该程序申请资源,但资源不足,请求未被批准,久而久之,就被饿死了。病毒也是一样,某一项程序申请调用系统资源,但资源被病毒长时间霸占,甚至剥夺其他刚刚得到释放的资源,造成可用资源很少,或是病毒强行
# 解决Java进程假死问题的排查方法 在开发和运维Java应用程序时,有时会遇到Java进程假死的情况。这种情况下,虽然进程还在运行,但无法响应请求,甚至无法正常退出。为了解决这个问题,我们需要排查可能导致进程假死的原因,并进行相应的处理。 ## 可能的原因 Java进程假死的原因可能有很多种,常见的包括: - 死锁 - 内存泄漏 - 线程阻塞 - 系统资源耗尽 ## 排查步骤 为了
原创 2024-03-19 07:24:42
409阅读
# Linux Java程序假死排查指南 在日常开发与维护中,Java程序的假死现象(即程序虽然仍在运行,但没有响应或无法处理请求)是一个常见的问题。对于新手开发者来说,排查这种问题可能会比较棘手。本文将系统性地讲解如何排查Java程序的假死现象,提供流程图、代码示例和相应的解释。 ## 排查流程 在我们进行排查之前,可以按照以下步骤进行: | 步骤 | 操作
原创 11月前
205阅读
  • 1
  • 2
  • 3
  • 4
  • 5