Arganzheng's Blog

stay hungry, stay foolish

如何让一个Quartz实例不执行任务

Quartz默认的集群方式每个节点(实例)都是对等,都可以创建任务,都会去抢任务。但是有时候我们希望能够有不对等的结构,比如运营后台提供友好的界面管理任务,然后有一些肉机,专门执行任务。这样的好处,任务不会影响到管理后台,管理后台的发布也不会中断执行中的任务。 谷歌和翻看官方文档都没有发现这个配置,只能查看源码了。最后发现有一个类看起来就是为这个实现的: package org.quar...

怎样获取form-data方式POST的数据

昨天君仔问我说遇到一个诡异的问题,他有一个controller方法,用x-www-form-urlencoded方式提交表单就可以正常绑定数据,但是用form-data方式提交就绑定不了: @Controller @RequestMapping("/tag") public class TagController { @Autowired private NanTianM...

高可用分布式缓存系统

需求 由于Redis的单线程模型,我们需要对Redis进行多实例部署,然后采用一致性哈希进行负载均衡。但是一致性哈希只是解决增加节点的影响范围,不能做到实时的主从自动切换。而我们知道Redis是支持主从同步,同时提供了sentinel支持主从自动切换的。能不能在一致性哈希的基础上对每个节点增加主从自动切换呢,并且这一切都对客户端透明呢? 设计 实现 Redis的Java客户端一般...

记一次Redis错误排查经历

日志集中式监控平台上线已经有一段时间,但是大部分情况下只是作为发布或者出问题时查看日志的便利工具使用。平时大家都不怎么主动上去看看。于是前几天把应用的错误日志也加上邮件、Hi和短信报警,马上就收到很多错误报警,引起了大家的重视。其中有一个Redis报错: Push notify error: => redis.clients.jedis.exceptions.JedisConnect...

Spring的Bean生命周期和扩展点

Bean扩展点 1、JSR-250注解(推荐方式) @PostConstruct @PreDestroy 2、实现Spring接口 InitializingBean: afterPropertiesSet() DisposableBean: destroy() 3、XML配置 init-method, default-init-method de...

Tomcat调优

Tomcat有线程池的概念,比如下面这个配置: <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <!--APR library loader. Documentation at /docs/apr.html --> <Liste...

记一次MySQL主从同步错误处理

其实MySQL主从同步错误已经出现过好几次了,每次处理完都没有整理,今天恰好又出现了一次,花点时间记录一下,方便下次操作。 问题 今天早上收到报警短信,说印尼的一台机器home目录快爆满了,登上去看了一下,发现是一个应用的日志文件超级大,有好几百G。查看了一下日志内容,发现都是”Too many open file”错误。用ulimit -a查看,发现open files只有默认的655...

Metric监控系统

背景 对系统运行中的一些情况进行统一上报,监控,统计和展示。允许业务自定义监控项。有助于了解系统的运行情况,如性能,访问频率,Cache命中率等。 实现 具体参见笔者写的另一篇文章:java服务端监控平台设计 使用 首先需要配置pom.xml,引入monitor-client包: <dependency> <groupId>com.baidu.globa...

InfluxDB安装和使用

influxDB v0.9.0 处于 pre-release 阶段,在底层存储、集群和数据模型和接口都与之前的版本有所不同,并且不兼容的。所以安装使用之前需要先确定版本。一般来说当然是0.9.0更好,但是鉴于现在处于不稳定阶段,所以我们还是采用了v0.8.8版本。 influxDB官网有一个在线体验网站,可以上去体验一下。 mac下使用homebrew安装本来是一件非常简单的事情: b...

安装OpenTSDB

安装HBase OpenTSDB依赖于HBase作为底层存储,所以需要先安装HBase。 因为是Java编写的,安装其实非常简单: mkdir -p ~/tools/hd cd ~/tools/hd wget http://www.apache.org/dist/hbase/stable/hbase-1.0.1.1-bin.tar.gz tar xfz hbase-1.0.1.1-bi...