自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 BUG 记录一次clickhouse报错max_query_size超过最大限制

查询条件有个shop_id 字段,in了一大串,大概是八百多个16位的字符串,导致SQL过长超过限制。注意,max_query_size参数的单位是字节(Git issue答主说的,没验证过对不对)56KiB 没算错的话就是256个千字节,也就是256*1024 byte,(改了这个应该要重启服务,一般这些参数在配置中心的图形化页面上操作就行)某报表查询SQL报错,大意是max_query_size超过最大限制。想着改参数放大一倍处理(524288 byte)。2.改配置文件(看官网吧)

2024-05-15 09:29:01 165

原创 redis scan命令导致cpu飙升

redis频繁调用scan命令导致cpu飙升

2024-02-19 14:37:09 1564 2

原创 解决生成的insert语句内有单引号的情况

mysql执行insert语句的时候的单引号处理

2023-12-29 11:21:46 1122 3

转载 Feign 请求动态URL

调用地方必须引入 FeignClientConfiguration, 必须有Decoder, Encoder。调用类必须以构建函数(Constructor) 的方式注入 FeignClient 类。FeignClient 中不要写url, 使用 @RequestLine修饰方法。ClientCaller类。测试成功. 有点蛋疼.传入URL作为参数;

2023-12-15 09:06:14 362

转载 mysql decimal 报错( Out of range value for column)

mysql的decimal类型的长度设置为(11,2),但是插入11位数字的时候就报错,是因为mysql的decimal的11位是包含小数长度为11,插入的数据即便是整数也会保留小数位数,例如插入123,入库也是123.00,所以有时候会导致长度超长

2023-09-11 09:37:50 1896 1

原创 读写分离导致读不到刚插入的数据

前两天在做一个功能的时候,需要先插表,如果数据重复则从数据库中查询出这条数据,这段代码在测试环境并没有什么问题,但是到生产之后就会偶现的报一些错,就是读不到已插入的数据,导致后续业务出现问题。

2023-04-14 11:52:00 746 1

转载 mybatis plus 报错can not use this method for “getEntity“

可以跟LambdaQueryWrapper,例如:remove(new LambdaQueryWrapper().eq(User::getName, “Tony”));​方法的参数Wrapper​。

2023-03-28 14:41:37 1865

原创 mybatis-plus默认单页查询条数上限500导致导出数量不足

是一次只加载500条到内存,并不影响导出个数,然后就在本地连接测试库,打上断点,发现pageSize传入的是9999,但sql语句却显示 LIMIT0,500,后来在网上查询资料发现mybatis-plus默认单页查询上线是500条。项目使用了mybatis-plus,最近做一个Excel导出的功能时,条件筛选后明明有6000+条,但是一次导出却只有500条,最开始以为是。后来修改这里之后发现还是没有变化,后来查阅资料发现。需要在mybatis-plus的配置文件中设置。设置500条所以只能导出500条。

2023-03-24 17:20:49 1403

转载 SpiLoader全解析

Sentinel的SpiLoader全解析,这个类也可以作为常用工具类在我们的工作中使用

2023-01-30 17:53:24 328

原创 设计模式总结

本文内容借鉴书籍《大话设计模式》。是本人基于大话设计模式的一些总结和归纳

2022-12-12 20:43:06 120

转载 order by --- limit 导致查询速度慢

当 limit 的数据大于查询的总数据量的时候。此时使用的是文件排序,他会全表从头开始扫描,直到把整个表都扫描完。最后不管够不够 limit 的数量,都会将结果返回。这时就会导致查询速度很慢

2022-11-15 10:36:03 1409 2

转载 获取java类中的注释

获取java类、方法、字段的注释

2022-10-25 10:40:37 3155

转载 ROI LTV CPA ECPM体系讲解

ROI LTV CPA ECPM体系讲解

2022-08-01 11:04:12 1877

转载 Spring MVC 概念模型 : 接口 RequestCondition

Spring MVC 概念模型 : 接口 RequestCondition

2022-07-28 16:10:26 214

原创 自己实现一个枚举validation校验器

平时我们在进行接口校验的时候,我们会使用@Validation相关注解来帮助我们简化代码。其常用的注解其实已经能满足很大一部分需求,但是在进行枚举字段的接口校验的时候没有相关字段,尤其在我们不是使用枚举的name()方法来传递的时候,枚举的校验就需要很多类似的大段的方法来进行校验。而validation本身是提供了扩展的方法的,因此在次基础上实现了一个对枚举进行校验的注解。...

2022-07-25 21:11:12 606

原创 使用LambdaQuery()有感-通过函数式接口获取字段名称

平时使用mybatis-plus的时候,觉得那种通过函数式接口来获取字段名称的方式很新颖,有很多地方也可以用到,于是查看了mybatis-plus的部分代码,然后查阅网上资料实现了这个工具类

2022-05-17 10:10:57 10768 3

转载 创建mysql表分区的方法

mysql测试版本:mysql5.5.28mysql物理存储文件(有mysql配置的datadir决定存储路径)格式简介数据库engine为MYISAMfrm表结构文件,myd表数据文件,myi表索引文件。INNODB engine对应的表物理存储文件innodb的数据库的物理文件结构为:.frm文件.ibd文件和.ibdata文件:这两种文件都是存放innodb数据的文件,之所以用两种文件来存放innodb的数据,是因为innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储.

2022-05-12 19:26:28 2984

原创 Spring Security源码阅读

1. SecurityContextHolder 上下文持有器内部封装一个SecurityContextHolderStrategy(一种针对线程存储安全上下文信息的策略),通过配置文件初始化对应的策略,以达到获取和设置上下文的目的(SecurityContext)1.1 SecurityContextHolderStrategy 针对线程存储安全上下文信息的策略ThreadLocalSecurityContextHolderStrategy:利用ThreadLocal来存储一个SecurityC

2022-02-28 15:58:15 864

原创 gitlab CICD获取不到系统环境变量

1.背景公司使用GitLab作为代码版本管理平台,使用GitLab自带的CI/CD做持续集成。今天我需要重新部署一个新项目的环境,然后利用CI/CD进行发布。但是gitlab-runner执行过程中报了如下错误。2.解决我们是使用ssh公私钥方式认证来远程执行脚本的,这里的报错是说远程连接不上目标服务器,然后我去这个gitlab-runner所在的服务器手动使用ssh连接nginx服务器是可以连接上的,如下。既然直接在gitilab-runner所在服务器上使用ssh命令可以连接上,那说明ssh公

2022-02-24 17:39:36 3793

原创 EasyExcel校验数据抛异常需要使用ExcelAnalysisException

使用Excel导入数据的时候,避免不了校验数据这个过程,在使用EasyExcel进行数据校验的时候,在AnalysisEventListener中抛异常要使用ExcelAnalysisException而不是自己定义的运行时异常,EasyExcel会捕捉所有的非ExcelAnalysisException异常并封装成ExcelAnalysisException抛出,如下。 private void onException(AnalysisContext analysisContext, Except

2022-02-10 14:16:39 4109

原创 dubbo重试(retry)导致事务重复执行提交

1.背景公司有个模块最近有新需求,因此有些地方需要改动,而测试同学在测的过程中发现有个地方报了错让我看看,于是我看了一下报错日志,是因为数据库有重复数据,初步推断应该是在写接口导致的数据写入多条。2.排查过程​ 我先是把重复数据手动删除,然后尝试复现同事的操作。发现在编辑的时候,接口返回时长特别慢,导致了报错。然后数据库多了一条重复数据,最开始的想法是,是不是在界面的操作中出现了重复点击这个问题,于是我本地连接测试数据库进行调试。​ 我在controller层和service层都打上了断点,然后重新

2022-02-08 16:33:37 1516

原创 函数式接口的妙用

函数式接口代替策略模式,少写子类,快速开发

2022-01-17 11:26:46 2601

原创 运行时泛型获取

今天看到了FastJeson的TypeReference,便学习了一下泛型的类型擦除和如何获取泛型的类型,因此记录此文

2022-01-12 17:41:25 524

原创 生产环境配置文件有多余符号导致服务报错的排查过程,notepad++真的YYDS

一次报错的排查过程,linux上的配置文件多了一个换行,导致程序读取后报错,用cat、vi、tail -f 等命令都看不出问题,只有在notepad++中打开日志和文件才能发现问题所在

2021-12-21 16:07:40 138

原创 线上OOM解决

问题描述早上一到公司,就有同事说项目出问题了,用户登录不上,于是我们开始排查问题。先是看了一下服务器上的服务是否死掉,发现服务还在运行,然后阿里云管理界面的CPU、内存等资源是否异常,发现各项指标都还算比较正常,只是在早上8点左右CPU有一个异常升高。查看nacos发现服务从nacos下线了。于是我们在页面访问了一下接口,发现接口都在报503,大概了解情况之后,我们先把日志拷下来,然后就把服务重启了,保证用户能够先使用。然后我们开始查看日志,发现了服务有报OOM的情况[外链图片转存失败,源站可能有防盗

2021-12-16 17:11:56 636

原创 Shiro源码阅读

一. Session 用户会话1.1 Session 有状态数据上下文Session是与单个Subject(用户、守护进程等,该Subject在一段时间内与软件系统交互)相关联的有状态数据上下文。会话由业务层管理,并可通过其他层访问,而无需绑定到任何给定的客户端技术。 这对Java系统来说是一个巨大的好处,因为到目前为止,唯一可行的会话机制是javax.servlet.http.HttpSession或有状态会话EJB的,它们常常不必要地将应用程序与web或EJB技术耦合在一起。Session

2021-11-19 16:10:15 662

原创 mybatis-plus方法报错BindingException Parameter ‘query‘ not found. Available parameters are [ew, param1]

今天在调用mybatis-plus的selectList方法的时候报了这个错org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'query' not found. Available parameters are [ew, param1] at org.mybatis.spring.MyBatisExceptionTra

2021-10-26 17:27:28 3420

原创 测试服mysql突然崩溃

一.背景又是一个阳光明媚的周五,天气很好,本来平坦的一天突然出现一阵聒噪。测试和开发纷纷开始抱怨测试服挂了,连不上了,于是我们开始看问题在哪,看服务日志发现,是mysql服务连接超时。二.排查于是上mysql所在的服务器查看原因,然后发现mysql挂掉了,输入重启命令后提示以下信息[root@mysql etc]# service mysqld restartRedirecting to /bin/systemctl restart mysqld.serviceJob for mysqld.se

2021-09-10 18:00:50 1196

原创 分布式日志系统PlumeLog搭建

一.简介plumeLog是一个简单易用的java日志系统。其在日志收集方面做的很好,但在链路追踪方面只是简单集成,如果对链路追踪更感兴趣,可以参考另一个项目skywalking1.1 特点:无代码入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志基于elasticsearch作为查询引擎高吞吐,查询效率高全程不占应用程序本地磁盘空间,免维护;对于项目透明,不影响项目本身运行无需修改老项目,引入直接使用,支持dubbo,支持springc

2021-09-01 16:25:04 3915 1

转载 Mybatis-plus性能分析插件—PerformanceInterceptor

1.简介这款插件是位于com.baomidou.mybatisplus.extension.plugins包下的一款性能分析拦截器,用于显示每条 SQL 语句及其执行时间Mybatis-plus自带SQL执行性能分析插件,配置如下@Configurationpublic class MyBatiesPlusConfiguration {/** * 分页插件,自动识别数据库类型 * 多租户,请参考官网【插件扩展】 */@Beanpublic PaginationInterceptor pa

2021-08-31 09:57:29 2332 2

原创 skyWalking使用APM包部署

一.背景之前在公司做日志收集进行技术选型的时候考虑过ELK,但是由于其有点笨重,而且不支持链路追踪,于是在gitee上看到一个GVP项目Plumelog,并且在测试服进行了使用。这个项目对代码的入侵较小,但是还是需要配置,最近看到了另外一款 APM系统skywalking,这款开源软件2015年由个人吴晟(华为开发者,gitee上的Gitee封面人物中还有他的一篇专栏)开源 , 2017年加入Apache孵化器,使用java探针字节码增加技术,实现对整个应用的监控,对代码实现了真正的零侵入。Apache的

2021-08-30 15:47:59 1384

转载 ES-head 查询406

head 连接Elasticsearch6是 【数据浏览模块不能显示数据了】看一下网络发现406 错误{“error”:“Content-Type header [application/x-www-form-urlencoded] is not supported”,“status”:406}解决方法:1、进入head安装目录;2、cd _site/3、编辑vendor.js 共有两处6886行 /contentType: "application/x-www-form-urlenco

2021-08-30 14:58:05 513

原创 spring-boot连接测试环境redis-cluster报 ndoe xxxx is unknown to cluster

一. 背景有一天,同事在进行测试环境项目启动时,发现项目启动不了了,看了一下日志,发现是redis连接不上,测试又特别着急要测试即将上线的项目,因此我快速的开始了bug的解决。我们项目使用的是redis-cluster,一共部署了6个redis,其中四台是master,两台slave,情况如下。二. 问题解决2.1 百度遇到这个问题后第一时间想到的是百度,但是发现搜索了很久都没有一篇与这个问题相似的文章。于是没有办法,只能自己一点点慢慢追踪bug了。2.2 查看服务器集群信息根据提示信息,我

2021-08-30 14:46:52 820

原创 sentinel基础配置

sentinel官网:https://sentinelguard.io/zh-cn/docs一.依赖 <!--sentinel--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!--sen

2021-08-11 16:09:33 659

转载 String之常量池小结

1、String 常量池为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池。如果字符串已经存在池中,就返回池中的实例引用。如果字符串不在池中,就会实例化一个字符串并放到池中。Note:常量池在java用于保存在编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量,如String s = "java"这种申明方式。2、True OR False首先得看下 几个对象???相信很多

2021-08-11 16:05:30 377

转载 自定义systemctl服务脚本

序言篇:之前工作环境一直使用Centos6版本,脚本一直在使用/etc/init.d/xxx;系统升级到Cento7后,虽然之前的启动脚本也可以使用,但一直没有使用systemctl 的自定义脚本。本篇文章用于总结下,具体的使用方式。Centos7 开机第一程序从init完全换成了systemd的启动方式,而systemd依靠unit的方式来控制开机服务,开机级别等功能。应用篇:Centos7的服务systemctl 脚本一般存放在:/usr/lib/systemd , 目录下又有user和syst

2021-08-05 14:25:57 482

转载 docker Cannot enable Hyper-V service

已经开启虚拟化技术 并且systeminfo hyper-V 四个都显示是的时候还是不行(图是借用的)最终处理办法:在管理员模式下的命令提示符中输入:bcdedit /set hypervisorlaunchtype Auto,然后重启电脑,完美解决。...

2021-07-21 10:21:19 177

转载 visualVM安装插件,无法连接到visualVM 插件中心

1、打开网址:https://visualvm.github.io/pluginscenters.html2、在右侧选择JDK版本3、选择之后会打开相应的插件中心4、复制CatalogURL5、打开visualVM,工具->插件->设置,然后把刚才的网址粘贴进去。

2021-07-15 10:14:37 641 2

原创 记一次故障-Rancher界面突然无法访问,且K8s集群无法访问

公司使用docker单节点方式部署rancher,利用rancehr来操作k8s集群,有一天要访问rancher ui时,发现打不开,然后部署的所有容器也都不能使用,立马到服务器上查看情况,发现rancher容器还在,然后尝试进入容器时,报了错cannot exec in a stopped state: unknown,然后尝试查看rancher日志,发现可以查看E0712 15:47:03.730752 6 reflector.go:307] github.com/rancher/norm

2021-07-13 09:28:04 13012

原创 Spring Security OAuth2.0 token生成与刷新机制源码阅读

一.介绍Spring Security Oauth2是目前市面上非常流行的实现了OAuth2.0协议的权限框架。本文会介绍其是如何获取token以及刷新token的。二.AbstractEndPointSpring Security OAuth2的获取token、校验token等接口均配置在EndPoint中的AuthorizationEndpoint主要是第三方授权模式中的 获取code的流程接口 http://localhost:xxxx/auth/oauth/authorizeToke

2021-07-09 11:45:47 2586

空空如也

空空如也

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

TA关注的人

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