自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (18)
  • 收藏
  • 关注

原创 Thread Starvation导致测试用例随机失败

问题描述项目迁移到新的平台上后,已有的一个测试用例出现随机的失败,在老的平台上,已经运行了大半年,都是好好的,本地也是运行的好好的,very trick~~~.没有办法,只能撸代码了。我们有一个功能,需要从不同的sever抓取数据,然后把数据聚合到map里面。为了加快响应速度,引入了线程池,代码如下:// 查询后台可用的server列表Set<Server> servers = this.serverService.getServers();Executor executor

2021-01-07 14:33:46 618

原创 SpringBoot基于数据库实现简单的分布式锁

简介分布式锁的方式有很多种,通常方案有:基于数据库 基于redis 基于ZooKeeper本文详细解释基于数据库实现分布式锁,不是所有的项目都需要使用redis zookeeper.原理是理由数据库的唯一索引,大致思想如下:1.根据一个值来获取锁,如果当前不存在锁,那么在数据库插入一条记录,然后进行处理业务,当结束,释放锁(删除锁)。 2.如果存在锁,判断锁是否过期,如果过期则更新锁的有效期,然后继续处理业务,当结束时,释放锁。如果没有过期,那么获取锁失败,退出数据库表是由JPA自

2020-11-25 15:42:20 569

原创 Docker build 中的坑

最近在用docker-compose实现本地环境的快速搭建,总结遇到的坑:Docker 相关命令:1. 删除所有容器 docker rm `docker ps -a -q`2. 删除所有镜像 docker rmi `docker images -q`3.根据容器的状态,删除Exited状态的容器docker rm $(docker ps -qf status=exited)Docker build -第一坑:Docker build 时会使用cache, 在容器化Mysql的过程中.

2020-11-25 14:27:24 1426

原创 Mac 自带日志分析工具Utilities

https://www.howtogeek.com/406592/how-to-use-the-console-on-macos-to-check-log-and-activities/

2020-09-29 11:43:38 4758 1

原创 java if else嵌套代码重构

当有大量的if else 嵌套可以考虑如下方法让代码结构整洁:当有大量的if else 嵌套可以考虑如下方法让代码结构整洁:

2017-11-24 18:30:30 5504

翻译 分布式文件系统的对比

背景:本文对常见的一个分布式文件系统做一个概要的对比,每种文件系统都有其适合的场景。本文只是从设计理念上做一个对比,便于大家快速的定位适合自己的文件系统。架构对比Discussion about architectureIn Lustre, metadata are managed by a single server and stores on its stora

2017-10-30 11:08:33 1856

原创 bitset存储用户和歌曲的购买关系

问题的背景1亿个用户,1000万首歌,当用户第一次购买了这首歌,后续就可以永久免费了,如何记录这个用户和歌的对应关系。方案是很多的,可以记录数据库,放到redis里面等都是可以的,但是随着用户和歌曲关系的增加,数据库或是redis是抗不住的,理论上用户和歌曲的关系有1亿*1000万中关系,要记录所有的关系,数据库或是redis都是不能满足的。下面我提出基于bitset的实现

2017-04-19 15:08:52 482

原创 2016总结---记录不敢平庸的我们

2016猴年最后一个工作日,就要结束了。2016年总的是一句话:在我计划之内,又在我的计划之外。我一直以来都是一个不喜欢记录得人,是害怕记录。一个是最大的悲哀就是记忆力太好,发生的事情很久都不能忘却。2016年经历年初选择的煎熬(去杭州还是待成都),最好还是决定待成都,为了家人和自己。2016年3月加入这个公司,公司做企业协同办公的,期望薪水宽容的环境,各种或大或小的福利,总之感觉不错,一

2017-01-21 16:34:37 441

原创 tomcat8 大量 http-nio 线程阻塞在waiting to lock <0x00000000feb52cf0> (a org.apache.coyote.AbstractProtocol$

最近线上应用发生了OOM , 该应用是部署在tomact8上, 发生OOM后,运维打印了线程dump和内存dump。当时,第一反义就觉得都OOM了,打印的线程dump 和内存dump 应该不可靠,但是也没办法,看下再说。首先,我用MAT 分析内存dump, 大小内存才用973M, 顿时很奇怪,这怎么会内存溢,由此证明,OOM打印的内存dump 无效。接着去分析Thread

2016-11-23 14:54:07 20353 3

原创 Unsolicited response received on idle HTTP channel starting with "[]\n"; err=<nil>

最近在用 golang 开发一个项目, 项目用的是 iris 这个web框架。我们的这个项目是用golang 实现的ADX (AD EXCHNAGE), 说白了就是一个广告的开关,说白了就是移动端请求ADX,ADX 再去请求第三方广告平台(简称DSP),然后把广告信息返回给移动端进行展示。 最近测试服务器报出一个诡异的的日志打印,服务器没处理一个请求都会打印这个日志,日志如下:20

2016-11-23 14:26:31 6870 2

原创 etcd3进行配置管理

最近在用golang 做一个广告竞价系统,里面有一个需求是可以随时暂停某些广告商的广告,这个涉及到运行时动态改变配置。首先配置写死在代码中,是绝对不可能实现这个需求的,每次从数据获取,虽说可以解决这个问题,但是耗时,每次请求都要去查数据库。有人会说引入缓存保存从数据库查询的值,定时去同步数据中的值到缓存。这是一个可行的办法,但是用etcd3的watcher会达到更加高效,优雅。etcd是一个高可用

2016-08-30 17:48:19 3321

原创 基于bitset实现手机号的黑白名单方案

目前很多app都把手机号码作为登录的账户名,本文介绍一种高效的基于手机号,来实现黑白名单的方案。在这里我先用一个例子来说明位图。      假设我有一个0到31的集合,集合里面的元素不重复,比如这样{0,3,1,5,2,19,7,8,31,21,10}。通过位图,我可以将这样的集合表示为11110001101000000001010000000001, 其中1表示该数值为下标的数存

2016-08-30 17:24:32 2165 2

原创 无心插柳柳成荫,有心种花花不开

最近打算换工作,想去寻求更大的空间,可以用一句话来概括2016年初的这段心里历程。那就是无心插柳柳成荫,有心种花化不开。前篇:无心插柳柳成荫,三次拒绝阿里天猫的offer,内存煎熬2015年最后一天上班,接到天猫从杭州打了电话,上次打来我直接回拒不考虑出川。这次想着要换工作了,聊下看哪里不足也是可以的。面试官也是说聊下,就这样聊了一个小时,漫天的谈自己熟悉的技术,从jvm->t

2016-02-03 16:44:11 1793

原创 定位web系统登录慢

今天定位一个电商网站登录慢的问题。据QA反映测试环境,最近出现登录缓慢。QA反映说B2B用户登录站点很慢,B2C用户登录就很快。定位第一步:用jstack 抓线程用B2B用户登录站点,同事服务器上用jstack连续抓取3次thread dump,分析三个thread dump文件,发现是在等待数据库返回数据。第一线程堆栈出现如下信息:我们搜索nid “0x7b86” 从

2015-12-02 16:07:47 1183

原创 F5刷新浏览器不缓存静态资源

最近在优化线上的一个web站点,发现很多CSS和js按F5刷新的时候,不缓存,这个可是一个可以优化的点啊!第一反映就是检查是否配置了缓存,用浏览器查看response header如下:看到这个response header 就更加让人奇怪了,明明配置了缓存,也配置了过期时间,为什么按F5刷新页面没有出现304 Not modify ?然后想到找个缓存了的来对比下,正常缓存的res

2015-11-25 10:11:05 2676

原创 JAVA问题定位大杂汇之java 虚拟机内存占用超出 -Xmx设置

最近一个同事遇到一个诡异的现象,jvm只分配了8G内存,可是通过top查看,该java进程占用了30G物理内存(该机最大内存32G)。该现象导致监控系统报警频繁并出现宕机。同事让我看下这个问题,我一看打消了他的疑惑。这个是一个非堆溢出问题,java进程占用了很多非堆内存,没有释放. NIO是引起该类问题的凶手,Groovy也会导致类似问题出现。非堆内存溢出,用jvm提供工具,是没有办法定位的。

2015-11-23 10:15:21 12241 2

GlusterFS分布式文件系统

GlusterFS分布式文件系统架构介绍,EHA算法介绍,5中分布式卷的详细介绍,性能测试对比

2017-11-07

常用分布式文件系统选型对比

介绍HDFS,GlusterFS,Ceph,等常用分布式文件系统的特点性能以及技术选型,

2017-10-30

js图片抽奖程序

js开发的图片抽奖程序,图片不停轮换,点击停止按钮,抽中的图片显示到页面上,每边显示两个,可以根据需求进行设计或二次开发

2014-01-17

regacesetup.exe

修复win7注册表,节约CreatProcess 740问题

2013-03-06

JVM参数设置

通过设置JVM的参数设置,可以提高系统的稳定性与效率

2012-08-29

jconsole 使用入门

jconsole可用于检测死锁,JVM性能调优

2012-08-29

EXTJS2 API

EXTJS2 的api,下载AdobeAIRInstaller就可以打开

2012-08-08

AdobeAIRInstaller

可以用查看ext的api,让你轻松开发ext

2012-08-08

支持IE和FF同时自动换行

同时支持FF和IE自动换行的CSS,用table表格实现

2012-06-14

alert的替代

boddy_Alert&#40;'对不起,您需要认真阅读并勾选此联盟协议才能进行下一步操作!','400','120','',4&#41;; 共5个参数 第1个:弹出提示信息 第2个:弹框的宽度 第3个:弹框的高度 第4个:点击确定时跳转的页面,为空则返回当前页面 第5个:提示类型(1-完成,2-错误,3-警告,4-询问)这里是数字,不要加引号

2012-03-16

mysql分页实例

mysql数据库分页实例,直接可以引用的分页类

2012-03-15

后台系统CSS模板

真正的是30个后台管理系统的CSS,不是想其他人骗人,可以解决你烦恼的CSS问题,让你开发更加快速,觉得资源很好的,就顶下!

2012-03-13

Java大文件上传

支持多文件上传,大文件上传,带有进度条,Java语言,用到DWR

2012-03-10

自动安装JDK和Tomcat的脚本

顶 0 踩 Auto Install JDK、tomcat and they connector. #执行这个脚本需要在root家目录下放好JDK、tomcat、的tar.gz源码包, #以及已经执行过的jdk(本人无法做到在jdk执行时输入yes和空格,所以这一步骤需要手动做。 #tomcat安装到/data1/apache-tomcat-5.5.31/,已设置环境变量。 #JDK在/usr/java,已设置环境变量。 #jsp页面的存放目录为“/web”,且该目录已经有了一个叫做test1.jsp的测试文件, #可以通过http://ip/test1.jsp进行访问。 #apache和tomcat开机自启动。 #防火墙80端口打开。

2012-03-06

Linux应用程序开发详解

详细解释Linux 应用程的开发,Linux的基本常用命令,Linux下的C编程基础,嵌入式系统基础,嵌入式开发环境的搭建,文件I/O编程,进程编程,多线程编程

2010-09-08

空空如也

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

TA关注的人

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