技术

Nginx 504 Gateway Time-out

背景

Nginx + Tomcat搭建的服务器,客户反映在在访问系统过程中会出现504 Gateway Timeout的错误,出现的频率还不低,但看上去并没什么规律。

Nginx代理配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
upstream test {
server 192.168.0.28:9087 weight=1;
}

server {
listen 81;
server_name localhost;
charset utf-8;

location / {
proxy_pass http://test;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

IntelliJ IDEA 导出增量补丁文件插件(Patcher)

介绍

当你遇到增量更新有没有完整的增量编译环境时,这款插件可以帮到你。

Patcher是一款导出增量补丁文件的IDEA插件,可轻松的将修改过的文件导出到指定位置。

安装

  1. 下载插件:GitHub
  2. 进入菜单:Settings –> Plugins –> Install plugin from disk,选择
  3. 安装完之后在IDEA中有4处可以看到“Create Patcher”的菜单项,详情参见GitHub

Tomcat Console日志引起应用挂起

问题背景

给客户新开发的同步服务,其实就是采用Quartz的写的定时任务,由运维部署到客户的服务器之后总是时不时出现应用卡住不动的问题。具体现象是在windows server下启动Tomcat,Tomcat弹出的Console一开始正常刷着日志,隔一段不固定的时间就有同事报告“Tomcat Console的日志莫名停住了,定时任务也卡住不执行,而且不报任何异常信息”。

Maven打包插件:自动添加css js版本号

jcv-maven-plugin、maven-replacer-plugin这两款maven打包插件均可以实现在打出的包自动添加js/css版本号。jcv-maven-plugin是专门为压缩js/css文件和添加js/css版本号设计的一款插件,使用的人很少,使用说明文档较为模糊。maven-replacer-plugin则可以在打包时匹配指定文件中的内容并替换,这里介绍用来自动添加js/css版本号。

Quartz+Spring Java配置

记录一下在Spring中整合Quartz的配置,当时遇到的问题有以下两个个方面:

  1. 能自动配置Job,新建Job无需手动修改配置。
  2. Job中的依赖需要Spring来装配

Dubbo异常:forbid consumer

使用Dubbo开发过程中,经常会遇到forbid consumer whitelist/blacklist的错误.
日志提示当前调用者被禁止访问某个服务,请检查下注册中心访问列表,还有黑名单和白名单。
实际情况是我并根本没有对服务做白名单和黑名单机制.

Oracle的命名规则与双引号

Oracle被大众所知的是对大小写不敏感,当你使用小写SQL语句创建表,表名和字段都会变成大写,在查询或更新表时无论你是小写还是大写表名和字段名都能正确执行。但是,在加入双引号之后情况就有所变化了。

Java集合

总结了几张简单的图

Collection

List

图中的绿色的虚线代表实现,绿色实线代表接口之间的继承,蓝色实线代表类之间的继承。