自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 容器环境minor gc异常频繁分析

这里写自定义目录标题1. 问题现场2. 问题分析2.1 频繁minor gc带来的影响2.2 GC日志分析The Young Generation2.3 `ParallelGCThreads`分析3. 问题解决4. 附录4.1 动态对象年龄判定4.2 usr, sys, real含义1. 问题现场近日,通过IMP监控发现,生产的容器环境gc很频繁-约40s一次,且都是minor gc,具体的gc日志如下:![image.png](https://img-blog.csdnimg.cn/img_conve

2021-09-29 16:58:23 2960

原创 Spring MockMvc模拟shiro登录

背景最近在使用SpringBoot MockMvc进行controller层的单元测试,在测试的场景中需要用户先进行登录,用户登录使用的安全框架是apache shiro,在使用的过程中发现,使用MockHttpSession无法再用户登录后获取到shiro的session。解决过程对于需要模拟用户登录的场景,我们一般的做法是先调用用户的登录接口,然后获取到session,然后使用...

2018-08-07 17:51:31 3920

原创 一种基于CAS生成唯一ID的方法

很多业务系统中有类似的需求:生成一个唯一的ID,作为订单记录,一般ID中存在一个时间戳。为了防止多线程生成重复,我们会在方法上加锁,同时,对于集群的情况,会给每台机器编号,这样一般能保证唯一性。根据这个思路,我们一般会写如下的代码来实现

2017-10-24 19:46:15 1114

原创 spring源码解析-从xml配置文件中获取bean

在spring的实际应用中,我们经常将bean定义在xml的配置文件当中,那么,spring是如何从xml加载bean的呢?今天我们将从源码的层面进行简单的解读。

2017-10-10 21:04:05 864

原创 公司内外网访问路由设置

背景公司网络限制,访问内网要走专门的OA专线,正常情况要么只能访问内网,要么只能访问外网,为了能同时访问内外,设置一个路由规则。解决方法首先要有两个网卡,一个网卡用于外网访问,一个网卡用于内网访问,笔者是笔记本,无线访问内网,有线访问外网,先查看ip,网关等情况: 红色框中分别就是笔者的有线和无线信息。内网同时访问的本质是访问内网时走内网路由,访问外网时走外网路由,外网访...

2018-04-26 16:53:38 4599

原创 java foreach遍历顺序

在java中,我们经常使用foreach(官方说法:The enhanced for statement)的形式来遍历Collection和Array,那么遍历的顺序是怎么样的呢? 一般,我们使用如下的形式来使用foreach的功能:for(var x : expression) statement上述代码的语义基本如是:x是变量,expression是需要遍历的Collection...

2018-03-21 21:28:05 14958 1

原创 Treiber Stack

Treiber Stack是基于CAS实现的无锁竞争的线程安全stack,jdk8的FutureTask也通过一个简单的Treiber Stack来维护等待线程。以下是具体的Treiber Stack的java实现:public class TreiberStack<E> { AtomicReference<Node<E>> top = new AtomicReference<>();

2017-10-25 11:33:35 405

原创 基于jdk8的格式化时间方法

背景jdk8之前,java使用Date表示时间,在做时间的格式化时,通常使用SimpleDateFormat,但是SimpleDateFormat是非线程安全的,在写代码时通常要将之定义为局部变量或者使用ThreadLocal包装; 第三方库joda-time封装了很多对时间的处理方法,可以作为jdk7及其之前的标准时间处理库。

2017-10-20 15:47:42 18933 1

原创 java类加载器

类加载器java虚拟机代码存储在.class结尾的类文件当中,但是运行程序的机器并不能识别class文件,这就需要一种机制将class文件解释为机器能够识别的代码,这就是类加载器类加载器的分类类加载器分为以下三类: - BootStrap ClassLoader(引导类加载器或者叫启动类加载器) - ExtClassLoader(扩展类加载器) - AppClassLoader(系统类加载器或

2017-09-21 16:40:53 204

原创 HttpClient发送HTTP请求

HttpClient客户端实现http post请求

2017-07-13 16:53:39 495

原创 读写锁ReentrantReadWriteLock锁降级

读写锁ReentrantReadWriteLock简介ReentrantReadWriteLock是ReadWriteLock接口的实现,ReentrantReadWriteLock中有两个静态内部类:ReadLock读锁和WriteLock写锁,这两个锁实现了Lock接口,ReentrantReadWriteLock支持可重入,同步功能依赖自定义同步器(AbstractQueuedSynchron

2017-07-06 11:29:49 564 1

原创 Gson,FastJson, Jackson测试

Gson是google开源的json序列化和反序列化工具,拥趸众多;FastJson是阿里巴巴开源的json工具,国产高品质;而 Jackson是老牌的json工具,spring的默认json转化就使用jackson。 json作为当前序列化最重要的形式之一,经常应用在各个项目中,而选择一种好的序列化工具当然就很重要,因此,我简单对这三种json工具进行了测试,测试使用Junit 4,分别对一个简单

2017-06-02 11:25:18 429

原创 karabiner macOs Sierra不可用后的临时解决方法

macOS Sierra Karabiner解决方法

2016-09-21 10:11:02 2167

原创 全局唯一订单号生成方法(参考snowflake)

全局唯一订单号生成方法(参考snowflake)Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees.简介对于一个较大的订购业务场景,我们往往需要能够生成一个全局的唯一的订单号,如何在多个集群,多个节点高效生成唯一订单号?我们参考了Twitte

2016-07-22 17:40:48 21628 5

原创 zookeeper 集群安装

参考zookeeper主页:https://zookeeper.apache.org/zookeeper下载页面:http://www.apache.org/dyn/closer.cgi/zookeeper/选择清华的镜像下载;选择目前的stable版本 3.4.8本次安装机器为172.23.28.51/52/531.下载wget https://mir

2016-07-09 09:24:48 443

原创 spring autowired mockito单元测试

spring + mockito 对autowired相关进行单元测试

2016-04-20 09:32:04 15980 9

原创 mybatis工作原理1---sqlsession

声明:本文参考mybatis官方中文文档http://mybatis.github.io/mybatis-3/zh/index.html,转载请注明出处。mybatis 版本为3.2.8,测试工具junit版本为4.12,eclipse simple maven工程,具体的dependency如下: org.mybatis mybatis 3.2.8

2015-04-08 17:00:28 1602

空空如也

空空如也

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

TA关注的人

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