代码改变世界

将不同级别的日志输出到不同的日志文件中

2013-08-29 22:04 by idkkk, 771 阅读, 0 推荐, 收藏, 编辑
摘要:为了便于日志文件的管理及查看,将不同级别的日志文件输出到不同的日志文件中,有利于分析及查看日志,下面就log4j如何来实现该功能做详细的配置。Log4j中几个概念,Level,Appender.Level:日志级别,DEBUG,INFO,WARN,ERROR,FATAL,逐级提高;Appender:日志输出到的目标,有Console,File,Database,Mail等等;# Log configlog4j.rootLogger=ERROR, consoleLog, appLog, errorLoglog4j.logger.org.rubik=DEBUGlog4j.appender.cons 阅读全文

关于异步调用

2013-07-26 18:29 by idkkk, 473 阅读, 0 推荐, 收藏, 编辑
摘要:相信有多年编程经验的老鸟都明白,同步与异步的区别,这里只谈异步的使用,不谈为何使用异步,以及何时使用异步,好,让咱们步入正题。谈到异步就不能不说起多线程,多线程的含义举个现实中的例子,很容易理解:传统的程序一般都是按照时序一步步执行的,比如:起床->穿衣服->洗脸,每一件事情完成后才去继续下一件事情;如果这中间穿插开电视听新闻,其实是可以充分使用多线程并发的优势的,开着电视,然后去刷牙洗脸,新闻是可以继续听的,多线程说的通俗一点就是同一时间点做N件事。对于多线程编程在CPU内核越来越多的情况下变得越来越重要,对于Java有本并发编程的圣经 - “Java并发编程实践”可以好好参读, 阅读全文

浅谈一致性hash

2013-06-30 12:04 by idkkk, 953 阅读, 0 推荐, 收藏, 编辑
摘要:相信做过互联网应用的都知道,如何很好的做到横向扩展,其实是个蛮难的话题,缓存可横向扩展,如果采用简单的取模,余数方式的部署,基本是无法做到后期的扩展的,数据迁移及分布都是问题,举个例子:假设采用取模的方式来实现的分布式缓存,缓存节点为10个,这时候所有的缓存分布在10个节点上,任意一个节点down掉都会导致其他的缓存需要重新分布,从而会让所有缓存失效,这种在互联网应用上基本上是绝不允许出现的,那么如何来解决这个问题呢?!一般目前互联网上的很多开源应用都是在客户端采用一致性hash来实现分布的,一致性hash又称环状hash,任意一节点出现问题不会影响全局数据有效性,具体的原理可以参考这里:一致 阅读全文

memcached使用及监控

2013-05-28 18:42 by idkkk, 583 阅读, 0 推荐, 收藏, 编辑
摘要:memached,分布式缓存,在互联网应用中应用相当普遍,性能极佳,下面简单说一下memcached的使用及监控。1) 确认libevent已安装# rpm -qa | grep libevent# yum install libevent-devel(如果是RHEL5请查看我的另外一遍博文:http://www.cnblogs.com/javapro/archive/2012/09/25/2701462.html)2) 安装memcached# tar zxvf memcached-1.4.15.tar.gz# cd memcached-1.4.15# ./configure --prefi 阅读全文

GraphicsMagick安装及使用

2013-04-28 07:36 by idkkk, 7495 阅读, 0 推荐, 收藏, 编辑
摘要:相信做过互联网图片的人都知道ImageMagick,超牛逼的图片处理库,而GraphicsMagick是从ImageMagick5.5.2的分支版本,支持多达88种图片格式的处理,而且相当稳定及高效,对于java应用来说GraphicsMagick+im4java简直就是天作之合。1) 安装GraphicsMagick# tar -zxvf GraphicsMagick-1.3.17.tar.gz# cd GraphicsMagick-1.3.17# ./configure --prefix=/usr/local/graphicsmagick-1.3.17输出以下内容,注意红色部分:Deleg 阅读全文

近期调优总结

2013-03-26 17:54 by idkkk, 388 阅读, 0 推荐, 收藏, 编辑
摘要:近期由于公司举行大促,访问量巨增,预计流量为平时流量的60倍,在增加了两台服务器后,为了更大程度的压榨服务器性能,从各个层面上进行了优化,现在做下总结以备忘。1)nginx优化nginx优化主要涉及多核,IO线程数(需要同步修改系统IO),epoll,gzip等等,可能还会涉及upstream,注意以下标红部分:worker_processes 8;worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;error_log /var/log/nginx_error.. 阅读全文

Linux常用命令

2013-02-26 11:29 by idkkk, 197 阅读, 0 推荐, 收藏, 编辑
摘要:本文只是对常用的Linux命令做下简单记录,如果是Linux老鸟请直接略过。1) 创建目录# mkdir -p /data/logs2) 删除文件或者目录# rm -rf /data/logs/search.log3) 挂载镜像文件# mount -t iso9660 -o loop /software/64.iso /mnt/iso4) 增加用户及用户组,并设置密码# groupadd mqm# useradd -d /var/mqm -g mqm -G mqm mqm# passwd mqm5) 安装软件5.1) 源代码安装# tar zxvf memcached-1.4.15.tar.g 阅读全文

解决Tocmat6.x的catalina.out日志不断增加问题

2013-01-31 09:55 by idkkk, 390 阅读, 0 推荐, 收藏, 编辑
摘要:实际的线上环境,如果使用tomcat作为运行容器,需要注意默认的tomcat的日志配置,在线上很容易导致产生大量垃圾log,有可能会导致tomcat不堪重负而down掉,为了避免产生上述问题,则需要进行配置调整。修改$TOMCAT_HOME/conf/logging.properties,配置如下:1catalina.org.apache.juli.FileHandler.level = FINE1catalina.org.apache.juli.FileHandler.directory = 日志目录1catalina.org.apache.juli.FileHandler.prefix = 阅读全文

FastDFS && Nginx安装及使用

2012-12-23 10:10 by idkkk, 1136 阅读, 0 推荐, 收藏, 编辑
摘要:由于公司最近需要进行图片的集中存储,现在互联网行业主要有两种大的实现思路,基于简单hash实现,基于分布式文件系统实现(比如淘宝的TFS,Amozon的S3,google的GFS等等),下面主要讲解如何使用FastDFS来实现,架构图如下:>> 安装FastDFS1) 安装libevent# rpm -qa | grep libevent# rpm -qa | grep libevent | xargs rpm -e --nodeps# tar -zxvf libevent-2.0.20-stable.tar.gz# cd libevent-2.0.20-stable# ./con 阅读全文

Linux启动常用设置

2012-11-26 07:08 by idkkk, 191 阅读, 0 推荐, 收藏, 编辑
摘要:1)使用chkconfig设置自启动脚本(以配置自启动Tomcat为例子)1.1) 在/etc/rc.d/init.d/下新建startTomcat,添加如下内容:#!/bin/sh# chkconfig: 345 63 37# description: tomcat server init scriptsu - root -c '/usr/local/tomcat/bin/startup.sh'1.2) 修改文件属性为可以执行权限#chmod 755 startTomcat1.3) 配置脚本#chkconfig --level 345 startTomcat on2)设置li 阅读全文