随笔分类 - 22.问题处理
摘要:问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。 解决过程: 1、根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。 2、找到该进程后,如何定位具体线程或代码呢,首
阅读全文
摘要:基于Spring Cloud框架开发时,经常会碰到各种开发问题,那么碰到这些问题时如何去解决呢?下面描述基于Spring Cloud问题定位的基本思路,大概可以分为如下几步: 排查配置问题 环境问题 排查代码问题 定位Spring-Cloud Bug 一、配置问题 (1)配置属性错误 配置属性错误包
阅读全文
摘要:要使用crontab定时器工具,必须要启动cron服务: crontab的语法,以备日后救急 参见:http://blog.csdn.net/zlzlei/article/details/7767599
阅读全文
摘要:一、查看系统语言 二、查看系统是否有中文包 三、Tomcat乱码解决 假设编码用utf-8 1、tomcat日志乱码 设置系统编码,先设置系统编码vi /etc/sysconfig/i18n,默认为: 修改为: 运行source /etc/sysconfig/i18n保存设置 2、设置jvm编码 1
阅读全文
摘要:一、问题描述 一个控制器提供RESTful访问信息: 遇到的问题是如果我用具有特殊字符的路径变量打到服务器,它将被截断。例如:http://localhost:8080/blah-server/blah/get/blah2010.08.19-02:25:47 参数blahName将为blah2010
阅读全文
摘要:Nginx安装过程中可能会报如下错误: 可以通过如下命令来查看安装包的对应关系: ldd $(which /usr/local/nginx/sbin/nginx) 解决方法如下: 32位系统则: 注: /usr/local/lib/libpcre.so.1 为prce安装后的文件地址 低版本prce
阅读全文
摘要:在实际项目中需要用到haproxy做TCP转发,下面主要针对haproxy的安装及TCP数据转发配置进行说明 一、安装Haproxy (1)编译安装Haproxy (2)修改Haproxy配置 (3)启动haproxy 二、Haproxy TCP数据转发 参考:http://www.echojb.c
阅读全文
摘要:最近在处理日志收集任务时,发现前端服务器用flume进行收集,逐步把所有的服务器都增加上。增加的差不多时。Kafka报了如下类似错误: 查了各种资料,发现是由于Kafka走的默认配置。发送的消息超过了最大字节导致的。修改如下参数即可: replica.fetch.max.bytes - this w
阅读全文
摘要:有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问
阅读全文
摘要:由于项目原因需要定期检查磁盘空间占用情况,常用检查命令如下: 于一日发现在使用Flume + Kafka进行数据同步时,某一局点数据无法进行消费,通过df -lh查看发现系统空间满了,如下: /dev/xvda1 20G 20G 0G 100% / 然后,通过du --max-depth=1 -h
阅读全文
摘要:在项目中经常会用到自定义注解,下面讲解一下自定义注解的理解及其应用。 一、元注解 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。 Java5.0定义的元注解: @Target @Retenti
阅读全文
摘要:在项目中经常会碰到需要利用Nginx作负载,最近在利用Nginx作负载均衡器时碰到一个很奇葩的问题。 本来按照以前的实现将打好的A.war包直接放到tomcat根目录(webapps)下,然后按照如下方式配置Nginx即可实现负载均衡: 这样调用..../mm/yy即可通过Nginx即可实现负载均衡
阅读全文
摘要:一、线程状态 在具体分析线程转储数据之前,我们首先要明确线程的状态。java.lang.Thread.State枚举类中定义了如下几种类型: NEW:线程创建尚未启动。 RUNNABLE:包括操作系统线程状态中的Ready和Running,可能在等待时间片或者正在执行。 BLOCKED:线程被阻塞。
阅读全文
摘要:Nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。 Nginx的upstream目前支持的5种方式的分配: 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果
阅读全文
摘要:经常碰到需要动态加载jar及class文件的场景。Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,但JDK仍提供了一整套方法来动态加载jar文件和class文件。 一、动态加载jar 二、动态加载class文件 完成上述两步操作后,即可使用Class.forName来加载jar中
阅读全文
摘要:动态加载jar包,在实际开发中经常会需要用到,尤其涉及平台和业务的关系的时候,业务逻辑部分可以独立出去交给业务方管理,业务方只需要提供jar包,就能在平台上运行。 下面通过一个实例来直观演示: 第一:定义一个抽象类 AbstractAction (稍后换成接口的实例) 第二:写个实体类继承一下 Te
阅读全文
摘要:系统在灰度环境上变更时发现JVM启动报错,详细检查JVM配置参数,发现新境了如下配置: -XX:+UseAdaptiveSizePolicy和-XX:+UseConcMarkSweepGC 初步猜想是JVM参数配置的问题,于是通过jmap -heap查看系统堆栈使用情况,如下: 从打印的堆栈信息上看
阅读全文
摘要:最近生产环境的系统在运行一段时间后,用户登录速度越来越慢,但是重启某一模块后,用户登录恢复正常。如此反复,令人提心吊胆。于是下定决心,找出问题原因。 趁着系统运行低峰期,打印出相应Dump文件,发现Dump文件中在ArrayListMultimap对象处包含大量HashMap$Entry,由于涉及信
阅读全文