自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

借你一秒

沉心静气,平常心,做好小事方成大事。

转载 Spring Cloud入门教程

一个非常好的Spring Cloud入门教程系列。推荐下:Spring Cloud入门教程系列

2019-04-29 19:53:38 293

原创 logback配置实例

logger和appender的关系root是根logger,所以他两是一回事;只不过root中不能有name和additivity属性,是有一个level。appender是一个日志打印的组件,这里组件里面定义了打印过滤的条件、打印输出方式、滚动策略、编码方式、打印格式等等。但是它仅仅是一个打印组件,如果我们不使用一个logger或者root的appender-ref指定某个具体的appen...

2019-04-28 16:44:38 224

转载 看完这个不会配置 logback ,请你吃瓜!

之前在 日志?聊一聊slf4j吧 这篇文章中聊了下slf4j。本文也从实际的例子出发,针对logback的日志配置进行学习。logack 简介logback 官网:https://logback.qos.ch/目前还没有看过日志类框架的源码,仅限于如何使用。所以就不说那些“空话”了。最直观的认知是:logback和log4j是一个人写的 springboot默认使用的日志框架...

2019-04-28 16:37:17 176

原创 免费开源ETL工具KETTLE

1.ETL概念ETL:Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。Kettle (正式名:Pentaho Data Integration)是一款基于JAVA开发的开...

2019-04-25 17:01:08 2223

原创 linux上查看java最耗时的线程信息

找到JAVA进程pidps -ef|grep java或则jps -mlv找进行下耗时的线程TID使用top -Hp pid可以查看某个进程的线程信息 -H 显示线程信息,-p指定pidtop -Hp 10906 查看最耗时的 TID即线程idprintf "%x\n" [tid] 转成16进制java中的线程类相关信息jstack 线程ID 可以查看某个线程的堆栈情况,...

2019-04-25 11:00:05 1164

原创 Java 枚举Enum理解

1.楔子枚举能继承别枚举吗?枚举能继承其他类吗?枚举能实现接口吗?枚举能被其他类继承吗?本文就是要探讨这些问题。2. 准备本文需要使用到反编译,请自行安装Jad(JAva Decompiler)反编译工具。由于该工具最新的版本也只支持Java 4,不支持Java 5,所以能够很好的保留jdk5之后的例如枚举等原生的编译结果。jad的使用教程:Java反编译工具Jad详解JD-GUI反编...

2019-04-24 17:32:20 171

原创 Java中double转BigDecima导致精度损失

1.楔子服务中如下的代码出现了诡异的不相等问题? 最后发现是double转bigDecimal时精度损失导致。代码和现象如下: @Test public void doubleToDecimal() { double amountDouble = 16.67; BigDecimal amountDecimal = new BigDecimal("1...

2019-04-22 14:03:30 383

原创 JProfiler性能分析工具

1.楔子jprofiler9.2是一款非常好用且功能强大的跨平台java必能分析工具,使用它可以有效地对JAVA程序的CPU、内存使用情况进行监控行装,同时还可以对JAVA程序的性能瓶颈进行分析。主要功能本地会话实时分析模式远程会话实时分析模式离线分析模式快照比较查看HPROF快照JDBC、JPA和NOSQL的数据库分析2.安装建议大家安装JProfiler9.2.1版本,...

2019-04-19 16:27:41 687

原创 spring boot中restfull api版本控制

1.楔子我们就是设计一套基于http协议的业务接口,但是随着时间变迁,业务的变化,或者我们协议本身的优化,都有可能要改变之前存在的接口。这时候给所有接口进行版本管理就显得很重要了,比如某个添加用户的接口,由于业务发展很大,接口的字段属性变化很大,只能重新定义一个新的接口,由 /v1/user/add 变成了 /v2/user/add,这样我们就要维护两套接口的逻辑,映射到代码里,就是要维护两个不...

2019-04-18 16:47:20 3203 1

原创 Spring Boot 对多线程支持-提高程序执行效率

1.楔子在我们的系统中,经常会处理一些耗时任务,自然而然的会想到使用多线程,JDK给我们提供了非常方便的操作线程的API,为什么还要使用Spring来实现多线程呢?1.使用Spring比使用JDK原生的并发API更简单。(一个注解@Async就搞定)2.我们的应用环境一般都会集成Spring,我们的Bean也都交给Spring来进行管理,那么使用Spring来实现多线程更加简单,更加优雅。...

2019-04-17 22:05:00 24169 9

原创 JAVA多线程实现方式

1. 楔子java有多种方式实现多线程,比如继承Thread类或实现Runnable接口创建无返回值的多线程、使用ExecutorService、Callable、Future实现有返回结果的多线程等,这些该具体如何实现?各有什么不同?在什么样的场景下使用哪种方式比较好?本文就来探讨这些问题。2.继承ThreadThread本质上也是实现了Runnable接口,他是Runnable的一个实例...

2019-04-16 23:06:21 212

原创 Restfull服务异常统一处理

1.前言在构建一个服务时,总会抛出各种异常,这时我们就需要进行统一的异常处理,这样就能保证对外有一致的返回。而且可以避免通过返回值判断函数调用结果这种繁琐的代码。2.Controller层方法,进行统一异常处理提供两种不同的方案,如下:方案1:使用 @ControllerAdvice (或@RestControllerAdvice), @ExceptionHandler注解实现;方案...

2019-04-10 20:19:43 420

原创 fastJson解析URL中&特殊字符报错

1.楔子在做消息推送的时候,突然报出一个fastJosn解析json错误的报错,找了好久都终于发现是因为URL中含有特殊字符需要转义的字符&,导致JSON解析报错。2.报错信息网上搜索这个错误,大部分观点是JSON中含有特殊字符。还有人说是fastjson版本,字符串编码等问题,最后被逐一排除,定位到是含有特殊字符&json文件中含有如下的URL:3.解决方式定位到...

2019-04-09 22:35:02 3924

原创 mysql中dual表

1.楔子今日在某项目数据库中发现每个库底下都有这样一张表,如下图所示:这张表有且只能有一条数据,表结构如下所示:我想这样做必然有其精神奥义和奇技淫巧,于是一探究竟。2. mysql中模拟dual表因为早期的mysql中是没有DUAL表的,应该是5.1之前。于是为了实现dual表的效果,就创建了上面的只有一条记录的Dual表来模拟。效果类似与后来系统自带的DUAL表。为了测试新建如下的...

2019-04-09 22:17:46 12205

原创 磁盘空间不足导致zookeeper宕机

楔子某服务需要使用Zookeeper作为配置管理和服务注册与发现,今天突然发现服务不可用,病症就是无法连接zk,服务不断的重试,报如下的错误。(zk版本为3.4.10 单机部署)定位使用df -Th查看文件的使用情况 , 发现磁盘空间满了,使用du -sh *查看当前目录下各个文件及目录占用空间大小 ,发现有个日志文件占据了195G, oh my god!果断删除该文件。然后重启zk,...

2019-04-03 10:32:58 1368

原创 JAVA自带工具之jps

1.命令介绍jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。功能描述:jps是用于查看有权访问的hotspot虚拟机的进程. 当未指定hostid时,默认查看本机jvm进程,否者查看指定的hostid机器上的jvm进程,此时hostid所指机器必须开启jstatd服务。 jps可以列出jv...

2019-04-01 22:36:36 181

原创 Unable to open socket file: target process not responding or HotSpot VM not loaded异常处理方法

1.问题某台服务器出现假死的现象,服务进程在,但是就是不工作。于是想定位下,先看了下服务器本身的状态都是OK的,然后看下服务的状态,先执行如下的命令,发现服务是存在的,如下:执行jps -ml输出如下:然后执行jstack 2276,报出如下的错误:2276: Unable to open socket file: target process not responding or Hot...

2019-04-01 21:13:06 10123 1

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