自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2018-03-08 18:01:48 1553 2

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

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

2018-03-07 17:31:10 19477 7

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

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

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

原创 性能优化随笔

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

2018-02-08 11:46:56 435

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

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

2017-12-22 00:17:55 1007

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

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

2017-04-06 23:33:56 8862 10

原创 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 137561 17

原创 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 200

原创 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 136

原创 操作系统优化

查看操作系统发行版本: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 206

原创 磁盘满了以后的现象

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

2020-03-29 22:16:20 108

原创 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 1288

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

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

2020-01-01 00:05:09 341

原创 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 1227

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

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

2019-08-08 15:40:02 9504 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 178

原创 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 184 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 256

原创 小内存快速搭建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 517

原创 rocket mq 消息投递状态

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

2019-01-24 13:15:39 3811 1

原创 nginx1.9.15安装

需要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 2104

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

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

2018-09-27 23:45:01 1159

转载 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 2023

原创 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 5949

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

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

2018-09-03 22:22:36 3355 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 1211

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

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

2018-08-12 00:46:34 1468

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

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

2018-08-12 00:22:55 1893

原创 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 1603

原创 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 1550

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

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

2018-07-14 16:09:23 4855 3

原创 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 6290 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 216

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

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

2018-05-22 17:02:08 2365

原创 正确使用load average的姿势

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

2018-05-21 22:07:12 10477

转载 linux 的swap、swappiness及kswapd原理

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

2018-05-16 10:38:51 3879

转载 linux 同步IO: sync、fsync与fdatasync

转载的,讲的非常棒;传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed wr...

2018-05-15 18:20:15 227

原创 java使用smtp协议发送邮件注意的问题

公司经常遇到发送邮件的问题,普通邮件发送就不说了,说一下无账号密码发送邮件的过程,在这里总结一下:邮件收发协议:发送邮件使用smtp协议,收取邮件使用pop或imap协议;这里我们只讲发送邮件的smtp协议;smtp发送邮件过程这部分说明是从网上摘抄的,写的很详细,我就贴过来修改了一下:使用smtp协议发送邮件给邮件服务器时规定了要做以下几件事:  1、使用"ehlo"命令和连...

2018-05-09 18:03:15 16122

原创 jsp页面自动国际化工具+js文件自动国际化工具--懒人的解决方案

   公司的应用要求都做国际化,jsp页面中有大量的中文,需要将它们使用spring 的国际化标签实现国际化;一个一个手工去查找中文、再转换为spring国际化标签、并生成中英文的国际化资源文件,这是个重复且无聊的工作,页面少还好,如果页面多,会让人发狂,所以写了一个提取jsp页面中的中文,将它们替换为国际化标签,并生成国际化资源文件的小工具;主要代码:import java.io.File;i...

2018-04-25 00:34:46 1422 2

转载 聊一聊分布式锁的设计

转载,没有找到原始出处。对于分布式锁,这篇文章是目前看到的最好的一篇文章;聊一聊分布式锁的设计转载 2017年02月18日 20:47:321896起因前段时间,看到redis作者发布的一篇文章《Is Redlock safe?》,Redlock是redis作者基于redis设计的分布式锁的算法。文章起因是有一位分布式的专家写了一篇文章《How to do distributed locking》...

2018-04-24 23:57:52 239

rocketmq客户端jar

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

2019-03-21

空空如也

空空如也

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

TA关注的人 TA的粉丝

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