自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(82)
  • 收藏
  • 关注

原创 springboot国家化多语言实现

公司在做国际化项目时需要匹配多语言环境,通过spring实现i18n国际化方便快捷。

2025-05-07 20:16:47 425

原创 通过ThreadLocal存储登录用户信息

项目中经常需要用到登录用户信息,spring项目中可以选择通过ThreadLocal存储登录用户信息。

2025-04-27 17:43:26 431

原创 java.lang.OutOfMemoryError: GC overhead limit exceeded如何解决

纸上得来终觉浅,绝知此事要躬行。有时候还是喜欢可以直接解决问题的方法。当然应该也可以通过修改启动参数解决这个问题,大家可以自己尝试下。

2025-04-11 16:57:55 268

原创 java实现动态修改表数据,方便扩展

通过优化更改接口,只需要前段传入要更改的字段和值,即可实现表格任意字段的更改,减少了开发量,提高了开发效率。

2025-03-26 11:09:34 340

原创 SpringBoot集成MybatisPlus

简介 | MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。mybatisPlus集成了很多现成的方法,可以快速的实现单表的增删改查。生成的代码未必满足业务的需求,可以根据自己的需求微调一下,比如user类添加了@Accessors(chain = true)注解,可以实现链式赋值,主键也手工增加了@TableId(type = IdType.AUTO)注解。

2025-03-25 18:09:04 382

原创 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have membe

开发中遇到这个错误,大概率是jdk和项目需要的不一致导致的。比如我安装了jdk21和jdk1.8,项目需要的是1.8.此时需要修改项目的配置。

2025-03-25 12:01:05 177

原创 canal集群部署

配置zookeeper集群地址:canal.instance.global.spring.xml 改为classpath:spring/default-instance.xml。包含inbound(canal server读取binlog的网络带宽)和outbound(canal server返回给canal client的网络带宽)。「canal.instance.filter.regex」 mysql 数据解析关注的表,Perl正则表达式.多个正则之间以逗号(,)分隔,转义符需要双斜杠()

2025-03-13 00:18:33 694

原创 springcloud gateway通过数据库获取路由信息

/ JSON 字符串,如 [{"name":"Path", "args":{"pattern":"/api/**"}}]// JSON 字符串,如 [{"name":"StripPrefix", "args":{"parts":"1"}}]`uri` varchar(200) NOT NULL COMMENT '目标服务地址(如 lb://user-service)',`order` int(11) DEFAULT '0' COMMENT '路由优先级',return "路由刷新成功";

2025-03-12 23:05:25 1164

原创 springcloud gateway搭建及动态获取nacos注册的服务信息信息

这里只是个简单的调用,主要目的是走通微服务调用的流程,后续会不断完善权限配置等。

2025-03-12 01:34:29 414

原创 nacos下载及安装

github下载较慢,推荐下面的下载链接点击下载和试用下载最新稳定版默认情况下,Nacos 使用内置的(单机模式无需修改)。如需使用(生产环境推荐),需修改配置文件:打开。3.添加nacos数据库,初始化数据库执行config里面的mysql-schema.sql。

2025-03-11 23:03:53 267

原创 在 IntelliJ IDEA 中配置 Git

通过以上步骤,你可以在 IntelliJ IDEA 中成功配置 Git,并使用其强大的版本控制功能。如果遇到问题,可以检查 Git 路径是否正确,或者查看 IDEA 的日志文件以获取更多信息。如果 IDEA 自动检测到 Git 路径,可以直接使用默认值。在配置之前,确保你的系统已经安装了 Git。输入远程仓库的 URL,选择本地目录,点击。字段中,输入 Git 的可执行文件路径。选择要提交的文件,输入提交信息,点击。中,可以配置是否自动导入外部更改。文件,列出需要忽略的文件或目录。Windows:通常是。

2025-03-11 14:16:26 716

原创 gitlab add an ssh key 多个ssh配置

代码能够正常下载下来,则配置完成。

2025-03-11 14:09:14 465

原创 基于火山引擎的DeepSeek-V3 api实现简单的数据查询功能

ai迅猛发展,ai无处不在,用好ai事半功倍,程序员要学好ai的使用,ai以后会成为一个普遍使用的工具,谁使用谁受益,谁不使用谁就会被慢慢边缘化。

2025-03-07 19:24:24 778

原创 python查询es超长日志,然后针对性的做日志压缩

随着系统规模的不断变大,日志规模也变得越来越大,很多服务每天的日志量都超过了1TB,所以需要对超长的日志进行统计,然后对超长的日志做优化。

2024-12-10 11:26:43 272

原创 数据库分库分表策略

随着数据规模的增大,单库的性能和成本不满意满足日常需求,需要进行分库分表。

2024-12-05 18:10:30 450

原创 定时任务删除MongoDB历史数据

这里是简单的删除历史数据逻辑,可以参考执行,分布式锁是为了防止重复调用,实际使用的时候也可以不用分布式锁。然后定时调用这个删除接口即可不断的删除历史数据了。

2024-11-28 13:31:10 827

原创 通过注解控制是否打印日志

随着调用量增大,es日志越来越多,为了减少日志输出,降低成本需要减少查询类日志的输出。

2024-11-12 14:11:15 283

原创 python查询日志,并组装sql,修复缺失的数据

由于mysql链接超时波动,导致数据确实,需要根据日志填补数据。

2024-11-07 17:45:47 421

原创 获取配置的shardingsphere分库分表的数据库链接,并连接每个分库分表执行数据归档逻辑

这里重点是获取配置文件中分库分表的配置。然后调用服务的时候拿到链接配置遍历链接和分表,实现每个分库分表的查询和数据的处理。

2024-10-10 16:39:12 657

原创 python爬取网页接口数据,以yearning为例

【代码】python爬取网页接口数据,以yearning为例。

2024-09-05 18:56:25 256

原创 mybatisplus使用OptimisticLockerInnerInterceptor实现版本号乐观锁

当要更新一条记录的时候,希望这条记录没有被别人更新乐观锁实现方式:取出记录时,获取当前 version更新时,带上这个 version执行更新时, set version = newVersion where version = oldVersion如果 version 不对,就更新失败。

2024-09-05 15:25:51 1045

原创 redis缓存和数据库通过延迟双删除实现数据一致性

问题1:如果先修改数据,再更新缓存,如果此时有并发查询,则第二个线程在修改数据和更新缓存之间查询的时候,查询到的数据是旧数据,导致数据不一致。并发情况下如果第二个线程查询到旧数据后,在第一个线程第二次删除缓存后再更新缓存,则会导致后面查询到的数据是旧数据,导致数据不一致。问题2:如果先修改数据,再更新缓存,如果此时修改数据成功,但是更新缓存失败,则会导致后面查询到的数据是旧数据,导致数据不一致。此时可以解决先修改数据,再更新缓存多线程读取到旧数据的问题,但还不能完全解决缓存一致性问题。

2024-09-03 18:22:13 616 2

原创 python使用selenium,实现简单爬虫功能

ma有个朋友想爬取一些数据,让我帮忙搞下,我也比较菜,不怎么用python就随便搜了点资料尝试下。

2024-09-03 15:42:07 1190 2

原创 springboot配置两个MongoDB

本来是按basePackageClasses的方式实现的,结果两个MongoDB只有一个生效,怀疑是dao在一个包里面的原因,改成放在不同的包里面就正常了。错误代码:@EnableMongoRepositories(basePackageClasses = orderInfoPrimaryDao.class, mongoTemplateRef = "primaryMongoTemplate")

2024-08-28 16:31:51 930 1

原创 java利用二进制数字字段存储信息

在做系统开发的时候,经常需要增加一些字段,但是增加字段的成本比较高,需要改动的地方比较多,所有一些状态标识可以使用已有的数字类型的扩展字段存储,减少改动成本。

2024-07-22 16:07:21 308

原创 mysql压缩文件包安装(windows)

mysql安装分为可执行文件安装和压缩文件安装,可执行文件安装尝试过多次不能自定义设置数据库文件的位置,不是很方便,毕竟c盘空间有限。所以比较喜欢通过压缩文件安装,可以通过my.ini文件设置db文件的路径。

2024-05-14 16:40:45 496

原创 12个乒乓球,有一个次品,不知轻重,用一台无砝码天平称三次,找出次品,告知轻重?

算法题考察的是大家的逻辑思维能力,看来自己还是太菜了。学习不思则罔,思而不学则殆。学无止境,要不断学习进步!

2024-05-13 19:01:00 3516

原创 接口数据脱敏实现方案

此处的加密数据明文存储在redis里面,查询的时候根据rediskey获取数据,并记录操作日志。此处是为了统一所以采用此种方式,也可以针对单个信息直接接口查询记录操作日志,但是接口会比较多/*** 序列化注解自定义实现* JsonSerializer:指定String 类型,serialize()方法用于将修改后的数据载入*/@Autowired@Override。

2024-05-09 17:30:41 420

原创 spring全局异常处理类ExceptionHandler获取request入参

项目中需要用到的数据校验、异常捕获,所以会用@ExceptionHandler方法,对Controller做统一的全局异常处理。当发生异常时,需要记录异常的url、入参、出参、错误信息等。但是request的inputStream已经读取过一次,此时拿到的request是空的。

2024-04-22 17:04:59 1182

原创 canal通过rocketMq同步数据延迟delay问题优化

mq发送延迟,最大延迟达到了1小时。

2024-04-22 14:35:20 1073 8

原创 给20w用户发优惠活动的短信,让用户领取优惠券,问怎么设计

我们经常有一些业务需要发送优惠券给用户,优惠券发放有两种方式,一种是直接发送,一直是给用户领取,还有一些是需要支付的。此处以发送短信给用户领取为例。此场景类似于京东app发送话费优惠券短信给用户,用户点击链接跳转到网页或app领取。

2024-04-17 16:17:45 410

原创 getOutputStream() has already been called for this response

在做java导出Excel数据的时候,接口层面需要有HttpServletResponse的入参来设置输出流然后执行的时候报getOutputStream() has already been called for this response错误。

2024-04-16 19:53:20 868

原创 java实现根据sql动态下载数据到excel

由于生产数据库不能直接连接下载数据,所以需要在监控系统上做一个根据sql动态查询并下载数据的功能。

2024-04-16 19:10:24 487

原创 如何升级node.js版本

如果你使用的是npm(Node Package Manager)或Yarn等包管理器,它们可能也提供了更新Node.js的功能。具体步骤取决于你使用的包管理器,你可以查阅相关文档或在线资源来了解如何使用包管理器来更新Node.js。无论你选择哪种方法,都建议在升级Node.js之前备份你的代码和项目,以防万一出现任何问题。同时,也要注意检查你的项目依赖是否与新版本的Node.js兼容,以避免升级后出现运行错误。访问Node.js的官方网站,下载对应你操作系统的最新版本安装程序。

2024-04-12 11:44:12 28485

原创 Can not set final java.lang.Class field com.baomidou.mybatisplus.core.override.MybatisMapperProxy.ma

多数据源使用时,不能正确创建数据源连接。

2024-04-10 18:12:06 789

原创 多线程实现Scheduler定时任务

在Spring框架中,@Scheduled注解用于标记一个方法作为定时任务,它使用cron表达式来定义任务的执行频率。对于cron表达式定义的定时任务,如果上一个任务的执行还没有完成,下一个任务的执行行为取决于你使用的调度器(scheduler)以及任务的配置。Spring的@Scheduled注解默认使用的是单线程的,这意味着如果上一个任务还在执行,下一个任务的触发将会被阻塞,直到上一个任务完成。因此,在这种情况下,下一个任务不会在上一个任务还没执行完的时候就开始执行。然而,如果你配置了多线程的。

2024-03-29 16:04:20 561

原创 springcloud+nacos服务注册与发现

看了下官方的demo,直接使用的话有很多jar包缺失或者版本号没有指明。可以参考他的demo代码。比较全。

2024-03-23 13:21:27 1242

原创 nacos-config实现配置中心功能

在本地、开发、测试、uat、生产等环境中通过修改启动参数-Dspring.cloud.nacos.config.namespace=local,来获取不同环境的配置,实现不同环境的配置隔离。这是个简单可行的demo,有什么不足或者需要完善的地方欢迎交流指正。

2024-03-22 19:49:14 438

原创 灰度方案设计

【代码】灰度方案设计。

2024-03-21 11:35:23 238

原创 redis实现分布式锁

使用时先lock 再在finally里面release。原理是利用redis的setnx命令。

2024-03-14 16:16:49 362

空空如也

空空如也

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

TA关注的人

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