自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 利用 Nginx 代理请求后如何获取客户端真实 IP 地址

当接收到 request 的请求 IP 后,获取的都是服务器的地址,导致不能区分出请求来源。但是当请求通过 NGINX 道理后只能获取到代理服务器的 IP ,不能获取到真实 IP。业务需求中会有获取客户端 IP 的情况,可以通过 request 方法获取到。

2024-01-13 15:05:09 630 1

原创 Springboot 项目中获取 IP 地址

业务中会有记录用户操作行为日志的需求,分别记录了用户名、操作内容、操作时间、操作 IP 等信息;如果请求连接被 NGINX 代理后获取的就是 NGINX 的地址,获取不到原始地址。后续会发布解决办法。

2024-01-13 14:55:55 816 1

原创 使用 equals 方法比较

说明:对于Integer var=?在-128至127之间的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。所有的包装类对象之间值的比较,全部使用equals方法比较。

2024-01-04 17:39:21 374 1

原创 线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险

1)FixedThreadPool和SingleThreadPool:   允许的请求队列长度为Integer.MAX_VALUE,可能会堆积大量的请求,从而导致OOM。线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。2)CachedThreadPool:   允许的创建线程数量为Integer.MAX_VALUE,可能会创建大量的线程,从而导致OOM。

2024-01-04 17:37:15 384 1

原创 (二) 安装 Arthas

当使用快速安装方式在线上环境进行连接Java服务的时候,很有可能因为线上环境无外部网络访问权限,导致Arthas无法获取 arthas-core 等jar包,无法运行。将下载的 jar 包放到服务器上,运行 jar 包。这时候就需要全量安装Arthas包。: ( 包大小13MB )

2024-01-03 16:34:25 883 1

原创 (一)Arthas 简介

Arthas是 Alibaba 开源的Java应用诊断利器,深受开发者喜爱。Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的Tab自动补全功能,进一步方便进行问题的定位和诊断。

2024-01-03 16:02:45 355 1

原创 问题排查 Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

经过排查日志、查找相关资料发现 JAXB api 被认为是 Java EE api,因此不再包含在Java SE 9默认的类路径。并且在 Java 11 完全从 JDK 中删除。要在项目中手动引入 JAXB API 相关依赖。--maven中引入-->

2024-01-02 13:49:17 507 1

原创 使用 JPS 和 JMAP 排查并下载 Head Dump 文件

业务系统在开发的过程中,会容易出现对象的引用未被垃圾回收器收集,会出现一直占用回收不掉的情况,而且当内存占用的一定程度的情况下,会频繁出现 Full GC 的情况,导致 CPU 占用过高,服务宕机。微服务使用 Springboot 框架开发,数据库使用的是关系型数据库 Mysql,web 应用服务器使用的是 Tomcat。前端及其他中间件模块暂且不表,此篇内容只针对后端服务的问题排查。在 Linux 系统环境下部署的多个微服务,其中一个模块的微服务会在运行过一段时间后,服务宕机,导致整体服务不可用。

2024-01-02 11:02:57 623

原创 Non-terminating decimal expansion: no exact representable decimal result.异常解决办法

出现这个异常的原因在于 BigDecimal 是不可变的、任意精度的有符号十进制数,所以可以做精确计算。但在除法中,准确的商可能是一个无限长的十进制扩展;例如,1 除以 3 所得的商。我们在做除法时,没有指定舍入模式,并且无法表示为准确的结果,因此抛出了这个异常(java.lang.ArithmeticException)。这里要根据业务选择合适的方法没有最好的只有最适合的。本文采用的是在divide运算时指定保留两位小数点的方法解决。

2023-11-24 14:21:26 3662 1

原创 Cannot load driver class: com.mysql.cj.jdbc.Driver

Springboot 项目 运行后控制台报错。Cannot load driver class: com.mysql.cj.jdbc.Driver安装的 MySQL 数据库 版本是 8.x.x 的,但是项目配置的依赖是 5.x.x ,导致版本不一致。修改:Mysql 驱动:driverClassName: com.mysql.cj.jdbc.DriverMysql 依赖:<dependency> <groupId>mysql</gro..

2022-05-09 14:27:02 261

转载 Uncaught TypeError: XXX is not a function 解决

Uncaught TypeError: XXX is not a function 解决

2022-04-26 21:36:12 602

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除