参考资料: https://www.baeldung.com/java-instrumentation https://medium.com/@shehan.a.perera/using-a-java-agent-to-monitor-application-runtime-behavior-using-metrics-664eb95e971c https://www.jrebel.com/blo…
Leave a Comment作者: admin
有的时候,我们想知道我们的java哪些是阻塞的,如果我们用jstack命令进行线程栈快照,我们只能知晓当前时刻点的线程状态,但是线程什么时候创建的,什么时候销毁的,全然不知。 思路 我们可以使用操作系统的ps命令来观察系统线程的创建时间,将线程的id和jstack的线程栈关联,即可知道我们jvm的当前线程栈中某个线程是何时创建的。 操作 使用jstack -l pid > dump.log …
Leave a Comment关键词 ThreadPoolExecutor.CallerRunsPolicy() 起因 早晨上班不久后,突然系统告警,商品服务延迟特别大。 由于其他几个后端服务和商品服务的依赖关系特别大,导致其他服务接连奔溃。由于目前各个系统没有做服务降级,在依赖服务(商品服务)出现阻塞,延迟响应缓慢之后,自身服务也出现阻塞现象。 后端服务接连奔溃,前端业务系统马上感受到影响,逐个失能。 处理 马上导出线上应用…
1 Comment没有任何TCP API可以告诉您当前的连接状态。 isConnected()和isClosed()是告诉你套接字的当前状态。 和连接状态不是一样的东西。 isConnected()告诉你是否已连接此套接字。 你已经链接了因此它返回true。 isClosed()告诉你是否已关闭此套接字。 除非有,否则它返回false。 如果对方(peer)有序地关闭了连接 read()返回-1readLine()…
1 CommentRemote debug spring boot application with maven and IntelliJ 应用启动开启调试模式,接受远程调试链接 这个主要就是启用gentlib:jdwp,在jvm里面启动一个在线调试的协议端口(Enable the Java Debug Wire Protocol (JDWP) agent inside the JVM)。suspend这个参数如果…
Leave a Comment最近在写一点通讯方面的代码,我的程序逻辑可能在判断到某些异常是需要断开客户端socket的链接。 看官方文档,提供了 client.end() 方法和 client.destory()方法,好像都可以用来断开连接。 看官方描述,如果你调用了end方法,你会将socket置于半关闭(Half-closes)状态,然后他会发送一个 FIN 包给对端,这个时候呢,服务器可能还是会发送数据给你的。(表示这…
Leave a Comment因为我的elasticsearch是用来存储各种日志数据的,需要周期的把数据清理掉,不然磁盘要炸了。 Stack里面有个 Index Lifecycle Policies 好像也可以完成这个工作,没研究明白。 这里记录下使用curator来进行index的清理。 安装curator elastic官方给的下载地址:https://www.elastic.co/guide/en/elasticsea…
Leave a Comment使用grep命令。 -r or -R 表示递归查找 -n 显示查找到字符串所在文件行号 -w 表示完整匹配 -l (lower-case L) 只显示匹配的文件名 也可以添加下面这些参数, –exclude, –include, –exclude-dir 来提高检索效率 下面这个例子只会检索文件扩展名为 .c or .h 的文件: 下面这个例子将忽略检索所有文件扩展名为 .o 的文件: 对于…
Leave a CommentES数据库发现磁盘将要写满之后,会尝试将所有的index设置index.blocks.read_only_allow_delete为true,会导致数据无法写入。 可以通过以下命令将所有的index配置改为false,来恢复。 或者在kibana控制台的运维工具里面执行 引自:https://stackoverflow.com/questions/48155774/elasticsearch-re…
Leave a Comment