摘要:
ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 当服务器的socket连接数量变得非常大时,无论是使用nets 阅读全文
摘要:
一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug! 注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量 阅读全文
摘要:
目前Zipkin官方提供了插件用于支持对MySQL语句执行过程的日志追踪,提供了对MySQL5、MySQL6和MySQL8的支持,官方地址:https://github.com/openzipkin/brave/tree/master/instrumentation 一、介绍及示例配置示例: 1、引 阅读全文
摘要:
在处理压力测试问题的时候,经常遇到OOM的情况,这时候我们需要去记录内存实时的情况,一般会打出一个dump文件,而后再使用MAT等内存分析工具去查看哪些对象一直占用了大量内存,最终分析出代码需要优化的地方。 那么java如何打出dump文件呢? java提供了jmap命令,如下: jmap -dum 阅读全文
摘要:
堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生代即方法区 阅读全文
摘要:
在Maven中,主要有3个插件可以用来打包: maven-jar-plugin,默认的打包插件,用来打普通的project JAR包; maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包; maven-assembly-plugin,支持自定义的打包结构,也可以 阅读全文
摘要:
1、我们为什么要对jvm做优化?在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求: 运行的应用“卡住了”,日志不输出,程序没有反应服务器的CPU负载突然升高在多线程应用下,如何分配线程的数量?……在本次课程中,我们将对jvm有更深入的学习,我们不仅要 阅读全文
摘要:
背景 通常对安全性有要求的接口都会对请求参数做一些签名验证,而我们一般会把验签的逻辑统一放到过滤器或拦截器里,这样就不用每个接口都去重复编写验签的逻辑。 在一个项目中会有很多的接口,而不同的接口可能接收不同类型的数据,例如表单数据和json数据,表单数据还好说,调用request的getParame 阅读全文
摘要:
阅读目录 先解释下Java中的对象序列化 关于transient关键字 举个例子 参考资料 先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义; Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序 阅读全文
摘要:
1. 缘起:启用HTTPS也不够安全 有不少网站只通过HTTPS对外提供服务,但用户在访问某个网站的时候,在浏览器里却往往直接输入网站域名(例如www.example.com),而不是输入完整的URL(例如https://www.example.com),不过浏览器依然能正确的使用HTTPS发起请求 阅读全文