Downward API

使用 DownwardAPIVolumeFile 把自己的信息呈现给 Pod 中运行的容器。 DownwardAPIVolumeFile 可以呈现 Pod 的字段和容器字段。 Downward API 有两种方式可以将 Pod 和 Container 字段呈现给运行中的容器: Environment variables环境变量 Volume Files 卷...

阅读全文

k8s Deployemnt滚动更新

概述Deployment 一个非常重要的功能就是实现了 Pod 的“水平扩展/收缩”,如果我们应用更新了,我们只需要更新我们的容器镜像,然后修改 Deployment 里面的 Pod 模板镜像,那么 Deployment 就会用滚动更新(Rolling Update)的方式来升级现在的 Pod,这个能力是非常重要的,因为对于线上的服务我们需要做到不...

阅读全文

k8s configMap

configMap可变配置管理 cofigMap 卷 提供了向 Pod 注入配置数据的方法。 ConfigMap 对象中存储的数据可以被 configMap 类型的卷引用,然后被 Pod 中运行的 容器化应用使用。简单说config就是放置配置信息,加密信息可以使用Secret存放。 说明 在使用 ConfigMap 之前你首先要创建它。 容器以 sub...

阅读全文

记录压测出现问题

现象并发访问的时候,rt飙升。小访问量时候rt 200ms,并发访问发现rt飙升 700-4000+ms。重启pod服务之后正常,访问N分钟之后就会出现rt飙高。之后rt 一直在700-4000+ms。 调查 看了表没有索引以为是数据库的索引性能导致,优化索引无效。查看数据库监控指标正常,排除数据库问题。 优化代码之后重启pod正常一下,突然又不行了。我认...

阅读全文

no-title

Java并发编程并发问题产生的三大根源可见性问题:缓存导致的可见性问题当多个线程同时访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 原子性问题:线程切换带来的原子性问题一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。 有序性问题:编译优化带来的有序性问题程序执行的顺序按照代码的先后顺序执行。对于单线程,在执...

阅读全文

卸载自带JDK

java -version查询一下是否安装 查询已经安装的jdk的包rpm -qa | grep -i jdkrpm -qa | grep java 1234[root@yc-nsg-e16 ~]# rpm -qa | grep -i jdkjava-1.8.0-openjdk-headless-1.8.0.312.b07-1.el7_9.x86_64cop...

阅读全文

位运算符——左移、右移

>> :右移 最高位是0,左边补齐0;最高为是1,左边补齐1 << :左移 左边最高位丢弃,右边补齐0 >>>:无符号右移 无论最高位是0还是1,左边补齐0 在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方 右移一位相当于除2,右移n位相当于除以2的n次方。 12...

阅读全文

Java 语言面向对象

Java 接⼝设计通⽤设计 - 可访问性四种修饰符 public (default) protected:不能用于修饰最外层 class private:不能用于修饰最外层 class 通⽤设计 - 可继承性 final:final 不具备继承性,仅⽤于实现类,不能与 abstract 关键字同时修饰类 举例:java.lang.String ⾮ f...

阅读全文

Java 语言基础

Java ⾯向对象基础⽅法设计 单元:一个类或者一组类(组件) 类采用名词结构 动词过去式+名词 ContextRefreshedEvent 动词ing + 名词 InitializingBean 形容词 + 名词 ConfigurableApplicationContext 执行:某个方法 方法命名:动词 execute callbac...

阅读全文

lombok 避坑指南

尽量不要使用 @Data 注解, 这个注解太全了,不利于维护,除非你知道你在干什么Java 默认机制如果有其他构造器,则不会生成无参构造器,在使用 @AllArgsConstructor 注解时,记得加上 @NoArgsConstructor如果类定义还在变化阶段,不建议使用 @AllArgsConstructor 注解@Setter、@Getter 注解如...

阅读全文