
Java
文章平均质量分 73
回归心灵
这个作者很懒,什么都没留下…
展开
-
容器内存使用率(container_memory_working_set_bytes)高问题排查
容器内存使用率升高问题排查原创 2024-05-07 15:06:53 · 5374 阅读 · 2 评论 -
sentinel prometheus指标收集及资源规则正则表达式实现
依赖 simpleclient 主要是为了实现自定义Collector:SentinelCollector, SentinelCollector 继承了抽象类 Collector,实现 collect 方法来获取指标样本数据。主要是通过增加 RuleManager 来统一管理普通规则和正则规则,为了减少正则解析/匹配所带来的性能损耗,增加了资源和匹配后的正则限流规则缓存,当获取资源规则时直接从Map 中读取缓存,避免每次都重新进行一次正则匹配。这是一种典型的空间换时间的做法。原创 2024-03-09 00:59:50 · 1560 阅读 · 0 评论 -
spring cloud gateway 并发问题:java.lang.NullPointerException: null
spring cloud gateway 并发问题:java.lang.NullPointerException: null原创 2022-03-13 01:28:46 · 6664 阅读 · 0 评论 -
spring boot 项目启动 com.netflix.hystrix.exception.HystrixRuntimeException:timed-out and fallback failed
spring boot 项目启动异常 com.netflix.hystrix.exception.HystrixRuntimeException:timed-out and fallback failed原创 2022-03-04 15:07:30 · 1599 阅读 · 0 评论 -
Java 线程池抛 RejectedExecutionException 异常时 active threads 值分析
背景介绍系统日志有 RejectedExecutionException 异常,抛异常的线程池是业务程序为了某类处理过程比较慢的请求创建的,线程资源隔离,避免阻塞这个系统。异常信息类似下面输出:java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@56235b8e rejected from java.util.concurrent.ThreadPoolExecutor@49c2faa原创 2020-12-02 21:04:47 · 27887 阅读 · 0 评论 -
设计模式之状态模式
定义通用类图具体实现原创 2020-08-30 16:33:56 · 164 阅读 · 0 评论 -
深度解析 dubbo 服务调用异常:The service using threads greater than <dubbo:service executes=“128“ /> limited
背景介绍服务在上线一段时间后,就出现了 Dubbo 调用异常,异常信息为: The service using threads greater than <dubbo:service executes=“128” /> limited。这样就导致功能不可用,由于该接口在实际中的并发量并不高,因此很诡异,在经过一段分析后,最终得以解决。问题分析dubbo:service executes=“128” 表示:服务提供者每服务每方法最大可并行执行请求数,可以通过 dubbo.provider.e原创 2020-08-16 18:08:37 · 2540 阅读 · 6 评论 -
为什么程序中突然多了 200 个 Dubbo-thread 线程
背景在某次查看程序线程堆栈信息时,偶然发现有 200 个 Dubbo-thread 线程,而且大部分都处于 WAITING 状态,如下所示:"Dubbo-thread-200" #160932 daemon prio=5 os_prio=0 tid=0x00007f5af9b54800 nid=0x79a6 waiting on condition [0x00007f5a9acd5000] java.lang.Thread.State: WAITING (parking) at sun.misc原创 2020-06-03 01:46:15 · 3561 阅读 · 0 评论 -
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
背景服务部署上线启动完成后调用数据库时报错,异常信息如下:12:34:09.975 [DubboServerHandler--thread-10] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure原创 2020-05-22 02:11:39 · 1496 阅读 · 0 评论 -
记一次 OOM 排查过程
背景在后端服务改为在 Docker + Kubernetes 上部署后没多久,程序就由于 java.lang.OutOfMemoryError: Java heap space 原因退出重新启动。问题分析宏观角度分析微观角度分析总结原创 2020-05-17 19:53:16 · 593 阅读 · 0 评论 -
Java 程序 CPU 占用高问题排查
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2020-05-14 23:39:37 · 538 阅读 · 1 评论 -
设计模式之观察者模式
定义观察者模式也叫发布订阅模式,定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。通用类图具体实现观察者模式中有观察者和被观察者角色,他们之间的关系往往是一对多的关系,也就是一个被观察者对应多个观察者,当被观察者状态变化时,要通知其每个观察者对象。被观察者 Subject ,一般是抽象类或者是实现类,主要的职责是管理观察者并通知...原创 2020-04-12 15:59:16 · 134 阅读 · 0 评论 -
com.mysql.jdbc.NonRegisteringDriver 内存泄漏
问题描述某天监控突然报警服务器的内存占用较高,然后登陆服务器发现一个连接数据库的服务的内存占用很高,而且还在不断地上涨,于是通过 jmap 命令生成堆 dump文件(jmap -dump:format=b,file=rds.bin PID),然后使用 Eclipse 的 Memory Analyzer Tool (MAT) 工具来分析。问题分析表象分析通过 MAT 工具分析发现,第一个可能...原创 2020-01-19 18:16:50 · 8674 阅读 · 1 评论 -
设计模式之责任链模式
定义使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。通用类图具体实现责任链模式的目的是为了让发送者和接收者解耦,发送者不需要知道请求是由哪个接收者处理,只需要把请求给到由多个对象组成的处理链的头节点,抽象处理类 Handler 会判断是否是本节点要处理的请求,是的话处理请求,不是的话把请求传...原创 2020-01-11 18:14:51 · 177 阅读 · 0 评论 -
MySQL表未加索引,引发的线上事故
背景现象公司的APP突然出现响应很慢,并伴有登录不了的情况。服务端架构公司服务端采用分布式架构,服务间通过 RPC 访问,使用公司自研 RPC 框架。问题分析业务日志通过查看日志文件,发现有很多服务间的调用时间消耗在 2s 以上,这些调用基本上都是访问 MySQL 数据库,通过分析发现其中一个更新数据库的方法调用频繁且每次耗时都在 2s 以上。这时就猜测是不是更新的SQL语句wher...原创 2019-12-28 18:21:50 · 914 阅读 · 2 评论 -
《Java 并发编程实战》--读书笔记
学习攻略 | 如何才能学好并发编程?注: 极客时间《Java 并发编程实战》–读书笔记GitHub:https://github.com/ByrsH/Reading-notes/blob/master/Concurrency/Java并发编程实战-极客时间.md并发编程领域抽象成三个核心问题:分工,同步和互斥。分工:把一个功能分给不同的线程共同实现同步:当某个条件不满足时,线程需要等待,...原创 2019-12-10 20:16:10 · 1482 阅读 · 1 评论 -
设计模式之命令模式
定义将请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。原创 2019-10-20 18:33:47 · 126 阅读 · 0 评论 -
Jxl 操作Excel之 WritableWorkbook
这篇文章主要是讲WritableWorkbook 类的方法操作。WritableWorkbook 是用与操作可写工作簿的,其中的方法有创建可写工作表、复制工作表、设置工作簿背景RGB、移除工作表等操作。但是有些方法使用时还是有问题,不知道怎么使用。下面就让我们看看具体是怎么实现的。原创 2015-11-25 23:52:39 · 14325 阅读 · 0 评论 -
设计模式之组合模式
组合模式定义原创 2018-10-14 18:49:20 · 153 阅读 · 0 评论 -
java.net.SocketInputStream.socketRead0 挂起线程
背景现在的Java EE 系统通常都依赖于远程服务,需要通过网络请求获取远程服务。不管是使用什么协议(HTTP,HTTPS,JDBC 等)请求远程服务,Java VM最终都将委托给Socket去实现。首先会通过connect方法与远程服务建立连接,连接建立成功后就可以 write/read 与远程服务实现数据通信。Socket.connect()、Socket.write()、Socket.r...原创 2018-10-20 18:46:18 · 39791 阅读 · 4 评论 -
设计模式之享元模式
享元模式定义原创 2018-10-28 17:49:36 · 196 阅读 · 0 评论 -
IDEA maven 项目修改代码不生效,mvn clean、install 后才生效
现象正常情况下修改完代码,运行项目就会立即生效的。但是突然有一天发现运行的还是老的代码,新代码根本没有生效。通过 mvn clean、 install 后,再运行就可以了,但是这样明显是不正常的,而且也非常麻烦。解决方案重新 import project 导入项目,就可以解决问题。...原创 2019-09-24 15:22:26 · 25244 阅读 · 19 评论 -
设计模式之适配器模式
适配器模式定义将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。具体实现适配器的目的是把一个类的接口转换成另一种接口,通过适配器类定义目标类的接口,然后把具体的实现委托给被适配类实现。在具体实现上面有两种不同的方式:类适配器和对象适配器。它们之间的本质区别在于适配器类Adapter和被适配类Adaptee类之间的关系,类适配器是继承关...原创 2018-09-27 23:56:33 · 141 阅读 · 0 评论 -
设计模式之抽象工厂模式
1原创 2018-08-12 22:27:28 · 148 阅读 · 0 评论 -
设计模式之工厂方法模式
工厂方法模式定义定义了一个创建对象对象的接口,但由子类决定要实例化的类时哪一个。工厂方法让类把实例化推迟到子类通用类图具体实现工厂方法模式是把产品的实例化过程封装到工厂类中,这样就降低了客户与具体产品类之间的耦合,客户不需要知道产品对象创建的具体过程,而且如果产品对象的创建过程在后期有改变,那么只需改变工厂方法,而不用改变每一个客户。每一个具体的产品类对应一个具体的工厂类,...原创 2018-08-12 20:34:20 · 369 阅读 · 0 评论 -
NIIT实训 java笔记--3.18
1, Eclipse 安装插件离线安装: Help ->Install New Software -> Work with: ... Add ->在Location 上点击Archie,选择提前下载好的插件压缩包,OK -> 选择复选框,去除Contact .....,更新软件前的复选框 -> next.在线安装: Help ->Eclips原创 2016-03-19 22:47:43 · 750 阅读 · 2 评论 -
NIIT实训 java笔记--3.14
1,构造器(Constructor) 用于实例化对象 ([参数列表]) { 内容 } 所有类都有构造器 如果类的代码中没有提供构造器,Java会自动认为有一个默认的构造器 如果类的代码中提供了一个带参的构造器,要想使用无参构造器,必须手动提供一个无参构原创 2016-03-19 22:17:20 · 796 阅读 · 0 评论 -
NIIT实训 java笔记--3.11
1, switch语句switch(condition){case 条件的值:符合条件要做的事情;[break;]case 条件的值:符合条件要做的事情;[break;]case 条件的值:符合条件要做的事情;[break;][default:不符合以上条件要做的事;break;]} condition:原创 2016-03-19 22:05:12 · 516 阅读 · 0 评论 -
NIIT 实训java笔记--3.10
最近,由学校安排在无锡NIIT公司接受实训,这是实训期间的课堂笔记,有些知识之前没有清晰的认识,特以记录,以便他日查看。1, 注释:(1) 单行: //(2) 多行: /*...... */(3) 文档注释: /** * Javadoc 生成API */原创 2016-03-19 21:40:44 · 588 阅读 · 0 评论 -
jxl 操作Excel表格之Workbook
本篇文章主要讲jxl 中非常重要的一个抽象类Workbook,该类是一切操作Excel表格的开始。可以通过该类得到工作簿,也可以创建一个新的可写工作簿。下面就让我们一起来看看怎样使用该类。 得到已存在Excel表格的工作簿 Workbook.getWorkbook:import java.io.*;import jxl.Workbook;import j原创 2015-11-01 22:22:54 · 21270 阅读 · 0 评论 -
jxl 读写Excel实例
本篇文章主要讲的是jxl 操作Excel的三个实例,一个是读取Excel表格数据,一个是 写一个新的Excel表格,最后是更新现有的Excel表格。在开始全面学习 jxl 之前,我们先看几个例子,让大家大概整体的了解一下jxl 是怎么操作Excel表的,以使之后更有兴趣,更好地学习jxl。原创 2015-10-29 14:02:27 · 3091 阅读 · 0 评论 -
java 操作Excel表之 jxl 学习
本篇文章主要讲的是java操作Excel表中主要的两个包之一jxl 的学习线路,之后的文章会一一展开。 JAVA EXCEL API 简介: 在开源世界中,java操作Excel有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。jxl是韩国人写的java操作Excel工具。通过它Java开发人员可以读取Excel文件的内容、创建新的Ex原创 2015-10-27 23:56:53 · 1075 阅读 · 0 评论 -
jxl 操作Excel表格之Cell
本篇文章主要讲的是Excel表格中的单元格Cell。Cell相关的操作包括得到单元格所在的列、行,还可以得到单元格内容的数据格式,也可以得到单元格格式和属性。话不多说下面看看代码是怎么实现的: import jxl.*;import java.io.*;import jxl.read.biff.BiffException;public class TCell { publ原创 2015-11-06 14:01:54 · 1434 阅读 · 0 评论 -
jxl 操作Excel表格之Sheet
这篇文章主要是讲工作表相关的操作,原创 2015-11-06 01:00:48 · 12303 阅读 · 1 评论 -
Java IO学习笔记
Java IO类概述表转载 2017-01-06 22:25:04 · 416 阅读 · 0 评论 -
设计模式之装饰者模式
什么是装饰者模式装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。这就是面向对象设计中常提到的优先使用组合而不是继承。UML图图中抽象类Component是被装饰者基类,ConcreteComponent是将要动态地加上新行为的对象,它扩展了Component。Decorator是装饰者共同实现的接口或者是抽象类。ConcreteDecoratorA和Concr原创 2017-07-02 18:24:41 · 300 阅读 · 0 评论 -
设计模式之外观模式
外观模式定义外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用详解外观模式外观模式的意图是简化接口。当实现某个行为时,需要依赖子系统的许多类,而且使用复杂,就可以考虑使用外观模式,提供一个简化并统一的接口。这样客户只需对外观类编程,从而将客户从一个复杂的子系统中解耦。从下面的简易的类图可以更清晰的理解外观模式: 示例本例是一个智能手机示例。子系统包原创 2017-07-12 17:29:22 · 661 阅读 · 0 评论 -
Java default 方法
Default 方法The section Interfaces describes an example that involves manufacturers of computer-controlled cars who publish industry-standard interfaces that describe which methods can be invoked to o...翻译 2018-05-21 13:52:23 · 4517 阅读 · 0 评论 -
spring boot 错误处理
本文是Spring boot官方文档Error Handling部分的译文另一篇博客更详细的讲解了其内在原理及应用。(http://blog.youkuaiyun.com/u010657094/article/details/78993929)27.1.9 Error HandlingSpring Boot provides an /error mapping by default that ha翻译 2017-12-15 21:02:58 · 7309 阅读 · 1 评论 -
Spring boot 异常处理详解
1. 概述本文主要讲解使用Spring boot框架进行web开发时如何进行异常处理。先分析默认的处理方式,然后再叙述如何自定义异常处理。在具体的分析之前,先看一下异常处理的整体图: 点击看大图2. 默认异常处理Spring boot提供了默认的处理异常方式,当出现异常时就会默认映射到 “/error”。处理原创 2018-01-07 17:23:34 · 3597 阅读 · 0 评论