小白
文章平均质量分 79
小白
高兴的才哥
啦啦啦,啦啦啦,我是卖报的小行家。
展开
-
static final字段使用ParallelStream初始化出现死锁问题
前言这个周在使用Java做需求的时候,有遇到一个奇怪的问题,数据库写入会卡住,使用的技术栈是SprintBoot+mybatis,稍微一点儿不同的是我引入了多数据源支持,搞不清楚是为什么写入卡住。分析伪代码:... static class Solution { private static final Map<String, String> STRUCT_MAP = Arrays.asList( "a", "b", "c"原创 2021-03-22 23:03:25 · 649 阅读 · 0 评论 -
k8s admission webhook初探
前言之前一篇博客讨论的问题,就是如何杀掉container的主进程,并且让container不重启,最后有讲到说也许可以使用admission webhook,动态替换容器,做到给一个空容器,也就是deployment或者是statufulset的image标签,换成一个空镜像启动,然后在这里container中就可以java -jar启动自己的容器, 关闭自己的容器,完全当成是一个小型Linux来使用了,方便快速验证功能,不用每次都需要跑CI/CD。所以今天就来看看方案可行性,并且动手实践一把。实践原创 2021-03-20 23:25:16 · 3090 阅读 · 2 评论 -
istio基本概念
前言刚才看了一个istio的讲解视频,还热乎着尼,所以特地记录一下笔记,捎带推荐一个up主。ConceptService mesh is a patternIstio is a implementIstio featuresService DiscoverySecurityMetrics & TracingIstio functionTraffic routingTraffic splitdifferent service version can have differ原创 2021-01-02 23:24:57 · 267 阅读 · 0 评论 -
kubernetes原生ci/cd工具tekton版本升级至v0.18.1
前言最近没啥好写的,一直都在弄hpa的问题,也就是解决hpa没生效的问题,以及最优minReplica最小基数的问题。也已经划水了两篇博客了,所以今天就来简单记录一下之前做过的一个小任务,也就是将项目中用到的tekton版本升级至最新版的过程吧。分析项目中用到了tekton这个kubernetes原生的ci/cd工具,虽然公司就是做ci/cd的,但是还用了Google的ci/cd,讲起来的确是有点儿ashamed,但因为项目组的原因,蚍蜉撼树是行不通的,那就用咯。话说写博客的时候,就有点儿想法了,为什原创 2020-12-20 19:11:37 · 424 阅读 · 0 评论 -
kubernetes v1.18.8集群搭建
1,前言,最近在工作中有用到k8s,看了一点儿关于节点调度的知识,就想着自己做点儿小实验.所以要准备实验环境.所以就在自己的笔记本上搭建了一个k8s的集群.2,准备工作:我这里只写了命令:原创 2020-09-05 12:44:08 · 1192 阅读 · 1 评论 -
Prometheus使用过程中遇到的问题
1,前言最近在做监控功能, 需要统计cdn用量,存储,数据库请求次数的需求,使用的方案是Prometheus push方法。有个功能获取一段时间内,按照指定step,将这个step中的数据汇聚(sum,min,max,avg,count),然后返回出去。目前的做法是<aggregation>_over_time(),然后指定时间段[60s]再指定时间点time,这个可以用来计算一小个step的值,但是从start到end有许多个小段,重复计算小段,然后再返回数据。很low,但是没有更好的办法原创 2020-08-01 17:38:45 · 3065 阅读 · 0 评论 -
docker和kubernetes简单使用手记
1,前言:最经很多加班,所以没时间写博客,说的我好像有时间就会写博客一样~~,做下知识输出吧,关于docker和kubernetes的。2,docker:关于docker,我有一篇简单的博文,大家可以参考一下我之前写的,虽然恨水,但是入门就行。今天主要是介绍一下kubernetes的,简称k8s,这个是google出的一个服务治理,编排的工具,可以轻松实现springboot中的服务治理,注册发现等逻辑。3,kebernetes:下面介绍一下k8s和docker的关系,他俩的关系就是一个原创 2020-06-27 19:13:14 · 519 阅读 · 0 评论 -
Java多态堆栈信息
public class Test { static class A { public A() { System.out.println("A constructor"); } static { System.out.println("A static {}"); } { System.out.println("Common"); .原创 2020-05-13 18:45:50 · 158 阅读 · 0 评论 -
计算几何--凸包之graham scan算法
Graham scan算法:主要步骤:找出所有已知点的y值最小,如果相同,取x值最小的点,作为基准点s。 以s为基准,所有的点按照与X轴夹角从小到大排序。 使用两个栈,一个记录已访问的点,一个记录未访问的点,使用已访问点的最后两个入栈元素p,q判断未访问点元素c的位置,如果点c在pq向量的左边,则将c压入已访问栈,如果c在pq向量的右边,则已访问栈出pop()一个元素。再次判断。1,...原创 2019-08-13 16:21:12 · 403 阅读 · 0 评论 -
统一回包格式比较优雅的实现
其实这个是很久之前的东西了,当时是用的拦截器做的,配合自定义注解,但是感觉不够优雅,后边一直没有找到合适的方法,虽然早就知道要对HandlerMethodReturnValueHandler这个接口做处理,但是有个问题就是ModelAndViewMethodReturnValueHandler这个优先级太高了,如果我们的方法上备注 private List<HandlerMethodReturnValueHandler> getDefaultReturnValueHandlers原创 2020-05-10 19:10:55 · 626 阅读 · 0 评论 -
Docker配置windows 10 访问内部容器
闲来无事,折腾Spring的HandlerMethodReturnValueHandler差不多了,然后玩下docker,实际上之前也用过,只是没有像现在一样,突然发现我擦,Docker这么牛掰,内部可以运行多个容器,都不用自己安装Mysql,或者是Mongodb,RabbitMQ这些了,直接在docker中启动一个实例就可以了,很方便,并且还可以限制Docker使用内存大小,一般来说,我们开这些容器,就是用来测试一下的,所以其实用过几次,然后可能就吃灰了,放在docker中的话,方便新建和管理,原创 2020-05-10 16:03:45 · 1498 阅读 · 0 评论 -
动态规划之海盗船运宝藏问题
闲来无事,想到了自己对解动态规划问题掌握的还不大熟练,所以做个题练习下。1,问题描述:有一辆小船,能够承载的最高重量为c,当船承载的重量超过c时,船会沉没。 现在有n个物品,物品i的重量为w(i),价值为v(i),应该如何选择装船的物品,保证船不沉,使得装上船的物品总价值最大?2,问题分析:这是一道0-1动态规划问题。对于动态规划问题,最终的是要找到递归方程。要找到递归方程f(x...原创 2020-03-18 23:06:47 · 657 阅读 · 0 评论 -
双蛋问题的递归解法
现在是疫情期间,被动裁员,呆在宿舍没事儿做,在YouTube上看见了李永乐老师的一个双蛋问题的视频,就是众所周知的动态规划问题,然后就做了一下。1,问题描述:有t层楼,n个鸡蛋,鸡蛋是相同的,临界楼层是指从某个楼层之上抛下来,都会碎,但从这个楼层之下抛下来,都不会碎。没有碎的鸡蛋可以重复使用。试假设能找到这个临界楼层需要抛投的最少次数。2,问题分析,画表格。假设横轴为鸡蛋数,纵轴为...原创 2020-03-12 18:29:43 · 7413 阅读 · 8 评论 -
继上篇实现路由功能 出现的小瑕疵
一,在上一篇博客中,我们已经可以实现自定义注解实现路由功能了,但是这里实际上有点儿小瑕疵,那就是我们所些的Interceptor并没有被加入到自定义的HandlerMappingHandlerTest中来,这是为啥呢?1,因为我们在注册为一个Bean的时候,并没有对Interceptor属性进行设置。@Configurationpublic class WebConfig implem...原创 2020-03-08 17:21:33 · 157 阅读 · 0 评论 -
自定义注解实现@RequestMapping路由功能
其实Spring比较厉害,把能自定义的地方全都精心的做了设计。比如要实现这个自定义注解实现RequestMapping注解的功能。只需要很少的代码就能完成这个功能。0,第一步自然是定义一个注解@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interfa...原创 2020-03-07 22:23:34 · 1753 阅读 · 5 评论 -
记一次HTTP请求的完整流转 从Tomcat到Spring MVC
Spring boot 一次详细的http请求过程。我们知道的是spring boot内嵌一个tomcat,这个tomcat负责请求的连接处理,并且将其转化为request和response,然后我们所有的操作都是在处理这个request和response,然后tomcat再通过socket写回给客户端。这里nio模型的中心,也就是tomcat负责事件处理的伪码public void ru...原创 2020-03-07 22:06:15 · 1527 阅读 · 0 评论 -
多数据源支持遇见的一个小问题
描述:在项目中使用到多数据源,因此使用了ThreadLocal<String>记录了当前线程持有的sqlSession链接。并且自定义了注解DataSource,用于AOP,在service层做切面,在方法执行之前,更改数据源到另一个库,然后方法执行完后,删掉当前线程在ThreadLocal中的值,巩固一下,ThreadLocal内部是一个HashMap,key为Thread.cu...原创 2019-11-25 20:04:05 · 253 阅读 · 0 评论 -
java之一个final引起的反射问题
java中的关键字final关键字标识编译时常量。对于基本类型,标识其值不可被改变,对于引用类型,标识其引用不可以被改变,但是引用对象的值可以发生变化。这里的引用类型是包含装箱的类型的,只是装箱类型的封装了一个基本类型的变量,导致现象是装箱类型的也是不可改变引用的,但其实是因为其内部持有的基本类型,并且此基本类型使用final约束了。我们都知道如果引用类型被final修饰,那么意味着不...原创 2019-09-07 19:03:16 · 1377 阅读 · 0 评论