
JAVA
文章平均质量分 81
qyhua
专业软件开发。
展开
-
Sentinel实战教程:流量控制与Spring Boot集成
Sentinel控制台的规则配置方法。Spring Boot 2.1与2.5版本的集成技巧。实战中常见的配置与问题排查方案。掌握Sentinel不仅能提升系统稳定性,还能在高并发场景下从容应对流量洪峰!原创 2025-04-15 22:51:38 · 963 阅读 · 0 评论 -
充电桩设备升级扩展多段计费
某省某市的一个充电桩项目近日收到业主需求,需在国庆节增加一个时间段(深谷计费段),但充电桩设备仅支持4段(尖时段,峰时段,平时段,谷时段),今天已是23号下周就是国庆了任务时间紧,如果改充电桩设备并不能保证可以按时交付完成,原因:硬件升级开发不好评估:开发,与平台调试对接,测试,还要升级每台桩…最后决定使用软件扩展实现,下面我们详细介绍。原创 2024-09-24 18:40:15 · 846 阅读 · 1 评论 -
java.io.IOException: Too many open files 分析与解决
当前项目是用来接收充电桩报文的前置服务器,每台充电桩占用一个TCP连接,即1个连接也就是1个文件描述符,项目上线已有几个月,随着业务的增加,充电桩的数量也相应增加,当前的充电桩从原有的100多台慢慢增加到一千多台,也就是说单单连接就占用1000多个文件描述符,加上就用本身的一些如进程通信定时器,文件日记等等的文件描述符,也就超过1024,所以产生了些错误。在修复后,为了明确应用占用了多少文件符,我们再次查看该应用发现有1627个文件描述符。在 Linux 中,每个进程可以打开的文件描述符的数量是有限制的。原创 2024-09-13 13:22:20 · 2355 阅读 · 0 评论 -
mvn常见报错:Failed to read artifact descriptor for 解决
可能存在本地Maven仓库中的工件或元数据损坏。尝试手动从本地仓库中删除相关工件。如果问题仍然存在,请考虑使用另一个可能包含所需依赖项的Maven仓库。中指定的仓库是可访问的,并且包含所需的依赖。有时,问题可能是由于临时网络问题引起的。确保您的互联网连接稳定,并再次尝试Maven构建。如果问题与过时或缺失的元数据有关,这可能会解决问题。中错误消息中提到的工件的依赖坐标。如果是多模块项目检测子模块或父模块是否已安装,通常需先安装父模块。项目打包时所需的依赖包不存在本地仓库,或本地仓库文件存在问题。原创 2024-02-06 22:57:30 · 5378 阅读 · 0 评论 -
JAVA 使用try捕获异常处理
块是 Java 中异常处理机制的核心部分,允许开发者捕获和处理运行时的异常,避免程序在遇到异常时直接崩溃。try块通常与catch和finally块一起使用,用来捕获异常并确保资源得到正确处理。原创 2024-02-06 23:07:53 · 502 阅读 · 0 评论 -
如何避免缓存雪崩发生?
服务器缓存雪崩指的是中的大量缓存数据在短时间内同时过期或失效,导致大量请求直接打到后端数据库或其他数据源,瞬间增加数据库负载,从而可能引发系统性能下降或宕机的现象。缓存雪崩通常是大规模缓存同时失效的结果,或者是因为缓存系统出现了故障或被攻击导致无法正常工作。通常的服务部分图正常情况如下图:如上图:正常情况大量的请求都走高速缓存查询这步,只有缓存不存在才会请求数据库,请求数据库的同时也会把数据加载到缓存。原创 2024-02-05 22:34:30 · 813 阅读 · 0 评论 -
TCP协议传输中的粘包和拆包
在网络通信中,TCP协议是最常用的传输层协议之一。然而,在使用TCP协议进行开发时,开发人员经常会遇到粘包和拆包的问题。这两个问题不仅常见,而且与数据的发送和接收方式密切相关。本文将详细探讨TCP协议中的粘包和拆包现象,以及它们产生的原因和可能的解决方案。原创 2024-01-02 16:13:21 · 775 阅读 · 0 评论 -
报表的设计思路
在任何项目中,数据都扮演着至关重要的角色。而报表则是呈现和分析这些数据的关键工具。一个设计良好的报表不仅能够清晰地展示信息,还能为决策提供有力支持。因此,掌握报表设计的艺术对于数据分析师和项目管理者来说都是不可或缺的技能。原创 2023-12-23 12:23:32 · 780 阅读 · 0 评论 -
上位机编程:CP56Time2a格式精讲
总的来说,Cp56Time2a格式使用了12个字节来表示完整的日期和时间信息,包括秒、毫秒、日、月、以及年份。原创 2024-01-20 07:00:00 · 2648 阅读 · 0 评论 -
相关8小时(时区问题)汇总
开发测试的时候项目的时间都是正常的,上线了就可能会发现:前端时间、后端时间、MySql数据库时间查询出来相差 8 小时,11小时,13小时等,这通常是因为环境引起的,,上线时都使用云服务器,而云服务器许多系统默认使用 UTC 时间,而不是本地时区。如果没有正确地转换时间,就会(尤其是在中国,UTC 和中国标准时间(CST)有 8 小时时差)。原创 2023-12-13 17:18:56 · 666 阅读 · 1 评论 -
一个开源好用的java验证码框架
提供的验证码工具是一个轻量级的 Java 库,常用于生成图形验证码。这个库基于 Kaptcha 开发,旨在为开发者提供更加简便、灵活的验证码生成与集成方法,主要用于 Java Web 应用中。原创 2023-12-26 16:04:44 · 2040 阅读 · 0 评论 -
RabbitMQ 安装,配置,java接入使用(详细教程)
RabbitMQ 最新版 安装,配置,java接入使用(详细教程)原创 2024-08-22 23:58:05 · 4777 阅读 · 0 评论 -
springboot2 配置连接多个 redis
springboot2 配置连接多个 redis的两种方案原创 2023-12-05 09:47:06 · 2046 阅读 · 0 评论 -
【云快充协议】计费规则时间分割48个段
原始协议文档: 代码实现时间切割,(每半小时为一个费率段,共 48 段)代码说明:主要功能是处理业务时间,它根据云快充的充电协议计费规则 ,将一天的时间分为48个时间段,并为每个时间段分配一个类型。以下是代码的详细解释:方法 1:方法 2:方法 3:方法 4:方法 5:原创 2023-12-01 14:56:26 · 1597 阅读 · 6 评论 -
分布式环境防止重复提交请求(Redisson分布式锁)
在分布式系统中,防止重复请求是一个常见的问题,尤其是在高并发场景下。Redisson是 Redis 的一个 Java 客户端,它可以有效利用 Redis 的分布式锁来防止重复请求。以下是使用 Redisson 防止重复请求的基本思路和实现方式。原创 2023-12-05 11:19:39 · 717 阅读 · 0 评论 -
关于java开发BigDecimal类的一些应用经验分享
BigDecimal是处理高精度计算的核心类,正确的创建、运算、舍入和比较方法非常重要。对于需要确保精度的业务场景,合理使用BigDecimal能够有效避免计算错误。原创 2023-05-23 10:22:51 · 2643 阅读 · 1 评论 -
JAVA线程池的线程数量配置
线程池的数量设计多少,应结合代码与所运行环境情况配置其运行数量。原创 2024-05-25 12:16:36 · 701 阅读 · 0 评论 -
解决:java.util.concurrent.RejectedExecutionException
当前这个系统这个线程池的线程是用来处理传的是状态,大概有2千个设备,高峰期这2千个设备同时或不断发送状态信息过来,很多状态信息是重复的而且变化时间一般十几分钟,大多数信息基本是同样的状态可以忽略不处理,所以这个错误在这种业务环境下是不影响业务,也可以忽略不调整的。像这种 RejectedExecutionException 错误,表明在Java应用程序中,一个任务尝试提交到线程池()去执行时被拒绝了,具体原因是线程池达到了其配置的容量限制,无法接纳更多的任务。原创 2024-05-27 17:11:49 · 1566 阅读 · 0 评论 -
JAVA在Spring框架多线程时调用服务类方法
我们在开发Web的项目时,有时候我们想在线程的环境下使用@Service或@Component 注解的服务类方法,多线程下是不能直接调用,以下总结一些常用的技巧转换成可调用的形式。。原创 2024-05-23 11:46:00 · 581 阅读 · 0 评论 -
Springboot 前端传参后台接收当不存在参数bean对象时报错解决
通过配置后,有不存在的参数也不会报400错误,这样前后端开发方便多了,前端不需删除不存在的参数就提交可节约大量的时间。原创 2024-06-24 18:10:01 · 607 阅读 · 0 评论 -
前端vue后端java使用easyexcel框架下载表格xls数据工具类
一 使用alibaba开源的 easyexcel框架,后台只需一个工具类即可实现下载。原创 2024-07-06 16:08:56 · 549 阅读 · 0 评论 -
前端post提交一次会有两次请求?
总结来说,浏览器会为了安全性,在跨域请求时先发出预检请求,确保目标服务器允许跨域访问,然后才进行实际的POST请求。这就是为什么会有两次请求,一次是。浏览器自动发起的options请求,不可以直接控制,但可以通过服务端配置的方式向浏览器缓存允许直接请求,只需配置适当的。这里是执行了两次post提交,每个post都有两次(一次是。前端post只提交一次会有两次请求?跨域资源共享(CORS)策略有关,每一次类型。配置后测试再也没有发现。preflight是。原创 2024-07-20 17:49:02 · 619 阅读 · 0 评论 -
海康充电桩报文校验TCP校验和
海康充电桩报文校验TCP校验和,用 java 实现原创 2024-06-14 12:17:39 · 563 阅读 · 0 评论 -
poi导出This archive contains unclosed entries错误解决
poi导出This archive contains unclosed entries错误解决,这行代码response.reset();会把使用框架全局配置cros清除,也就是说这个请求回复不再支持cors,如果你用vue前后端分离的,如果页面域名与后台api服务域名不同,此时浏览器接收到这个会报cors错误,既终止正在请求处理的后端连接,很多人看到前面的错误而忽略了后面的,Broken pipe。解决了cors,此时浏览器与后台通讯正常,即恢复下载正常。原创 2024-08-06 18:10:40 · 1585 阅读 · 0 评论 -
SpringBoot 后端接收参数优化(统一处理前端参数)
后台使用 SpringBoot+ MyBatisPlus 框架,前端是vue开发,正常开发情况下,前端vue调用接口时如果写多参数或写错参数提交后后都会报错,特别是前端做修改的时候:例如,要修改某行通常所要修改列表的那行整行Row内空复制为一个对象entity 到 表单回显,用户修改后直接把整个entity直接丢给后端,由于entity是从列表的row复制过来了,会带有vue框架table的一些参数,如index如果后台没有就会报错,此时要排查不存在的参数。原创 2024-07-23 12:21:29 · 634 阅读 · 0 评论 -
Token 设计
Token设计,Token 的有效期,很多大厂有关Token 的设计的有效期像都被设置 2 小时。有效期的计算实际就是指从调用接口获取 Token 的时间开始算,而不是指服务器每 2 小时统一更新一次 Token原创 2024-08-18 16:52:32 · 1383 阅读 · 0 评论 -
Linux 下 RocketMQ 安装、配置与运维(详细讲解)
Linux 下 RocketMQ 安装、配置与运维 如果是内网IP外网是无法访问的,需要配置外网IP,云服务器如果使用默认配置一般是内网IP。broket 启动时默认启动脚本内存参数是使用8G内存。要更改 RocketMQ 的本地部署中的端口,您需要修改 RocketMQ 的配置文件。从上图中可以看到send_ok,说明生产端已正常发送信息到队列。从上面看,本地生产发送与接收数据正常,基本可以判断本地安装正常。执行后看到创建了个后台进程,但此时并无法看到日记。安装过程非常简单,解压。原创 2024-08-18 00:40:37 · 3192 阅读 · 0 评论 -
后台因http请求的一个参数引起java内存溢出。
增大 JVM 堆内存是最直接的解决方案,但这通常只是缓解问题的第一步。分析并优化代码才是长期解决方案。通过内存分析工具找到内存泄漏或优化内存占用,可以有效预防类似问题。优化垃圾回收则是确保在高内存压力下应用仍能稳定运行的重要手段。通过上述步骤,你应该能够找出并解决错误的根本原因。原创 2024-08-16 23:29:47 · 728 阅读 · 0 评论 -
使用HttpClient请求时报PKIX错误,配置忽略https证书请求
发现有些https的请求报错,如下图:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 这个错原创 2024-08-15 17:02:09 · 888 阅读 · 0 评论