代码改变世界

随笔分类 -  开源技术

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

2013-08-29 22:04 by idkkk, 763 阅读, 收藏, 编辑
摘要: 为了便于日志文件的管理及查看,将不同级别的日志文件输出到不同的日志文件中,有利于分析及查看日志,下面就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 阅读全文

浅谈一致性hash

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

memcached使用及监控

2013-05-28 18:42 by idkkk, 582 阅读, 收藏, 编辑
摘要: 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, 7362 阅读, 收藏, 编辑
摘要: 相信做过互联网图片的人都知道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 阅读全文

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

2013-01-31 09:55 by idkkk, 386 阅读, 收藏, 编辑
摘要: 实际的线上环境,如果使用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, 1134 阅读, 收藏, 编辑
摘要: 由于公司最近需要进行图片的集中存储,现在互联网行业主要有两种大的实现思路,基于简单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 阅读, 收藏, 编辑
摘要: 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 阅读全文

使用Jenkins && Sonar提升项目质量

2012-10-27 10:49 by idkkk, 951 阅读, 收藏, 编辑
摘要: 对于软件开发流程中,规范之重要性不言而喻,该文章主要聚焦在代码质量部分,通常提升代码质量的方式有code review,结对编程,借助第三方工具辅助,自动代码检查,今天主要讲如何让Jenkins和Sonar结合来提升项目质量,Jenkins为持续集成工具,负责自动从版本控制系统上获取源代码,Sonar为代码质量检测工具,二者均可单独使用,结合到一起无非是为了实现自动化代码检查,下面为实施步骤:1) 安装MySQL>> 安装# rpm -ivh MySQL-server-community-5.1.40-0.rhel5.x86_64.rpm# rpm -ivh MySQL-clien 阅读全文

搭建nexus作为maven私服

2012-10-27 08:53 by idkkk, 492 阅读, 收藏, 编辑
摘要: 使用maven作为java项目管理工具,实在是方便之极,目前github,googlecode上的大部分java项目基本都是使用maven作为项目管理工具,对于maven作为依赖管理,maven中心服务器或者一些开源的第三方私服,可以满足大部分需求,但是在企业内部往往会面临内外网隔离,私有jar包的依赖管理问题,这样maven私服的需求自然而然就来了,OK,咱现在就开始,Let's go......1) 安装nexus# tar zxvf nexus-2.1.2-bundle.tar.gz# mv nexus-2.1.2 /usr/local# cd /usr/local/nexus- 阅读全文

64位RHEL5系统上运行yum出现"This system is not registered with RHN”的解决方法

2012-09-25 13:58 by idkkk, 425 阅读, 收藏, 编辑
摘要: 在红帽EL5上运行yun,提示“This system is not registered with RHN”,证明你的linux没有在红帽网络上注册,所以无法下载上面的软件包,替代方案是采用centos源。1.卸载rhel的默认安装的yum包查看yum包:# rpm -qa|grep yum卸载yum包:# rpm -qa|grep yum|xargs rpm -e --nodeps2.下载新的yum包并安装(请注意下载对应系统及位数的安装包)# wget http://centos.ustc.edu.cn/centos/5/os/x86_64/CentOS/yum-3.2.22-39.el 阅读全文

在同一应用中让struts1与struts2和平共处

2012-07-30 09:34 by idkkk, 893 阅读, 收藏, 编辑
摘要: 1 前言本文档的目的是为了让CLAP同时支持struts1以及struts2,兼容两者在同一个app中共存,运行前端既可以使用struts1进行开发,又可以使用struts2进行开发。由于现有的大部分项目采用struts2进行开发,为了降低迁移成本以及提升CLAP平台的适用范围,故此文档的目的也源于此:让CLAP(内置struts1)支持struts2。Struts2源自webwork2,struts2与struts1不是师出同门,两者兼容在理论上应该完全没有问题。集成主要包含两大部分:配置、jar包。2 集成步骤2.1 配置>> web.xml配置:<filter> 阅读全文

Memcached入门指南

2012-05-24 09:14 by idkkk, 1631 阅读, 收藏, 编辑
摘要: 1 概览Memcached是一个免费开源,高性能的,分布式内存对象缓存系统,为了加快动态web应用程序,减轻数据库负载。Memcached是一个内存中的基于键/值存储任意数据小片段(字符,对象),存储的数据可以来源于数据库调用,API调用或者页面呈现。Memcached简单而强大,其简单的设计促进快速部署,易于开发,解决了面临大量数据缓存的许多问题。针对主流语言都提供了API。Memcached核心是一个简单的键/值存储。Memcached本身服务器间不相互通讯,不进行数据同步,存在单点故障问题,如果需要保证数据的高可用性,则需要通过其他手段来实现。2 服务器端2.1 安装2.1.1 包安装D 阅读全文

Linux9/Linux ES3上安装MoinMoin

2012-04-09 15:13 by idkkk, 701 阅读, 收藏, 编辑
摘要: 公司最近准备做信息共享,此任务交予我来搞定,我自然而然就想到了使用Wiki,由于Wiki良好的开发性及共享性,而且本身就是为了共用的写作目的而产生的,实在是不二之选。在众多Wiki之间来回比较,最终选择了MoinMoin,这个来自于德国人开发的Wiki,基于GNU GPL协议。该文主要记录下在Linux ES3下如何安装MoinMoin,以备忘:)1) 安装Python2.3.4解压缩Python2.3.4包后,进入解压缩后的目录:# ./configure --enable-unicode=ucs4 # make # make install2) 安装MoinMoin解压缩moin安装包后, 阅读全文