- 博客(162)
- 资源 (1)
- 收藏
- 关注
原创 重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(二)
深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)的学习笔记
2024-02-01 17:15:23 1041
原创 重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(一)
《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记
2024-01-23 14:45:45 634
原创 Docker、Kubernetes、OCI、CRI-O、containerd、runc 之间的关系以及它们是如何一起工作的?
Docker、Kubernetes、OCI、CRI-O、containerd、runc 之间的关系以及它们是如何一起工作的?
2023-11-29 18:13:29 355
原创 基于spring-boot-starter-actuator不同版本(2.1.3和2.3.5)在K8s中做就绪存活检查相关配置的差异
springboot2.1和springboot2.3的应用,在k8s中的就绪存活检查相关配置的差异
2023-11-15 16:02:54 548
原创 如何实现功能插件化
在整个插件化的方案中,会涉及到如下 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
原创 鹿蜀:一个基于日常开发任务体现开发人员工作状况的系统
为了能够更方便、更直观的让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
原创 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
原创 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
2023-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人