自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (1)
  • 收藏
  • 关注

原创 为什么有些POST请求会触发两次HTTP请求?

同源策略、CORS(跨源资源共享)、简单请求、预检请求

2024-03-19 10:49:58 899

原创 重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(二)

深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)的学习笔记

2024-02-01 17:15:23 1041

原创 重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(一)

《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记

2024-01-23 14:45:45 634

原创 数据库事务隔离级别的总结

数据库隔离级别,脏读,幻读,不可重复读,RR隔离级别下的幻读问题

2024-01-18 13:05:41 946

原创 Swagger3 相关总结

openapi、API文档标准,swagger2,swagger3,spring fox,spring doc

2024-01-16 13:38:07 790

原创 傻傻分不清楚的AI、AIGC、AGI

关于AI、AIGC、AGI都是什么意思,以及他们之间的区别是什么

2023-12-12 15:23:48 3317

原创 傻傻分不清楚的分区、分库、分表

整理下分区、分库、分表相关知识点

2023-12-05 13:04:38 176

原创 Docker、Kubernetes、OCI、CRI-O、containerd、runc 之间的关系以及它们是如何一起工作的?

Docker、Kubernetes、OCI、CRI-O、containerd、runc 之间的关系以及它们是如何一起工作的?

2023-11-29 18:13:29 355

原创 看图说话:对脏读、不可重复度、幻读进行总结

什么是脏读、不可重复度、幻读?看图说话

2023-11-22 14:57:14 149

原创 Chrome和chromedriver版本不匹配导致的UI自动化测试无法运行的问题

Chrome和chromedriver版本不匹配导致的问题

2023-11-21 13:49:22 911

原创 工作中积累的对K8s的就绪和存活探针的一些认识

关于K8s中就绪探针和存活探针的一些知识点

2023-11-15 17:44:01 390

原创 基于spring-boot-starter-actuator不同版本(2.1.3和2.3.5)在K8s中做就绪存活检查相关配置的差异

springboot2.1和springboot2.3的应用,在k8s中的就绪存活检查相关配置的差异

2023-11-15 16:02:54 548

原创 如何在 Idea 中修改文件的字符集(如:UTF-8)

如何在Idea中修改文件字符集,例如:修改成UTF-8

2023-11-10 09:11:46 2092

原创 OAuth2.0系列之知识点梳理

对OAuth2.0中的四种模式以及涉及到的四种角色进行梳理

2023-08-29 17:27:39 221

原创 如何实现功能插件化

在整个插件化的方案中,会涉及到如下 3 个组成部分:插件定义(即将插件定义为一个接口)插件实现(即对插件接口的实现)和,实现了不同的扣款策略。支持插件插拔的平台(因为不知道叫啥,姑且先叫「主项目」吧)

2023-06-29 15:31:32 1079

原创 @Autowired VS @Resource

说白了就是降低对 Spring 的依赖度(PS:虽然我也不觉得退休前可能会换掉Spring)。既然人家官方都推荐了,就按着推荐的来吧(PS:不废脑细胞和时间去比较咧~感觉也没啥实际用处)。首先,两者都是通过注解来实现依赖注入。

2023-06-07 10:35:19 633

原创 Python版【行列转换】的小工具

Python文件为 matrix_transform.py,具体代码如下:"""矩阵转换(即对源文件中的行列进行转换后,将结果保存到新的文件中),目前支持两种文件格式:txt 和 excel"""import osimport numpy as npimport pandas as pddef transformTxt(input, output): """将txt中的内容进行行列转换 使用示例: * 将 /Users/suns/demo/input.txt 文

2023-06-01 13:33:33 335

原创 docker-compose重新启动Mysql报错changing ownership of ‘/var/lib/mysql/mysql.sock‘: No such file or direct

docker docker-compose mysql chown: changing ownership of '/var/lib/mysql/mysql.sock': No such file or directory

2023-01-29 13:22:38 3651 4

原创 如何计算单元测试的覆盖率

单元测试,计算语句覆盖率、分支覆盖率、条件覆盖率、分支条件覆盖率、路径覆盖率

2023-01-11 14:52:40 4371

原创 如何在 Gitlab上 修改项目的默认分支

gitlab 修改 项目的 默认分支

2022-12-05 11:09:06 4539

原创 鹿蜀:一个基于日常开发任务体现开发人员工作状况的系统

为了能够更方便、更直观的让Boss,让同伴,让自己了解到自己近期的工作情况,我拉了一个小队,利用农闲的时间,结合已有的项目管理系统中的数据,开发了一个新系统,名叫 “鹿蜀”。所谓行动就是版本迭代,每个版本迭代都会有一个负责人和一个行动代号。用来展示行动中的开发任务,测试任务,以及出现的Bug。用来展示行动中的每个人的开发任务,以及产出的Bug数量。按月/季度统计,这个月/季度所有的开发任务,测试任务,以及产出了多少个Bug。按月/季度统计,每个开发在这个时间段内,所有的开发任务以及产出的Bug。基于

2022-12-05 10:55:06 345

原创 SELECT ... FOR UPDATE 到底是锁表还是锁行?

对于 SELECT …FOR UPDATE 我们知道除了有查询的功能外,还会对查询结果进行加锁,而且是悲观锁。OK,数据都准备好了!让我们通过下边三个场景来简单说明下 FOR UPDATE 到底是「行锁」还是「表锁」。由于 name 不是主键也没加索引,所以是表锁,所有数据此时都不能 update。只锁定 code=007 的数据,行锁,此时除该条数据以外都允许 update。只锁定 id=1 的数据,行锁,此时除该条数据以外都允许 update。WHERE 中使用带索引的字段。WHERE 中使用主键。

2022-09-26 16:24:54 1649 1

原创 Pod 健康检查和服务可用性检查

K8s 对 Pod 的健康检查是通过三类探针来实现的:LivenessProbe、ReadinessProbe、StartupProbe,其中以 LivenessProbe、ReadinessProbe这个两个探针最为主要。其实,这里有一个问题开始对我是有一些困扰的,那就是:到底 K8s 是通过什么东西(组件)来启动探针,进而对 Pod 进行定期的健康检查呢?答案是:kubelet。

2022-09-26 10:30:54 1319

原创 当 resources.limits.cpu 遇到 livenessProbe,进而导致 Pod 不断重启

K8资源管理,resources.limits.cpu,livenessProbe,Pod不断重启

2022-09-22 16:15:33 1148

原创 当 K8s资源管理 与 JVM参数(Xms、Xmx)相遇

K8s 资源管理 JVM Xms Xmx

2022-09-21 16:24:52 3630 1

原创 K8s 之 ReadinessProbe(就绪探针)使用的迷惑

K8s ReadinessProbe 就绪探针 Springcloud

2022-09-20 11:13:58 1308

原创 《深入理解JAVA虚拟机(第2版)》—— 学习笔记2

本章主要内容是 运行时数据区、HotSpot虚拟机对象、对象访问定位等。

2022-09-02 11:32:34 404

原创 《深入理解JAVA虚拟机(第2版)》—— 学习笔记1

主要摘录了本书第一章的关键(我个人比较关心的:>)内容。

2022-08-30 10:53:20 215

原创 JVM HotSpot 之 内存结构演进过程

这样就造成了各个 JVM 厂家,对自家的 JVM 中的。又分为三个部分,Eden、From Survivor、To Survivor,他们占据新生代空间的比例为 8:1:1(可调节)。在 1.8 中,内存结构主要由三大块组成:堆内存、元空间、栈。是 HotSpot 的专属概念,例如: JRockit(Oracle)、J9(IBM) 中就没有。通过上边表格我们可以看出来,1.6、1.7、1.8 这三个版本,变化最大的是。不同的 JVM 版本,方法区中存储的数据略有不同(详见上图)。类似(接口 = 方法区;..

2022-08-25 18:43:32 312

原创 Junit4 之 assertThat

assertThat 是Hamcrest单元测试框架提供的方法。Hamcrest提供了对多种语言的支持。

2022-08-18 09:40:21 1025 3

原创 Mockito 之 verify 使用方法

校验 BetaService.sayHello 中的 AlphaService.eat 方法被调用的时候,作为参数的 EatInfo 对象中属性 food 值为 “饺子”, 属性 address 值为 “你家”校验在 BetaService.sayHello 中方法的调用顺序是 alphaService.init、alphaService.say、alphaService.eat。校验 BetaService.sayHello 中调用了 AlphaService.init 的次数。......

2022-08-17 14:04:14 5744

原创 Mockito 如何 mock 静态方法

当 mockito 进化到了 3.4.0 版本以后,也开始对静态方法 mock 进行了支持(主要是通过 mockito-inline 包)。当多个单元测试都使用了同一个 static mock 对象,且使用完成后都没有进行 close。此时,若这几个单元测试用一起执行,第一个单元测试占用了 static mock 对象,第二个单元测试就没有办法再占用了。如果你的很多单元测试中都用到了 mockStatic(HTTPClient.class),且觉得在每个单元测试当中都写一遍 mockStatic()…...

2022-08-17 10:18:55 35140 6

原创 单元测试编写规范

为了统一司内的单元测试编写风格,且让大家无需考虑不重要的事情(无脑按着条条框框执行就好了),专注于写单元测试。基于司内的具体情况,制定了一套简单的《单元测试编写规范》,在这里进行分享,希望能给大家提供一些思路。........................

2022-08-05 09:50:32 1714

原创 Java 诊断工具之 Arthas

Arthas 是 Alibaba 开源的 Java 诊断工具。Ta 可以动态跟踪 Java 代码,实时监控 JVM 状态,可以在不中断程序执行的情况下轻松完成 JVM 相关问题排查工作。支持 JDK 6+,支持 Linux/Mac/Windows。

2022-08-04 13:47:29 550

原创 K8s 之 节点亲和性的调度策略(NodeAffinity)

NodeAffinity是Node(节点)亲和性的调度策略,用于替换掉NodeSelector的调度策略。

2022-07-20 11:31:54 1462

原创 kubectl 常用命令

进入 POD 容器kubectl --namespace=${namespace} exec -it ${pod_name} -c ${container_name} -- sh 例如:kubectl --namespace=test exec -it annoroad-alpha-c9bbf5794-29fjt -c annoroad-alpha --sh或kubectl --namespace=${namespace} exec -it ${pod_name} --contai.

2022-07-20 10:45:24 719

原创 Ribbon 实例检查策略(健康检查)

通过对接口com.netflix.loadbalancer.IPing的实现,如下图/***@Authorcab5*@Date27自定义ribbon的对微服务的健康检查try{}}}主要逻辑是通过调用微服务的/actuator/info接口,判断返回的状态码是否为200。这里的/actuator/info接口是微服务引入spring-boot-starter-actuator得到的。/***@Authorcab5。......

2022-07-19 13:36:32 840

原创 int 整数相乘溢出的问题

int 整数相乘溢出问题

2022-06-27 14:08:20 3170

原创 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException, message: Unrecognized 的解决办法

最近在将 fastjson 用 jackson 进行替换的过程当中,出现了 “com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException, message: Unrecognized” 的问题。该问题出现的原因是由于 JSON 里面包含了实体没有的字段而导致了反序列化的失败,如下图:如果我们把 content 中的 gender 字段去掉,就能正常运行了,如下图:这里有两个解决方案,如下:将 ObjectMapper 的 Deseria

2022-06-22 15:10:05 3059

原创 一次解决 Could not get a resource from the pool 问题的经历

背景近期,有用户反馈在使用系统的时候经常报错,具体后台报错信息如下图:通过图中的报错信息,我们可以判断:应该是无法从池里获取连接了。可是,一直都运行的好好的,怎么突然就不能获取连接了呢?解决首先,我们先排除掉「密码错误」的可能性。因为如果是密码错误的话,那从开始的时候就不可能正常运行的。然后,考虑到本身业务场景不存在同一时刻产生大量并发子占满所有连接的情况,所以也排除掉了大并发造成等待超时的情况。经查,服务重启后,该问题就消失了,但是运行一段儿时间后,问题又再度出现。由此猜测,是不是业务使用

2022-05-25 17:58:25 2759

采用Java SPI和Spring factories来实现插件化的demo

该项目主要用来演示通过 Java SPI 和 Spring factories 两种方式来实现插件化

2023-06-29

Spring Batch 参考文档

Spring Batch 参考文档

2022-05-12

空空如也

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

TA关注的人

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