自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ByYourSide_的博客

永远相信美好的事情即将发生。

  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 记一次CPU使用率低负载高的排查过程

一、背景历史原因,当前有一个服务专门用于处理mq消息,mq使用的阿里云rocketmq,sdk版本1.2.6(2016年)。随着业务的发展,该应用上的consumer越来越多,接近200+,导致该应用所在的ecs长时间load高,频繁报警。二、现象分析该应用所在的ecs服务器load长期飙高(该ecs上只有一个服务),但cpu、io、内存等资源利用率较低,系统负载参考下图:ECS配置:4核8G物理cpu个数=4单个物理CPU中核(core)的个数=1单核多处理器在系统负荷方面,多核CP

2020-05-28 20:37:39 3330

原创 layui省市区级联选择器的实现

 在很多场景下,都需要使用到省市区选择器,本文主要分享layui以插件的形式实现城市级联选择,并引入高德地图进行输入地址友好提示。效果如下:下面贴一下相关实现:1、省市区级联选择器的实现,并封装成符合layui规范的插件  //pca.jslayui.define(['table', 'form', 'layer', 'jquery', 'element'], fun...

2018-09-11 15:39:58 23029 11

原创 Semaphore实际应用

题目:顺序递增打印正整数,从1开始打印到100,中间换行分隔。不允许重复打印出相同的数字,比如打印结果里出现2个5,3个6之类的。要求如下: 1、使用三个线程A、B、C,其中线程A打印3的倍数,B打印5的倍数,C打印其他数字分析:三个线程竞争资源,可以使用信号量Semaphore实现方式一:package juc;import java.util.concurrent.Semaphore;import java.util.concurrent.atomic.Ato...

2020-12-18 15:52:48 394 2

原创 pinpoint agent改造之全局采样部分上报

背景公司在18年开始,使用pinpoint(1.7.2)做应用监控,考虑到数据上报所带来的网络、存储、应用负载等成本,只配置了部分采样(10%)profiler.sampling.rate=10因此,只能拿到10%的全局traceId,导致部分异常请求无法定位到上游的应用.经过相关调研以及成本估算(使用其他APM方案,例如skywalking、cat),还是决定通过改造pinpoint的方式来实现全局采样、部分上报.数据采样原理熟悉pinpoint进行全链路监控时,支持对请求的采样,某条请求是

2020-07-22 19:36:58 1452 2

原创 Runtime.getRuntime().addShutdownHook()方法说明

程序正常退出,系统调用 System.exit方法或者虚拟机被关闭时才会执行添加的shutdownHook线程。其中shutdownHook是一个已初始化但并不有启动的线程,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以,可以通过这些钩子在jvm关闭的时候进行内存清理、资源回收等工作。...

2020-05-29 15:24:21 414

转载 Spring与SpringMVC的容器关系分析

Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而实际使用时,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但是在实际项目中,同时配置Spring和SpringMVC时会出现一些奇怪的异常,比如Bean被多次加载,多次实例化,或者依赖注入时,Bean不能被自动注入,但是明明你已经将该Bean注册了的。找原因还是要看问题的根源,我们从容器

2017-12-26 13:49:19 333

转载 spring如何在action中获取请求的真实IP地址

@RequestMapping(value = "test") @ResponseBody public String test(HttpServletRequest request) { ResultBean result = new ResultBean<>(); String ipp=request.getRemoteAddr();

2017-12-21 11:27:59 1619

原创 eclipse通过findbugs插件生成html报告

首先,下载findbug插件,解压到eclipse的plugin目录下。下载地址:http://download.csdn.net/download/qq_29463709/10162960修改build.xml文件中第二行的value值

2017-12-18 13:55:33 4250

原创 关于MyBatis中String和varchar进行大小比较(均保存的数字)

业务场景:①beanpublic class ProductParam extends BaseQuery { private static final long serialVersionUID = 3115760968824884833L; /* * 贷款金额 */ private String amount; /* * 贷款期限

2017-12-13 18:02:58 6434

原创 关于MyBatis把0当做空字符串的解决方案

在开发中,一般在sqlmap中都会判断参数是否为null,以及是否为空字符串当参数为Int类型 0时,myBatis自动把0定义为空字符串“”因此我们在可能入参为0的地方多加一个判断: ,a.AUTHORIZE_AMOUNT = #{authorizeAmount,jdbcType=VARCHAR} 这是一个比较容易粗心的地方,出

2017-12-07 15:47:26 3525

原创 SSM框架整合所需相关jra包的maven地址

SSM框架整合:                         jdk1.7 +maven 3.11+tomcat7+mysql<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ht

2017-12-07 14:33:39 427

原创 关于switchcase和ifelse的效率对比分析

switch...case与if...else的根本区别在于: switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。具体地说,switch...case会生成一份大小(表项数)为

2017-12-04 14:28:50 1732

原创 关于JAVA中使用remove方法循环删除list中元素的常见误区

在开发中,对list中的元素进行删除是很常见的,但如若不注意,很容易走入误区,这是自己切实碰到的,记录下来给自己一点警示:1)错误1:循环遍历for(int i=0;i<list.size();i++){ if(list.get(i).equals("del")) list.remove(i);}  这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的

2017-12-04 11:09:33 2270

原创 关于Java中Native修饰符

native主要用于方法上:1、一个native方法就是一个Java调用非Java代码的接口。一个native方法是指该方法的实现由非Java语言实现,比如用C或C++实现。2、在定义一个native方法时,并不提供实现体(比较像定义一个Java Interface),因为其实现体是由非Java语言在外面实现的。说明: Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI

2017-12-01 14:20:12 3079

原创 Spring使用tx标签配置拦截器动态为指定方法添加事务

1、事务传播特性1)REQUIRED默认的,加入当前正要执行的事务不在另外一个事务里,那么就起一个新的事务。比如说,ServiceB.methodB的事务级别定义为PROPAGATION_REQUIRED,那么由于执行ServiceA.methodA的时候,ServiceA.methodA已经起了事务,这时调用ServiceB.methodB,ServiceB.meth

2017-11-20 14:51:38 1487

原创 关于Eclipse引入maven插件后,启动时maven报错的解决方案

毫无疑问,Maven是一款很好用的项目管理工具,很多人都喜欢在eclipse中安装maven插件,但当eclipse非正常关闭后,再次启动时有时候会报以下错误:  解决方案如下:                         1、使用eclipse新建一个workspace                         2、用新建的workspace下.metadata\.pl

2017-11-20 09:26:06 1252

eclipse中findbugs插件

将此插件解压放到eclipse的plugin目录下,在项目中选择build.xml文件,run as ant bulid,生成的html报告在d盘

2017-12-18

空空如也

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

TA关注的人

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