前言
在公司内部使用 Jenkins 做 CI/CD 时,经常会碰到项目构建失败的情况,一般情况下通过 Jenkins 的构建控制台输出都可以了解到大概发生的问题,但是有些特殊情况开发需要在 Jenkins 服务器上排查问题,这个时候就只能找运维去调试了,为了开发人员的体验就调研了下 web terminal,能够在构建失败时提供容器终端给开发进行问题的排查。
效果展示
支持颜色高亮,支持tab键补全,支持复制粘贴,体验基本上与平常的 terminal 一致。
k8s
本身就支持服务滚动升级,但是如果程序没有正确的处理退出信号时,就会导致部分请求直接被中断从而影响用户体验。
每个pod
代表一个集群中的节点,在 k8s 做rolling-update
的时候默认会向旧的pod
发送一个SIGTERM
信号,如果应用没有对SIGTERM
信号做处理的话,会立即强制退出程序,这样的话会导致有些请求还没处理完,前端应用请求错误。
先来回顾下 k8s 的滚动升级步骤:
这里要注意,SIGTERM信号如果进程没有处理的话也其实也就会导致进程被强杀
,如果处理了但是超过terminationGracePeriodSeconds
配置的时间也一样会被强杀,所以这个时间可以根据具体的情况去设置。
最近在使用getDeclaredMethods
方法获取类中的方法时碰到一个奇怪的问题,先来看看getDeclaredMethods
方法的注释:
Returns an array containing Method objects reflecting all the declared methods of the class or interface represented by this Class object, including public, protected, default (package) access, and private methods, but excluding inherited methods.
谷歌翻译:
返回一个包含 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口的所有声明方法,包括 public,protected,default(包)访问和私有方法,但不包括继承的方法。
注意加粗的字体,可以看到 JDK 注释里明确的说明了getDeclaredMethods
方法不会返回继承的方法,我要的功能就是取当前类上的方法(不包含父类的),但是事情并没有这么简单,下面一起来看看是为什么。
在经历了近半年的时间之后,Proxyee Down 终于迎来了 3.0 版本,新版本改动非常的大同时进步也非常的大,来看看 3.0 版本的新特性吧。