自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 切面Aspect + 策略模式实现待办提醒功能

这里我在项目里面,定义好切面类。@Component@Aspect//这里拦截mybatis-plus底层方法//策略A@Resource//策略B@Resource//线程池@Resourcereturn obj;/** 这里用到捕获异常很关键,不能因待办出现异常而影响主流程,* 用线程池避免待办处理过慢影响主流程性能*/try{});return obj;/*

2023-11-20 00:37:35 467 1

原创 源码分析Mybatis拦截器(Interceptor)拦截saveBatch()获取不到实体id的原因

由于业务需求想在Mybatis拦截器层面获取insert后实体id去做相关业务。但是发现执行方法时,获取参数实体的时候,拿不到自增id。但是方法可以。MybatisPlus的BaseMapper执行insert方法后实体带自增id的原因是,在数据库表中设置了主键自增属性。当插入一条新的记录时,数据库会自动为这条记录生成一个唯一的自增id,并将这个id赋值给实体类中的主键属性。因此,当你查询这条记录时,实体类中的主键属性就会带有自增id。

2023-11-20 00:08:31 1346 1

原创 Java实现单号字母和数字混合且字母随着数字的递增而递增

其实总体实现思路就是,保留一个增长的数字,然后通过我们业务需求,进行求余和相除实现,而不是将字母和数字分开,各自实现。写这篇文章的时候,博主查阅了部分资料,发现大部分实现都是数字和字母剥离校验,即AA和0001分开实现,或者先纯数字后字母等等~,1 / (MAX_NUMBER + 1),得到的是字母部分的值,然后推算字母部分的实现也是差不多同样的思路,相除和求余即可。,1 % (MAX_NUMBER + 1) = 1 ,可以确认位数是 1,再String格式化,就是0001了。

2023-07-10 09:50:33 805 1

原创 设计模式之模板方法实现抽奖功能

基础抽奖类。

2023-07-07 15:31:38 630 1

原创 (源码分析)RestTemplate POST 请求对方接收不到HashMap参数原因之一

本人运用RestTemplate联调一个上游接口,本地请求成功,放到测试环境就请求失败,报错是上游提示我这边没有传参。相同的代码,在不同的环境会报错,第一时间就是请求RestTemplate版本不一致。后来也去debug,结果如下://异常请求14:32:04.685 [main] DEBUG org.springframework.web.client.RestTemplate - Writing [{proj_ids=["39***f"]}] using [org.springframework

2021-08-25 18:07:48 1324

原创 使用ByteArrayResource替换MultipartFile转换File实现RestTemplate文件上传

想必大家都会有通过 MultipartFile 接收前端的文件,然后后端通过 RestTemplate 实现文件上传。这里就涉及一个问题,可能小伙伴们看到网上大部分都是先将 MultipartFile 转换成 File ,然后再实现文件上传。其实我本人是不推荐这种实现方式的,因为这种方式可能会给服务器造成 “业务垃圾”,即有可能会在服务器上生成一些其它垃圾。因此,大家可以深入去看网上各种各样的转换。如下代码是我随便截图的:// type1File file = new File(Objects.re

2021-08-25 12:08:15 5374 1

原创 JVM永久代内存溢出的追踪和排查(元凶:SerializeConfig)

1、问题的产生线上监控出现A(这里的别名)告警,如图:

2020-11-05 16:02:53 2077 2

原创 301 Moved Permanently问题排查与解决

1、问题描述技术支持反馈通知商户通知不到。即根据商户传过来的地址(举例:http://www.A.com)进行封装(封装后:http://www.A.com?trxNo=123)并请求商户,结果是失败。2、问题排查遇到问题,首先是在机器curl下,发现出现了301 Moved Permanently。简单解释下这个错误码3xx 类状态码表示客户端请求的资源发送了变动,需要客户端⽤新的 URL ᯿新发送请求获取资源,也就是重定向。 「301 Moved Permanently」表示..

2020-11-04 15:33:27 109611

原创 ERROR - file: ../fastdfs-nginx-module/src/common.c** errno: 13, error info: Permission denied

原因:Fastdfs扩容后,正常操作,可实现文件上传等,但是通过Nginx去访问文件就报错。如图:报错主要是:ERROR - file: ../fastdfs-nginx-module/src/common.c, line: 877, stat file: /home/data2/storage/data/74/B7/Cgoel1-FhV2ADPCxAAA8MOyQVRU105.jpg fail, errno: 13, error info: Permission denied解决办..

2020-10-13 19:08:31 1144

原创 关于Centos拷贝虚拟机的网卡配置以及操作不当的可能性报错: Device eth0 does not seem to be present, delaying initialization

step0 :拷贝虚拟机并启动重要!重要!重要!:请选择【我已复制该虚拟机(P)】,如果小伙伴不选择这个选项,可能导致结果是:即使继续执行下面步骤,最后重启network的时候会很大程度上报错:Device eth0 does not seem to be present, delaying initialization。step 1:修改网卡名为eth01.1 vim /etc/udev/rules.d/70-persistent-net.rules1.2 删掉原先eth0 , 将现有

2020-08-31 00:24:59 204

原创 SpringCloud网关gateway超时排查

1.问题起因如图所示,运营人员反馈线上偶发性出现异常,然后我们获取一笔单来看,发现网关超时。2.问题排查系统用的是SpringCloud网关gateway作为服务转发。出现超时的IP和项目部署服务器的IP并不是同一个IP,假设上面异常 10.10.10.11,而项目部署服务器的IP 10.20.10.11,明显不一致导致,和预想的部署方案不一样。同时还是偶发性的报错。然后我登录到zookeeper查看,具体操作:①登录zookeeper./zookeeper/bin/zkCli...

2020-08-11 10:10:27 6833

原创 spring.cloud.inetutils.preferredNetworks、spring.cloud.zookeeper.discovery.prefer-ip-address 源码分析

1.命令意义spring.cloud.inetutils.preferredNetworks[0]=10.10.30.* //SpringCloud注入注册中心选择的网卡spring.cloud.zookeeper.discovery.prefer-ip-address=true //使用IP作为注册中心address而不是主机名(默认是主机名称);2.源码分析2.1说明:当maven引入一下spring-cloud-starter-zookeeper-discovery,即:

2020-08-10 19:39:03 11198

原创 Nginx 返回 502异常排查定位 (no live upstreams while connecting to upstream)

问题出现:线上异常告警,如图:总的来说,就是各种对外接口频繁出现偶发性的商户请求不通,同时集中在同一项目部署的应用,Nginx 502 告警,并报错日志 no live upstreams while connecting to upstream。排查过程:顾名思义:这个报错是没有上游可用,但是是什么原因导致呢?对于Nginx而言,出现这个报错存在很多的可能性,大致可以有:①Nginx资源不足 ②上游服务器异常 ③上游应用业务异常 等等。然后排查过程中,需要思考的因素蛮多的,首.

2020-06-28 10:52:02 19503

原创 记一次JVM调优排查 DUBBO Thread pool is EXHAUSTED!

问题出现:运维小伙伴反馈系统某应用出现cpu爆了,同时报Mysql、Redis异常,如下图所示:问题排查:遇到问题,马上去看日志,报错如下:DUBBO Thread pool is EXHAUSTEDCould not get JDBC Connection意思是dubbo线程满了。但是啥原因造成线程满的呢?继续排查,因为我们不知道是在哪里报的错。这时候我们需要通过JVM去排查问题了。step 1:top 命令观察 JAVA进程cpu。由于没有及时截图,所以...

2020-06-05 18:14:56 1014

原创 源码分析并解决 HttpAsyncClient 关于 Connection lease request time out 异常

问题描述:接到相应反馈后,我马上去追踪问题点。首先是定位到通知商户的类是 HttpAsyncClient 。接着去看系统的配置,如下:这是我就会去想。是连接数的问题还是连接池的问题,还是应用本身机器的的问题呢?明明是异步客户端,为啥还会频繁出现超时的问题呢?带着疑问,我就一路去追踪源码。最后找到了报错的信息点。如图。好了,找到问题的爆发点,就成功了一半。究竟具体是什么原因造成的呢?我就从源码一步一步地分析。首先是AbstractNIOConnPool类的 lease 方法.

2020-05-25 21:23:48 7342 4

原创 源码分析并解决生产环境关于关闭其中一台Fastdfs集群服务器造成异常

生产事故还原:生产中,fastdfs是以集群模式部署,但是由于运维同事需要对服务器升级,因此关闭fastdfs集群的其中一台,本以为是集群模式,按理对生产不构成影响,但实际是,运维停机其中一台fastdfs后,线上交易记录下载,商户入网图片上传等设计到fastdfs的应用都呈现偶发性异常报错,因此运维同事赶紧重新启动fastdfs,异常消除。事故分析:出现上述异常,需要有个人去搞懂异常...

2020-04-17 13:01:02 795

原创 设计模式中的抽象工厂模式、适配器模式、原型模式在实际项目中的实现

说明:由于项目涉及公司源码保密问题,个人上传了一份demo供大家参考和学习。源码地址:https://gitee.com/Leelinkai/demo1、项目概要项目名称:商户报备系统项目描述:满足商户各种产品(微信、支付宝、银联)等的报备功能,即每个产品支持商户创建,修改和查询的功能。2、如何用设计模式做好程序设计2.1 抽象工厂首先大家读完项目描述,大家可以看到,...

2020-03-22 18:39:45 635

原创 服务器停电宕机重启后可能出现的Hudson异常问题

Hudson(jenkins)是实际生产持续集成项目中起了重要的一环。但是有时候生产环境断电等特殊原因,会导致hudson启动异常等。下面将罗列本人遇到过的问题以及解决办法。1.服务器断电后重启hudson异常报错异常:Caused by: java.io.EOFException原因:工程jobs里面信息记录异常,导致hudson启动不了。解决办法:找到hudson的jobs路径...

2020-03-21 16:46:36 410

原创 C语言如何转换成计算机底层的二进制语言(MIPS)

文章开头我只想问一个问题:写了很多代码,你不好奇代码在计算机底层是什么样的吗?下面将一步一步探索这个过程。首先,大家要有个初步的认识,一次从左到右进行编译、汇编。高级语言(C语言) 汇编语言 二进制机器语言int add(...

2020-03-21 15:30:08 4736 1

空空如也

空空如也

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

TA关注的人

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