自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot集成h2数据库

H2是一个轻量级的内存数据库,同时也支持数据持久化,并提供了数据库管理的Web界面。在我的业务场景中,数据需要持久化,因此这里使用本地文件系统持久化模式来演示。同时,实际使用H2时也离不开Flyway的管理,因此下面的例子也将集成Flyway。

2024-09-09 16:02:12 1359

原创 springboot项目全局异常处理的三种方式

通过多次代码重构的经验积累,在最近一次从零开始的功能开发中,我决定完善项目的全局异常处理机制。项目中的主要应用场景分为两类:一是面向服务的控制层(如各类控制器),这类问题可以通过简单的 `@ControllerAdvice` 和 `@ExceptionHandler` 注解来解决;二是各种异步定时任务,对于这类场景,上述方法不再适用,因此需要采用自定义切面的方式来实现全局异常处理。经过测试和总结,找到了三种有效的全局异常处理方法。

2024-07-29 10:19:16 599

原创 服务端如何处理GZIP压缩的POST请求的两种方法

处理客户端发送gzip压缩的post请求,使用前置过滤器比较优雅,只需要写一份能够全局生效,比较推荐。如果有特殊需要,也可以使用方式二的两种方法实现。在这个过程中学习到了一个新的输入流PushbackInputStream,对于request.getInputStream流的复位重用有很好的效果,另外发送端的单元测试也实验了httpclient和restemplate两种发送压缩处理代码,特别地,对于httpclient来说构造的数据必须要指定编码,否则遇到中文会遇到乱码的现象。

2024-07-16 19:31:04 1825 1

原创 Zookeeper入门学习

在分布式组件里面,Zookeeper是一个为其他分布式服务提供协调服务的中间件。服务包含:统一配置管理、统一命名服务、分布式锁、集群管理、分布式队列、数据发布订阅

2023-04-12 22:52:40 1884

原创 基于Mysql数据库的分布式全局唯一规则id生成

首先技术经理给出的要求是规则id是一个long类型的数字,然后首部16位固定是由系统编号构成,后48位由随机的序列值构成。要求就是全局唯一。

2023-02-09 10:02:34 897

原创 mysql-group分组之后取每组最新的一条记录

有个业务场景需要获取每个设备最新时间的异常记录还有当前状态和部署位置,然后返回给前台渲染。记录一下写的sql以及里面一些小坑。

2023-02-03 17:22:59 2993 1

原创 shell编程-计算系统当前的cpu,内存,磁盘的利用率

计算系统当前的cpu,内存,磁盘的利用率。

2023-02-02 19:48:55 686

原创 一种不使用递归创建的层级树结构的泛型方法

之前有个业务需求需要将一个原数据集合根据每个数据对象中的id,pid构造成树结构给前台展示。当时通过递归的方式完成了,现在想想递归创建层级树时间和空间的消耗比较大,并且不知道层级很有可能栈溢出,所以重新想了一种方法来完成层级树的构造。

2023-01-17 15:59:55 142

原创 shell编程–循环拷贝文件到另外一个目录

一直不太熟悉shell的编程语法,正好在和其他服务联调的时候,需要我循环发送数据,我这边发数据就是从特定目录里面取数据然后发送http请求。我的想法就是写个脚本,然后注册到linux上的定时任务里面,每隔10分钟执行一次下面的脚本以此来模拟不断制造源数据然后通过数据发送服务取文件发送给消费方服务。

2023-01-10 09:09:07 1480

原创 synchronized双重检查+本地分段锁提高查询效率的方案

有这样的场景,业务系统接入了几百个下游服务,这些下游服务会根据自己的服务id频繁请求一些信息。一开始的方案是redis缓存,每次从redis去获取,但是实际生产环境发现redis也扛不住会出现获取连接池失败的错误。

2023-01-09 16:32:52 406

原创 linux自定义服务

1.在/lib/systemd/system下新建一个文件,比如test.service,内容如下。2.启动脚本test.sh。linux自定义服务。

2023-01-06 17:09:12 706

原创 springboot集成mybatis-plus实现自定义批量插入更新方法

springboot集成mybatis-plus实现自定义批量插入更新方法

2022-11-04 15:24:12 3595 1

原创 idea集成shell运行环境,解决shell输出中文乱码问题

idea集成shell运行环境,解决shell输出中文乱码问题

2022-11-03 16:31:38 3032

原创 SpringBoot集成AVRO序列化

SpringBoot集成AVRO序列化

2022-10-26 14:37:28 456

原创 redis###springboot快速集成jedis实现发布订阅

springboot快速集成jedis实现发布订阅

2022-09-28 11:15:17 393

原创 mysql存储过程_定时器&&repalce函数

现网环境,省市部署同个业务系统做级联,市级升级了新版本。由于新版本上报的数据标准和老版本存在差异,所以需要在老版本接收到之后做兼容性处理。因为不能换包,想到使用mysql定时器和replace函数,监控这张表的内容,如果监控的值存在就替换以此规避。

2022-09-05 15:29:45 412

原创 java_threadpool&redistemplate多线程发送文件

遍历某个目录下所有的文件,调用上游服务提供的发送文件接口进行文件上传,上传的时候还需要计算文件的md5码作为请求头参数,如果上传成功就删除源文件;失败则下次继续发送。1.考虑到目录下的文件数量很多,遍历文件的方法使用NIO的Files.walk2.考虑发送效率使用多线程threadpool和发送连接池化3.为了避免重复发送,使用juc的countdownlatch和本地对象锁保证数据一致性2.restemplate封装和httpclient连接池集成3.多线程文件发送4.依赖管理总结

2022-08-16 11:05:42 409

原创 java_树形结构json数据_replaceAll

背景版本兼容性问题,需要对树形结构的数据的某一属性值特殊处理,想到了两种处理方式,一种递归解析设置,另一种replaceAll正则匹配替换,最终还是选择使用replaceAll,原来replaceAll这么好用。。解决步骤1.数据结构Topology如下package entity;import com.alibaba.fastjson.annotation.JSONField;import lombok.AllArgsConstructor;import lombok.Data;impo

2022-03-24 16:41:05 855 1

原创 maven_nexus3+搭建以及本地引用

背景自己所研发的项目是内外网分离的,所以需要在内网就需要搭建maven私服。之前的老哥们用的是nexus2+,想着以后可能会升级版本以及自己的兴趣,所以预研一波nexus3+,终归还是被我搭建好了操作步骤1.安装1.下载安装包,我使用的是nexus3+2.拖到linux目录下解压3 .启动服务,查看前台是否可以访问(这里可以配置环境变量,但没必要)cd /home/centos7_enviorment/nexus/nexus-3.18.1-01/bin./nexus start前台默认密

2022-03-02 11:58:22 883

原创 java_json_json数据格式化

背景新版本代码重构,要对下游上报的数据进行Json格式化之后落盘。联调的时候发现如果上报数据里面含有特殊字符,这个时候是Json是解析不了的, 要进行特殊处理之后再格式化落盘。代码实现public static String formatJson(String str) { Object parse; try { // 先解析一遍,如果解析成功说明不包含特殊字符,直接进行格式化处理 // 这样的好处是避免对普通json数据

2022-02-28 09:39:42 1213 1

原创 mysql-存储过程-动态表名-修改表结构

mysql-存储过程-动态表名-修改表结构背景项目版本升级,有一张表需要增加字段,因为表名是随着日期动态变化的,所以打算在升级sql中写一个存储过程,实现对动态表名的结构更改。数据库是mysql5.7.35。存储过程实现drop procedure if exists add_record_col;delimiter //create procedure add_record_col() begin -- 声明当前的数据库 declare CurrentDB varchar(25

2022-02-11 14:07:49 1877

空空如也

空空如也

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

TA关注的人

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