- 博客(48)
- 收藏
- 关注
原创 故障:Kafka异步发送致使所有相关线程阻塞
这个故障在我们前段时间线上服务碰到过,具体的问题描述跟KAFKA-1415里提及的完全一样。简单概括就是,正常情况下,使用kafka异步producer.send()发送消息时,会在后台创建一个守护线程,通过jstack查看jvm线程堆栈信息会找到这个线程,默认名称:ProducerSendThread-。ProducerSendThread驻留在后台,负责将待发送的消息批量往kafka ...
2015-07-17 10:54:15
2595
原创 Oracle:关于user_jobs表显示的total_time含义
这个字段表示对应job运行的总时长,单位是秒。 它实际是一个累加值:(total+(sysdate-nvl(this_date,sysdate)))*86400 TOTAL_TIME 等于过去job执行时间总和+当前运行时间当前运行时间等于系统时间点-本次job启动时间点参考:http://www.itpub.net/thread-1661652-1-1.html...
2015-07-17 10:00:19
6085
原创 Linux文件系统目录结构整理
/usr 是“UNIX Software Resources”的缩写,并不是user的缩写,中文是UNIX操作系统软件资源目录。 系统默认的软件(Linux发行版提供的软件)都会放置在/usr目录下。 /usr下的子目录包括: /usr/local 系统管理员(root)在本机自行安装自己下载的软件(却别与发行版自带的软件),建议安装在此目录。/usr/local 下包...
2014-10-23 20:03:22
180
原创 转:Bash 3.0-4.3命令执行漏洞分析
注:本文转自http://blog.knownsec.com/2014/09/bash_3-0-4-3-command-exec-analysis/版权所有&原作者:知道创宇lu4nx - - - - - - 该漏洞相关报道: http://www.freebuf.com/news/44805.htmlhttp://www.csoonline.com/a...
2014-10-16 17:03:54
224
使用 sshpass 进行非交互式的 SSH 连接
首先,抱歉,这个标题很拗口。说一下,sshpass 能干吗。我们在终端命令行下直接用 ssh 连接远程主机时,默认状态下,会提示输入密码。可以看到,这个步骤实际上是在终端下以交互式的方式完成的 — 终端给提示,用户手动输入密码。由于需要人工参与,在脚本中进行自动化的 ssh 远程连接就不可能实现了。在自动化脚本中进行 ssh 连接,我知道的方式有三种:1. 通过 ssh-key 的方式建立两台...
2014-10-11 10:57:31
808
Linux: LS 命令参数使用总结
以下是根据 man ls 页面进行的总结。 1. 关于 -d 选项。根据 man 里的描述,-d 参数要完成的事情是:-d Directories are listed as plain files (not searched recursively)看两个例子,例子里 abc 是一个目录:$ ls -l abctotal 0drwxr-xr-x 2 w...
2014-04-05 00:34:24
366
原创 在 Shell 命令提示符里显示当前服务器的 IP 地址
工作中经常需要从本地终端同时 ssh 连接多台服务器,因而需要开启多个终端标签,这种情况下总是记不清哪个标签对应的是哪台服务器。如果每次都 ifconfig 查看 IP 就有些麻烦了。 解决这个问题的最便捷的方式是,直接在shell提示符里显示 IP 地址。环境变量 PS1 可以配置提示符的显示效果。要显示 IP 地址,可以使用下面的设置:export PS1="[\u@`/...
2014-03-07 14:26:30
1167
原创 Shell 命令:如何从 ifconfig 输出结果中截取 IP 地址
匹配的关键是正则表达式。工具可以考虑 grep 或者 sed。 方案1:借助 grep:ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' 方案2:借助 sed:ifconfig | sed -E...
2014-03-05 20:58:24
3302
原创 Shell 脚本里实现 - 通过 lftp 登录服务器并拷贝文件到本地
lftp -u $USER_NAME,$PASSWD $REMOTE_SERVER_IP -e "mget ${JAR_PATH}* ; exit" 参见:chinaunix - 8L
2014-03-05 20:46:49
1360
原创 执行 Shell 脚本时报: "/bin/sh^M : bad interpreter"
本地把脚本写完上传到服务器,执行时报错:写道/bin/sh^M : bad interpreter错误原因很明显是文件格式问题。 修复方法:在服务器端使用vi/vim打开脚本文件,执行如下指令并保存文件退出即可。 :set fileformat=unix 参见:SO...
2014-03-05 20:35:38
131
原创 简单记录下在mac下安装虚拟机装xp系统碰到的问题
虚拟机用的是 VirtualBoxxp镜像是某Ghost XPVirtualBox 新建虚拟机,按照向导走,基本使用默认设置。分配内存的时候可以调大点(默认不足200,调大到了512)启动后进入安装菜单,试图在C盘安装系统,报错“Non-bootable disk”通过winpe进入系统,查看分区发现压儿没有C盘,导致winpe下直接安装系统也失败最后通过dos命令...
2014-01-05 13:21:01
604
原创 Windows7 下安装 JDK 7 时版本冲突问题解决
自己电脑上一直用的 JDK 版本是 1.6,今天决定更新到 1.7,在安装 JDK 1.7 后,控制台输入 java 命令测试是否安装成功的时候报错了:C:\Users\wxl24life>javaRegistry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'has value '1.7', b...
2013-10-29 14:05:30
204
原创 Linux 下安装 Oracle(Sun) JDK
最近部门引入了一批新服务器,要在上面安装 JDK。为了保持与现有机器上 JDK 版本一致,需要下载安装 Oracle JDK。 使用 yum 安装工具虽然可以安装,但是不能保证所安装的版本是自己想要的。比如,如果我需要安装的版本是 JDK 1.6.0_22,就需要去 oracal 官网下载了。 找到对应的安装文件 jdk-6u22-linux-x64-rpm.bin,下载,上传...
2013-10-24 13:53:16
209
原创 Linux 下查看本机 IP 地址
这个需求由来已久。 经常在多个终端下从同一台服务器 ssh 登录到其他几台服务器,shell 界面相同并且 shell 提示符(shell prompt)也完全一样的情况下,通过命令迅速区分出哪台服务器总是很迫切。 在 linux 下可以通过两个命令来查看本机的 IP 地址: 支持包括 Linux 在内的所有 Unix 系统。$ /sbin/ifconfig ...
2013-10-23 21:03:11
3366
Java 类成员的访问控制符
今天被问了一个 Java 基础知识:Java 类成员的访问控制符(Access Modifier)有几种?这些访问控制符之间有何区别? 首先回答第一个问题。通常我们可以显示声明的访问控制符有三个:public, private 和 protected。但是,我们也会碰到另一种情况:在成员变量或者方法声明前面不加任何的访问控制符。通过这种方式声明的成员具有缺省访问控制(default a...
2013-10-20 19:02:11
2022
遭遇 java.lang.ExceptionInInitializerError
刚才在测试一段代码时碰到了 java.lang.ExceptionInInitializerError。 简单搜了下资料,这个 error 出现的原因是:在静态初始化块(static initializer,包含静态变量初始化语句)中有 unchecked exception 抛出而没有被捕获住。 借助 java doc 文档 中的介绍,记录几个要点。 1、首先,它是一...
2013-10-17 14:11:51
145
finally块抛异常或者包含return语句时的注意事项
先看两段代码,请试着分别写出它们的输出结果。 1、try-catch 块与 finally 块同时抛异常。 import java.io.IOException;public class ExceptionInFinallyBlock { public static void main(String[] args) { try { ...
2013-10-08 22:15:35
530
1
原创 SVN 提交时报事务过期解决方案
这个错误是在SVN提交的时候报的:写道Transaction is out of date svn: Commit failed (details follow)... 解决办法: Team -> SVN update(更新)这里可以对整个工程执行一次 SVN update。 参考:SO...
2013-09-17 16:21:34
1166
原创 ActiveMQ 源码学习 2:从 CommandTypes 谈常量接口反模式
在上一篇文章里,我写了在阅读 ActiveMQ 的一小段源码时碰到的两种设计模式:抽象工厂和策略模式。实际上 ActiveMQ 源码量很大,只要认真分析,你会找到很多设计模式的应用场景。其中,有一个模式非常典型,并且它在整个 ActiveMQ 的源码架构中扮演者非常重要的角色,它就是 GoF 设计模式中的:命令模式(Command Pattern)。Command 是 ActiveMQ bro...
2013-08-15 23:43:18
129
ActiveMQ 源码学习 1:从源码中找寻设计模式的踪影
今天主要分析两个类的实现。首先看一下 org.apache.activemq.broker.BrokerFactory 类。从类的命名上看似乎使用了 GoF 设计模式中的抽象工厂模式。我们通过源码来分析一下是否真的应用了这种模式。 public final class BrokerFactory { // ... public static Bro...
2013-08-15 16:58:13
208
探讨Java类中成员变量的初始化方式
在 Java 里定义一个类的时候,很多时候我们需要提供成员变量,成员变量专业叫法是 Memeber Variable 或者干脆的叫作 Field. 根据是否使用 static 关键字修饰,可以将 Field 分为两种:static field:也称作 class variable,这种 filed 属于 class,并不属于单个 instance,所有该 class 的 intance...
2013-08-14 22:29:03
1101
原创 将 Vim 配置成 Python IDE
今晚按照这篇向导 Turning Vim into a modern Python IDE,对 Vim 装饰了一番,作为以后开发 Python 代码的 IDE。 先上效果图: 这张图里用到的插件有(所有快捷键适应于默认的 .vimrc 配置下):Gundo 用于查看本地文件修改历史记录 (最左窗口)快捷键:,gNERD Tree 查看目录树 (左二...
2013-08-11 22:11:09
159
原创 SLF4J api 和 binding jar 版本不兼容导致的 IllegalAccessError
这是前几天碰到的一个由 SLF4J 引发的异常Exception in thread "main" java.lang.IllegalAccessError: tried to access fieldorg.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory at org....
2013-08-05 00:14:41
219
原创 对 SLF4J 的一点理解
以下内容主要参考 SLF4J FAQ 文档。只用于记录我的一点理解,如有必要请仔细阅读 FAQ 文档。 1. 什么是 SLF4J? SLF4J is a simple facade for logging systems allowing the end-user to plug-in the desired logging system at deployment time...
2013-08-04 23:16:09
284
原创 关于NoClassDefFoundError和ClassNotFoundException异常
java.lang.NoClassDefFoundError 和 java.lang.ClassNotFoundException 都是 Java 语言定义的标准异常。从异常类的名称看似乎都跟类的定义找不到有关,但是还是有些差异。我们先来看一下 java 规范中对这两个异常的说明: java.lang.NoClassDefFoundError:Thrown if the Ja...
2013-08-04 01:14:34
308
原创 资源列表
以下列表将不定期维护: Installing gcc with Cygwin - 2013/06/26pudb -- A full-screen, console-based Python debuggersvn faq -- 2013/09/17 TO READUsing terminator terminal -- Youtube video ----...
2013-06-26 13:59:14
77
原创 ActiveMQ消息持久化机制配置注意事项
在两个地方可以配置 persistent 属性,分别是broker端和client端。 broker端配置文件里的 broker 对象属性中有一个 persistent 属性,该属性的默认值是 true。在默认属性 true 的前提下,如果希望以 non-persistent 的方式传输消息,需要在 client(producer)端指定 DeliveryMode. NO...
2013-06-24 10:49:42
155
原创 ActiveMQ + Camel 实现消息路由
本文的目的是在 broker 端实现消息的路由分发,通俗点讲就是,根据消息的特征将消息分发到不同的 queue 或者 topic 上。要实现消息路由,最简单的方式是在 activemq 提供的 xml 配置文件下面构建路由规则。所使用的版本:ActiveMQ 5.6.0Camel 2.9.2在 ActiveMQ 的每个发行版的 conf 目录下包含了很多的示例 xm...
2013-06-06 20:47:46
732
原创 JBoss部署启动后报错“Apparently wrong driver class specified for URL”
错误堆栈信息如下所示。url 出于隐私没有列出,但是可以肯定的是 jdbc url 配置信息正确无误。 从错误描述 Apparently wrong driver class specified for URL 看,应该是jdbc driver的问题 。 简单在网上搜了下这个错误,尝试将 oracle 的 jdbc driver JAR 包放在了Jboss deploy目...
2013-04-16 21:29:34
365
原创 maven install 时报 COMPILATION ERROR 软件包不存在
[ERROR] COMPILATION ERROR :[INFO] -------------------------------------------------------------[ERROR] \******\TEST.java:[15,29] 软件包 org.jboss.ws.tools.ant 不存在[INFO] 2 errors[INFO] ---------...
2013-04-07 19:32:36
787
原创 记录一段 Object wait()、notifyAll() 方法不当使用的经历
本文来源于实际项目。项目需求:某段逻辑需要过滤注册用户,而每时每刻都可能会有新的注册用户加入进来。注册用户的存在与否是通过查询数据库表中是否存在记录判断的。由于不希望频繁的读数据库表,所以考虑定时从数据库加载一份用户列表到内存里,这样可以减少读库的次数并且可以提高查询的效率。 过滤用户逻辑代码简单抽象成下面的测试代码。package test.java;import j...
2013-04-02 10:04:43
88
原创 ConcurrentMap.putIfAbsent(key,value) 用法讨论
先看一段代码:public class Locale { private final static Map<String, Locale> map = new HashMap<String,Locale>(); public static Locale getInstance(String language, String country, Stri...
2012-12-13 00:02:59
510
原创 通过错误堆栈信息和源码分析错误来源
本文副标题:解决 NoSuchMethodError 异常java.lang.NoSuchMethodError: org.slf4j.MDC.getCopyOfContextMap()Ljava/util/Map------------------------------------------------------- 今天在一台机器上配置完 spring-activem...
2012-12-11 15:42:02
413
原创 #EffectiveJava笔记#阅读心得
Effective Java 这本书的价值有多高想必搞Java的人都应该了解。我把它当做一本工具书,在工作之余拿出来读,收获很大。你会发现这本书几乎涵盖了 Java 语言规范的所有知识点,很多语言相关的问题你都可以在这里找到一段解释。印象最深的是,上周末在读某源码时被它里面到处使用的 static member class 吸引住了,然后纠结为什么要用 static,在网上各种搜罗资料,最后在 S...
2012-12-10 00:29:51
118
Paul Graham 主页栏目翻译:Programming FAQ
翻译前序:最近一年越来越多的尝试阅读英文书籍,很少读中文版的主要原因是,读着别人翻译的文字总是习惯性的觉得拗口。一直想知道将英文文章翻译成中文是一种什么样的感觉,今晚试着翻完了 Paul Graham 主页上的 PROGRAMMING FAQ [1]。最大的体会是,翻译真心是个苦差事,因为你不仅需要理解原文还要想方设法组织好语言用词。所以说,中文版书籍翻译的差不要紧,咱可以不读,但是...
2012-12-09 00:59:06
322
原创 Java 按行读文件操作代码
平时接触 Java 文件操作的机会不多,所以对 Java 文件读写相关的API不太熟悉。今天在项目里处理一段逻辑时需要按行读文件,所以在这里简单的把代码贴一下。以后有时间再细细研究相关API。按行读文件的操作包含3个步骤:1. 用FileInputStream打开一个文件2. InputStreamReader逐个读取 stream 中的字符3. 调用BufferedRea...
2012-12-07 14:41:23
126
原创 Eclipse下进行SVN提交时报“svn: 过期”错误的解决办法
某次 svn 提交前对工程中的文件做了修改、删除、移动等操作,提交时出现了下面的错误提示框:[code="java"]Transaction is out of datesvn: Commit failed (details follow):svn: 过期: ”/your-path“在事务“6148-1”[/code]解决办法是:在 Eclipse 的 Package-Ex...
2012-12-06 21:50:58
171
解决Spring TestContext下运行JUnit4抛错(java.lang.NoClassDefFoundError)的问题
Spring版本2.5.5,JUnit 版本 4.8.1,使用了Spring TestContext 的 SpringJUnit4ClassRunner。一直使用这个版本的JUnit,在写简单的测试时不会抛错,直到今天开始尝试写规范的JUnit测试代码,抛出了如下的错误: java.lang.NoClassDefFoundError: org/junit/Assume$Assumption...
2012-12-04 14:51:00
197
使用代理上网的情况下,如何在 cmd 下运行 mvn?
下载了 maven 工具,准备在 cmd 下使用 mvn 构建 maven 工程时,提示连接出错。花了几分钟 bing 了一番(google 服务最近不稳定,发现 bing 是个不错的替代品~ 对了,用 bing 的时候关键词如果是英文,记得尽量使用英文搜索),最后还是 StackOverFlow [1] 上找到了答案。 解决方法很简单,只需要修改 maven 路径下的 conf/sett...
2012-12-03 18:01:00
233
初试 Github
按照官方文档入门向导[1],走到第二步就出问题了。$ git push origin master按照提示输入 username 和 password 后,反复报同一个错误:“fatal: https://github.com/xxx/helloworld.git/info/refsnot found:did you run git update-serve...
2012-11-30 01:02:00
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人