- 博客(36)
- 问答 (1)
- 收藏
- 关注
原创 接口严格做幂等操作 推荐使用分布式锁
确实,这意味着在编码时需要额外的考虑和实现,但长远来看,这是构建健壮系统的重要一步。对于那些应当具备幂等性的操作,如保存、更新、审批等操作,确保代码中实现幂等性检查是一个最佳实践。更新时,SQL语句中包含版本号的条件,如果数据已被其他事务修改(版本号不匹配),则更新失败。:通过消息队列处理业务逻辑,确保消息至少被消费一次,同时在消费者端实现幂等性逻辑,比如记录已处理消息ID,重复消息到来时忽略处理。:确保一系列操作在同一个事务中执行,如果其中任何一部分失败,则整个事务回滚,保证数据的一致性。
2024-07-02 10:24:00 288
原创 SpringBoot+FTP下载文件,单文件直接下载,多文件进行打包zip下载
【代码】SpringBoot+FTP下载文件,单文件直接下载,多文件进行打包zip下载。
2024-04-19 15:06:48 535
原创 查询数据库连接数量-数据库线程池调优
设置连接超时时间:根据连接的平均使用时长和连接数的波动情况,设置适当的连接超时时间。如果连接池中的连接较多,可以将连接超时时间设置得稍短一些,以便及时释放不再使用的连接。数据库线程池是用来管理数据库连接的,控制并发访问的数量,以避免资源耗尽和性能下降。调整最小空闲连接数:根据连接数的波动情况,调整最小空闲连接数的值。配置连接池监控和日志:添加连接池监控和日志功能,以便实时监测连接池的使用情况和性能指标,并及时发现潜在的问题。分析连接数波动情况:观察连接数的波动趋势和峰值,了解系统在不同负载下的连接需求。
2024-01-16 11:01:03 619
原创 排查GC频率 jstat gcutil命令
您可以观察不同区域(S0、S1、E、O、M、CCS)的垃圾回收百分比(以小数形式表示),以及年轻代垃圾回收次数(YGC)、年轻代垃圾回收所占用的时间(YGCT)、全局垃圾回收次数(FGC)、全局垃圾回收所占用的时间(FGCT)和总的垃圾回收时间(GCT)。使用jstat gcutil命令可以查看垃圾回收的统计信息,包括垃圾回收次数和垃圾回收所占用的时间百分比。参数pid是JVM进程的ID,interval是采样间隔的时间(以毫秒为单位),count是采样次数。
2024-01-16 10:52:02 695
原创 CPU飙升 频繁GC排查-使用jmap histro命令来查看JVM中对象的直方图
jmap是Java Virtual Machine Tool的一部分,它允许您生成JVM堆转储文件并执行各种诊断操作。可以使用jmap histro命令来查看JVM中对象的直方图。执行上述命令后,您将获得JVM堆中的对象直方图。此直方图显示每个类的实例数量和总占用空间。例如:在这里插入图片描述。参数pid是JVM进程的ID。请注意,您需要具有足够的权限才能执行此命令。
2024-01-16 10:45:12 707
原创 MySQL 的事务隔离级别是可重复读(Repeatable Read)
在同一事务中进行多次查询时,会返回第一次查询时的快照,而不是实时的最新值。为了解决这个问题,您可以将事务隔离级别设置为读已提交(Read Committed),以确保每次查询都能读取到最新的数据。在 Spring Boot 中,可以使用。当您在同一个 Service 方法中执行了一个更新(update)操作,然后紧接着执行一个查询(select)操作时,
2023-12-07 17:00:02 640
原创 checkStyle结果分析及‘static‘ modifier out of order with the JLS suggestions
【代码】checkStyle结果分析及‘static‘ modifier out of order with the JLS suggestions。
2023-12-07 11:02:33 533
原创 多线程消费KafkaDemo
在该消费者中,消费线程实现了Runnable接口,在其run()方法中实现了消费者实际的逻辑,通过调用ConsumerRecord.value()方法来获取消息。消费者逻辑可以根据具体需求进行实现。这是一段基于Java开发的Kafka消费者代码。在该代码中,我们使用了多线程机制、线程池和多个消费线程来同时消费Kafka中的消息。
2023-06-20 17:32:00 1034
原创 对sessionStorage进行加密
存到浏览器上:sessionStorage.setItem('password', window.btoa(passwordInput.value));解密:passwordInput.value = window.atob(sessionStorage.getItem('password'))用户登录成功以后开发者模式可以看到session的明文,新需求要求加密...
2022-05-18 17:23:17 695
原创 oracle导出excel数据变成科学计数法
问 题: 导出excel之后因为 column字符串太长导致导出到Excel时候变成科学计数法样式;sql语句: select column from table_name;解决办法:select '="'||column || '"' column from table_name;注 解:1.column为显示异常字段 2.table_name 表名...
2022-05-17 15:38:59 2686 2
原创 Mybatis-plus分页
Dao层import com.asiainfo.server.beijing.entity.IndexLabelHeatStatistics;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import org.springframework.stereotype.Repository;import java.util.List;import java.util.Map;/** * @Author lhj
2022-05-16 10:47:07 244
原创 Jwt工具类
import io.jsonwebtoken.Claims;import io.jsonwebtoken.Jws;import io.jsonwebtoken.Jwts;import io.jsonwebtoken.SignatureAlgorithm;import org.springframework.http.server.reactive.ServerHttpRequest;import org.springframework.util.StringUtils;import javax
2022-03-30 11:08:13 198
原创 Skip批量插入数据demo
private static final Integer BATCH_SIZE = 2000; // 批量查询的插入数据方法 public void batchSearchUploadOracle(MultipartFile file, String rptCode, String staffId, String numberType) throws IOException { List<Map<String, Object>> data = ne.
2022-03-08 13:57:38 94
原创 CompletableFuture用法
/** * 导出txt */ @GetMapping("/exportChannelRemuneration") @Scheduled(cron = "0 59 19 11 * ?") public void exportChannelRemuneration() { try { for (int i = 202001; i <202013 ; i++) { String n = ...
2022-03-08 13:51:54 191
原创 Java接口执行Shell 工具类+Controller
import com.jcraft.jsch.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.util.Properties;/** * @Description: shell 执行工具类 */public class SshCommandUtil { private static final Logger LOG = LoggerFactory.ge..
2021-12-21 17:57:07 476
转载 RSA加解密工具类RSAUtils.java,实现公钥加密私钥解密和私钥解密公钥解密
import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher;import java.security.*;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.sec.
2021-10-12 11:09:22 354
原创 Element-UI的dialog弹窗的右上角的叉号不能关闭弹窗
<el-dialog title="" :visible.sync="dialogTableVisible" :before-close="ai_dialog_close"> <el-tree :data="gridData" show-checkbox default-expand-all node-key="id" ref="tree" ...
2021-08-18 10:04:04 4398
原创 Java实现多文件上传(不确定个数)
@RequestMapping("xxx") public String fileImgSave(@RequestParam("filename") MultipartFile[] files,HttpServletRequest request){ //保存文件的路径 String realPath = request.getSession().getServletContext().getRealPath("/imgssss"); File path = new File(realPath);.
2020-11-04 10:21:27 456
原创 图片/PDF图片预览
package com.dzbh.bhdd.controller;import org.apache.log4j.Logger;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.Htt
2020-10-24 15:17:45 330
原创 解析xml转成对象
import com.alibaba.fastjson.JSONObject;import org.jdom2.Element;import org.jdom2.JDOMException;import org.jdom2.input.SAXBuilder;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import java.util.LinkedList;
2020-10-16 17:35:11 935
原创 文件上传保存到本地磁盘
package com.dzbh.util;import com.dzbh.model.DownFilePath;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import java.io.File;public class FileUploadUtil { /** * 上传文件 * @param request * @
2020-09-29 16:27:43 925
原创 MapperXml增删改查生成工具
/** * */package com.dzbh.util;import com.dzbh.model.Dkdd;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;/** * @className:MybtisSqlUtil.java * @Title: MybtisSqlUtil * @Description: TODO(用一句话描述本文件) */
2020-09-29 16:24:41 356
原创 Get请求下载文件到浏览器(解决乱码)
package com.smjrfwpt.util;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net.URLEncode
2020-09-25 11:12:06 1245
原创 利用反射获取getter方法转换成map
package com.bx.test;import com.bx.pojo.Tbbhinfo;import java.beans.Introspector;import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.PropertyDescriptor;import java.lang.reflect.Field;import java.lang.reflect.Invocati
2020-09-22 10:03:38 245
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人