自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (1)
  • 收藏
  • 关注

原创 从一道题看类的加载与实例化过程、NoClassDefFoundError异常

网上看到一道题,竟然做错了,于是深挖了一下类的初始化过程,并把这道题做了点改动,感兴趣的童鞋可以先尝试做下这道题,如果做对了,说明你是真的牛,不需要看后面的内容了:class SingleTon { private static SingleTon singleTon = new SingleTon(); public static int count1; ...

2018-03-08 18:01:48 1928 3

原创 一提到Reference 百分之九十九的java程序员都懵逼了

原来的标题是:"一提到Reference 99.99%的java程序员都懵逼了",为啥改成汉字了呢?吐槽一下,因为CSDN出bug了,如果你用了%做标题,你的文章就别想用它的编辑器修改了,它的js脚本写的不够健壮,报错了;java.lang.ref.Referencejava程序员都知道如果一个对象没有任何引用了,那么这个对象在gc的时候就被回收了,大部分java程序员是基于我们常见的强引用去理解...

2018-03-07 17:31:10 25363 8

原创 线程池踩坑记 --load飙高的原因

去年处理过一个美图的问题,最近又碰到类似问题了,发现跟美图那个案例原因是一样的,在这里拿出来给大家分享一下。应该是去年6月底,我们私有化发布了新版本,然后就拿去给美图客户安装部署了,美图的美拍应用访问量较大,新版本部署后问题不断,后来我接手去处理,在这之已出过不少问题,客户也不怎么配合了;问题现象:美图客户的运维说,听云应用kafka积压消息,backend不工作了,重启后不久服务器loa...

2018-02-27 01:32:53 4781 6

原创 性能优化随笔

性能优化遵循木桶原则,最短的一块板决定了系统瓶颈,某一时刻只有一个瓶颈点,解决了这个瓶颈点,才能发现下一个瓶颈。性能优化就是要在现有的资源里(cpu、内存、硬盘io、网络io等),最大限度的把这些资源利用起来;性能优化需要从3方面:1. cpu 使用率:如果cpu使用率低,可以尝试增加工作线程数,不能无限制增加,每个应用都有一个最优值,要看cpu密集型操作与io密集型操作占用的时间比例...

2018-02-08 11:46:56 704 1

原创 一篇文章彻底搞懂java动态代理的实现

网上有太多文章介绍动态代理是什么,这里就不介绍了,本文目的是让大家弄懂动态代理是如何做到这些神奇的功能的。先来一个小demo,通过这个demo来讲解,动态代理需要三个类:一个接口类;一个实现接口的业务类;一个生成动态代理类,并通过动态代理类来执行业务方法的测试类;下面我们就一一实现它们。接口类ITaskService package com.zqz.jdkpro...

2017-12-22 00:17:55 1232

原创 java程序员必精--从源码讲解java线程池ThreadPoolExecuter的实现原理、各种坑、如何监控

类结构图示例自带线程池的各种坑基础参数源码分析java.util.concurrent.ThreadPoolExecutor构造方法重要的成员变量ctl线程池状态要牢记以下几点:与ctl相关的三个方法workerscompletedTaskCount线程池的运行添加任务execute方法往线程池添加线程addWorker方法成功添加work...

2017-04-06 23:33:56 10151 11

原创 java.io.IOException 断开的管道 解决方法 ClientAbortException: java.io.IOException: Broken pipe

今天公司技术支持的童鞋报告一个客户的服务不工作了,紧急求助,于是远程登陆上服务器排查问题。 查看采集数据的tomcat日志,习惯性的先翻到日志的最后去查看有没有异常的打印,果然发现了好几种异常信息,但是最多还是这个:24-Nov-2016 09:54:21.116 SEVERE [http-nio-8081-Acceptor-0] org.apache.tomcat.uti...

2016-08-17 22:39:25 201503 21

原创 NoHttpResponseException异常的原因和解决方式

NoHttpResponseException异常的原因和解决方式

2023-02-09 18:26:02 5589 1

原创 没有打印日志时,排查生产问题,怎么办?

有时候,系统出了bug,我们又没有打印日志1. dump堆文件jmap -dump:live,format=b,file=${文件名}${PID}注意1.执行jmap命令的用户要与 要dump堆文件java进程的启动用户是一致的。2. jamp命令的jdk版本要与启动java进程的jdk版本也是一致的。2. MAT导入堆文件3. 编写OQL语句,查找对象4. 执行OQL语句点击MAT顶部菜单OQLselect * from com.fintell.charge..

2021-04-21 02:25:43 1139 1

原创 制作mysql8.0.22 绿色版

一、下载mysql压缩包,https://downloads.mysql.com/archives/community/我们选择Linux - Generic (glibc 2.17) (x86, 64-bit), Compressed TAR ArchiveMinimal Install版本,Minimal Install因为不包含调试和测试工具,所以安装包比较小,tar.xz压缩文件只有49M,解压后才300多M;下载完压缩包后,解压mysql到本地目录:xz -d ...

2021-02-03 03:51:30 1304

原创 Linux配置SSH免密码登录(任意类型账号)

Linux配置SSH免密码登录(非root账号)原创程序员欣宸 发布于2019-02-08 00:45:33 阅读数 5621 收藏展开Linux环境下,经常通过SSH从一台服务器登录到另一台服务器,并且登录身份不是root账号,每次都要输入密码挺麻烦的,所以今天就来实战如何配置非root账号的免密码登录;实战环境本次实战环境是三台CentOS 7.5机器,它们的相关信息如下所示:...

2021-01-31 15:19:06 654

原创 httpclient 打印warn日志Cookie rejected 的解决方案

使用apache-httpclient-4.5.10去请求度小满服务器时不停的打印一下warn日志WARN 2020-05-09 03:15:58.054 [main] [ResponseProcessCookies] [] [Cookie rejected [BAIDUID="96E1BF10938F8DA4EC97E070B99DBB13:FG=1", version:0, domain:baidu.com, path:/, expiry:Sun May 09 03:15:58 CST 2021]

2020-05-09 03:43:20 3005

原创 golang下载及环境配置

打算要开始学习一下go。 开篇环境配置:官网:https://golang.google.cn/dl/下载及安装说明:https://golang.google.cn/doc/install?download=go1.14.2.linux-amd64.tar.g1. 解压到/user/local:tar -C /usr/local -xzf go1.14.2.lin...

2020-04-30 10:46:49 764

原创 操作系统优化

查看操作系统发行版本:cat /etc/centos-release查看操作系统版本信息:cat /proc/version系统所有进程可以打开的文件数量file-max查看:cat /proc/sys/fs/file-nr设置:1. echo 6553560 > /proc/sys/fs/file-max2. /etc/sysctl.conf, 加入fs.f...

2020-03-30 11:01:28 1039

原创 磁盘满了以后的现象

1. 日志文件的修改时间有更新,但是打开文件后发现文件内容是之前时间写入的,2. 文件结尾写入内容不完整;3. mysql更新操作被挂起:服务端日志异常:com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting trans...

2020-03-29 22:16:20 519

转载 Can't attach to the process: ptrace(PTRACE_ATTACH, ..) Operation not permitted

使用jmap无法访问java进程Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 20289: Operation not permittedsun.jvm.hots...

2020-03-24 19:14:34 6557

原创 eclipse中maven父子项目层级展示

使用Project Explorer,如果没有则从window -- show view中搜索后打开;打开后点击Project Explorer窗口右侧向下的三角project presentation选择hierarchical即可

2020-01-01 00:05:09 1281

原创 org.apache.http.ConnectionClosedException: Premature end of 异常原因

org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 121; received: 0) at org.apache.http.impl.io.ContentLengthInputStream.read(Content...

2019-11-29 11:09:28 9787 6

原创 Axure9 设置点击时改变字体颜色

第一步设置交互样式1.选中按钮,点击“新建交互”选择样式效果中的"选定"将“交互”--“选定”下的字体颜色设置为红色第二步添加交互事件:添加交互事件,鼠标单击时“元件动作”--“设置选择/选中”;选择当前元件第三步:给需要同时只能由一个选中的组件分组,选中要设置的元件,右键将上面按钮元件都设置为B组;...

2019-08-08 15:40:02 27210 1

转载 java 线程状态转换

https://www.uml-diagrams.org/examples/java-6-thread-state-machine-diagram-example.htmlJava 6 Thread States and Life CycleUML Protocol State Machine Diagram ExampleThis is an example of UMLpr...

2019-07-11 16:10:13 294

原创 springboot配置文件加载

关键类:org.springframework.boot.context.config.ConfigFileApplicationListener最终加载文件的方法在其内部类Loader的load方法:private void load(PropertySourceLoader loader, String location, Profile profile,DocumentFilte...

2019-04-21 23:02:12 376 2

原创 greys

1.安装wget http://ompc.oss.aliyuncs.com/greys/release/greys-stable-bin.zipunzip greys-stable-bin.zipcd greys./install-local.sh2.运行[work@izj5e75deja8zjdqvp9xfnz greys]$ ./greys.sh 16248...

2019-04-21 22:16:32 432

原创 小内存快速搭建rocketmq测试环境

一、下载wgethttp://mirror.bit.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zipunzip rocketmq-all-4.4.0-bin-release.zipcdrocketmq-all-4.4.0-bin-release因为买的测试服务器内存只有2G,所以启动前要先修改服...

2019-03-02 14:39:34 1878

原创 rocket mq 消息投递状态

今天发现消息生产者发出了消息,但是消费者没有消费,开始以为开了多个客户端被别人消费掉了,后来上控制台一看,消费者就一个,又去查看消息消费状态发现是CONSUMED_BUT_FILTERED,检查了下消费者配置,才发现消费者的topic 与生产者相同,但是tag配置的与生产者不一致导致此消息沒有消費者消费,最终消息状态就是CONSUMED_BUT_FILTERED。1. NOT_ONLIN...

2019-01-24 13:15:39 15506 2

原创 nginx1.20.2 编译安装-支持https正向代理

需要root权限安装gccyum install -y gcc gcc-c++依赖以下三方库rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ ).........

2018-10-10 21:14:20 4794

原创 脏页刷盘策略,导致应用写日志阻塞,响应时间变长

今天大数据组的同学与测试组的同学对系统做压测,发现qps怎么也上不去,于是去帮忙看了一下;根据统计,发现接口响应时间不稳定,时好时坏,好的时候几十毫秒,不好的时候好几秒,差别非常大,而且几次压测完成后,最后的一些请求时间全都是两三秒的样子;于是使用greys去定位了一下相应慢的代码,发现竟然是写日志操作,难道是日志打印太多了,系统写日志将IO打满了?于是又重新做了一轮压测,压测的同时使用ios...

2018-09-27 23:45:01 2001

转载 NICE值 linux top命令

部门有人抱怨自己的进程在Linux上运行过慢,top查看运行情况。查看Cpu一栏发现ni占用过高,ni又是什么呢?ni: 用户进程空间内改变过优先级的进程占用CPU百分比网上对ni的解释似乎很难理解,那我们换个角度来看。假设在一个CPU轮转中,有2个runnable的进程A和B,如果他们的nice值都为0,假设内核会给他们每人分配1k个cpu时间片。但是假设进程A的为0,但是B...

2018-09-12 23:05:37 6266

原创 5.6 版本添加索引不会锁表;

详情见mysql官网文档:https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html上面链接已经失效,这两天发现已经迁移到这个位置了:https://dev.mysql.com/doc/refman/5.6/en/innodb-online-ddl-operations.html...

2018-09-12 00:36:47 6927

原创 web页面使用js加密敏感信息,java端解密

为了保证安全,现在web应用中,大部分都使用https了,但是https只对传输通道进行加密,一旦通道被破,明文数据就被攻击者获取了,为了保证数据传输过程中的安全性,需要对敏感数据传输前做一次加密,下面演示如何通过RSA加密,做到前后端数据的安全传输:首先我们需要一个前端js加密工具,这个工具叫JSEncrypt,官方主页:http://travistidwell.com/jsencryp...

2018-09-03 22:22:36 4389 2

原创 btrace安装,配置,使用,常见异常,解除安全限制

一、下载btrace可以下载它的源码包,它的源码包是一个gradle项目https://github.com/btraceio/btrace如果只想使用它排查问题,也可以直接下载它的bin包,下载地址https://github.com/btraceio/btrace/releases/可以直接通过这个链接下载1.3.8版本的btracewget https://githu...

2018-09-02 01:06:49 2000

原创 如何在一个超大的error日志中查找有几多少种业务异常

估计大家都遇到过线上应用出了问题,短时间内异常日志打了几百M或是几个G,这种情况下,如何判断异常日志中与业务相关的异常信息有多少种呢?1. 查找异常日志中业务代码包关键字,导出到一个文件中,例如这里搜索包含业务代码的异常:"at com.zw"grep "at com.zw."  error.log  > business.log2. 祛除重复的行:sort -k2n  busine...

2018-08-12 00:46:34 2177

原创 失败重试机制需要注意的问题

为了保证系统的可用性,很多情况下都会加入重试机制,很多框架就是这样做的,但是如果使用不好会带来很多问题:1. 如果加入重试机制,要求更新修改类的接口都被设计为幂等的,否则业务上会有重复执行的可能,带来不可预测的结果;2. 上下游超时如果设置不合理,会导致超时重试机制无用;例如:A调用B,B正常100ms返回,A给B设置150ms超时,而B设置了对C的一次重试,最终210ms正确返回了,A的...

2018-08-12 00:22:55 2903

原创 java 字典

 JVM版本与Class版本号jdk版本 class版本号 1.1 45 1.2 46 1.3 47 1.4 48 1.5 49 1.6 50 1.7 51 1.8 52 1.9 53 10 54 11 55            ...

2018-08-05 00:56:59 2206

原创 druid连接池,让mysql支持存储表情符号

mysql之所以会出现这个问题,是因为mysql的utf8并不是标准的utf8,它只有三个字节,保存不了4个字节的内容。解决方案:1. 更改字段编码类型为utf8mb4ALTER TABLE `表名`MODIFY COLUMN `字段名`  varchar(50) CHARACTER SET utf8mb4 NULL DEFAULT NULL COMMENT '注释';2.更改...

2018-07-18 20:45:09 2303 1

原创 java项目运行时更改类或包的日志打印级别

因为新入职的公司日志打印比较多,有些与业务无关、排查问题的日志打印没有必要实时输出,日志打印多了还会影响到系统性能,所以写了这个可以在运行时实时更改日志的功能,这个是针对logback的,如果使用的是log4j,请看LogLeverChangeController 类的main方法中被注释掉的示例。效果如下:下图中树形列表显示出所有可以设置日志级别的包和类,下图选中了org.apache.comm...

2018-07-14 16:09:23 7933 4

原创 window下获取jvm全部进程时异常:java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider

window上运行以下代码获取jvm进程:List<VirtualMachineDescriptor> vms = VirtualMachine.list();抛出ERROR:java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider: Provider sun.tools.attach.Wi...

2018-07-05 09:54:51 11015 1

转载 (转载)Netty优雅退出机制和原理

转载自:http://www.infoq.com/cn/articles/netty-elegant-exit-mechanism-and-principles?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk1.进程的优雅退出1.1.Kill -9 P...

2018-06-29 09:41:37 307

原创 通过ConcurrentHashMap的putIfAbsent方法实现对象锁

putIfAbsent方法往map中存储对象时,如果对象不存在则返回null,如果对象已经存在则返回value值,根据ConcurrentHashMap的并发特性,结合这个方法,可以实现一个简单的本地对象锁。import java.util.concurrent.ConcurrentHashMap;/** * 使用 ConcurrentHashMap的putIfAbsent方法,实现对象锁...

2018-05-22 17:02:08 4255 1

原创 正确使用load average的姿势

经常碰到load飙高的问题,再次总结整理一下:在操作系统中我们查看系统的负载一般会使用cpu使用率和load average两个值判断,load就是当前正在使用cpu的进程和正在等待使用cpu的进程数量之和,这个值怎样去看,估计好多同学并不清楚或只知其一二,结合下面三个问题来理解load值。关于load的三个问题问题1. 如何查看load?通过top命令、uptime命令和w命令可以输出系统1分钟...

2018-05-21 22:07:12 11808

转载 linux 的swap、swappiness及kswapd原理

转载的非常棒的一篇文章,真可谓一文在手,SWAP从此不再忧愁。敬请笑纳。概述本文讨论的 swap基于Linux4.4内核代码 。Linux内存管理是一套非常复杂的系统,而swap只是其中一个很小的处理逻辑。希望本文能让读者了解Linux对swap的使用大概是什么样子。阅读完本文,应该可以帮你解决以下问题:1、 swap到底是干嘛的?2、 swappiness到底是用来调节什么的?3、 kswapd...

2018-05-16 10:38:51 5951

rocketmq客户端jar

rocketmq 的客户端jar包,用来连接rocketmq 发布消息,生产消息等操作

2019-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除