Kubernetes原理(1)

本文将主要介绍Kubernetes集群中各个组件的工作原理(非源码级别),以帮助大家更深入的了解K8S,从而更高效地使用K8S。由于本篇不是入门级文章,需要大家对K8S有些基本的了解,知道它提供了哪些功能,才能更好地理解这篇文章。如果还不了解K8S的功能特性,可以参考这篇一起学习k8s做个快速入门。

Java的那些日志框架们

日志在排查线上问题、跟踪线上系统运行情况中发挥着重要作用。在Java应用的开发中,常见的日志框架有JCL(commons-logging),slf4jJUL(java.util.logging),log4jlog4j2logback等。这些日志框架大致可以分为两类,一类是日志门面(JCL、slf4j),定义日志的抽象接口;另一类是日志实现(JUL,log4j,log4j2,logback),负责真正地处理日志。为什么会有这么多的日志框架呢?从Java日志框架的发展史里大概可以一探究竟。

长大后我就成了你

第一次接触Chrome是在大学寝室里龙哥的电脑上,那时候IE6还霸占者绝对的浏览器市场份额,装着IE内核、披着华丽外衣的国产浏览器也正春笋般崛起,真是有点被那蓝色简洁的窗体给惊讶到了,但是并没有让我从Firefox转战到Chrome,这么简单的一款产品在功能性和扩展性上怎么能和插件丰富的Firefox相比,于是我坚守在Firefox的阵地,同时鄙视、谩骂着IE。

读《大教堂与集市》

浏览开发者头条的时候看到一篇题为《系统架构》读书笔记的文章,突然想到自己刚读完《大教堂与集市》,还没有留下一点点观后感之类的文字,没有对书本的思考,这本书就白读了吧,就像之前的《黑客与画家》,现在都记不清它都有些什么内容了。所以决定还是写点读后感类的内容。

ProxyJump

为了安全起见,线上机器一般不会允许用户通过ssh直接登录,而是需要通过堡垒机(跳板机)跳转到目标线上机器,这样方便对权限控制的管理和访问操作的审计。不知道公司用的是哪款堡垒机产品,选择目标机器的过程异常繁琐。查看ssh的手册(manual)看到了-J选项,可以通过该选项指定ProxyJump然后直接登录到目标机器,命令如下:

Tomcat NIO Connector

Tomcat服务请求量巨大时connector线程数剧增。 Tomcat默认的connector是阻塞模式的(即BIO), 每次请求都需要一个单独线程处理,另外对于keep-alive的HTTP请求,

查找占用CPU高的Java线程

由于种种原因导致生产环境的应用CPU占用奇高, 这个时候就需要确定到底是哪些线程占用了较高的CPU, 然后再做针对性的优化,

用dependency插件解决依赖包冲突

偶然翻阅了下 maven dependency 插件的官方文档,颇有收获,记录一下。可能有些标题党的嫌疑,并没有具体介绍怎么解决依赖冲突问题,不过既然你都打印出了依赖树,