Java
文章平均质量分 82
Scub
这个作者很懒,什么都没留下…
展开
-
Java通过SSH2协议运行远程shell
参照Dean Chen的专栏http://blog.csdn.net/csfreebird/article/details/4823696转载 2014-10-13 17:04:44 · 5218 阅读 · 0 评论 -
JVM1小时1次FGC调优
通过cat发现项目一个奇怪现象,每隔一个小时都会进行一次fgc,很有规律,且和项目使用高低峰无关。最开始以为是内存泄漏。通过观察,发现线下研发环境也一样,fgc时堆的年轻代,年老代,持久代的内存都未占满,应该不是内存泄漏问题。开始怀疑项目中使用了JMX监控zookeeper状态时,保留了JMXConnector的连接对象。研发环境把这块去掉,观察发现没有fgc问题。问题找到了,上网搜了下,果然有前辈遇到过有现成的解决方案原创 2016-01-19 00:08:25 · 4656 阅读 · 0 评论 -
如何调优JVM - 优化Java虚拟机(大全+实例)
堆设置-Xmx3550m:设置JVM最大堆内存 为3550M。 -Xms3550m:设置JVM初始堆内存 为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xss128k:设置每个线程的栈 大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。应当根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程转载 2016-01-19 00:30:58 · 477 阅读 · 0 评论 -
zookeeper 大量连接断开重连原因排查
问题现象最后发现线上的zookeeper的日志zookeeper.out 文件居然有6G,后来设置下日志为滚动输出,参考:http://blog.csdn.net/hengyunabc/article/details/19006911但是改了之后,发现一天的日志量就是100多M,滚动日志一天就被冲掉了,这个不科学。再仔细查看下日志里的内容,发现有很多连接建立好,马上又断开:转载 2015-12-02 22:27:17 · 7692 阅读 · 0 评论 -
Quartz定时任务使用配置
第一步:引包 要使用Quartz,必须要引入以下这几个包: 1、log4j-1.2.16 2、quartz-2.1.7 3、slf4j-api-1.6.1.jar 4、slf4j-log4j12-1.6.1.jar 这些包都在下载的Quartz包里面包含着,因此没有必要为寻找这几个包而头疼。 第二步:创建要被定执行的任务类 这一步也很简单,只需要创建转载 2016-01-23 01:28:42 · 1777 阅读 · 0 评论 -
Tomcat使用Log4j输出catalina.out日志
Tomcat默认的日志是用java.util.logging,有几点不足,文件catalian.out不能像log4j一样按天生成,将越来越大。日志格式和项目中用log4j打出来的不一致,不利于解析。从tomcat官网(https://tomcat.apache.org/tomcat-7.0-doc/logging.html)上找了下,修改一些配置、替换扩展包即可使用log4j输出cata原创 2016-05-22 23:47:02 · 23043 阅读 · 0 评论 -
flume断点续传
使用Flume做日志收集,flume+kafka做日志收集存储,后面接es存历史日志,storm用于实时分析。对于历史日志来说,尽可能做到不丢不重,实际经验内网环境kafka还是很稳定可靠的,丢日志主要发生在flume重启,所以针对flume进行改造,实现断点续传。主要环境及配置,jdk7,flume1.6版本,agent使用内存channel。自扩展source基于原生ExecSource改造,原创 2016-06-19 09:53:39 · 7651 阅读 · 0 评论 -
JavaG1垃圾回收
G1全称是Garbage First Garbage Collector,使用G1的目的是简化性能优化的复杂性。例如,G1的主要输入参数是初始化和最大Java堆大小、最大GC中断时间。G1 GC由Young Generation和Old Generation组成。G1将Java堆空间分割成了若干个Region,即年轻代/老年代是一系列Region的集合,这就意味着在分配空间时不需要一个连续的内转载 2016-11-24 15:12:17 · 692 阅读 · 0 评论 -
Java常用命令工具
下面是自己常用到的命令,列个表忘记时过来查下,之后继续补录系统状态磁盘空间:df -h目录占用空间:du -h --max-depth=1 [目录或者文件]内存:free -m系统负载及cpu:top -ccpu各核状态:mpstat -P ALL进程状态:ps aux | grep xxx端口状态:netstat -tln | grep [port]jstatjs原创 2016-11-30 15:59:56 · 416 阅读 · 0 评论 -
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
How can I monitor ActiveMQIn ActiveMQ 4.x you can monitor the broker to see what destinations are being used, their activity along with connections and subscriptions using the following toolsJMX转载 2017-03-16 13:59:17 · 2882 阅读 · 1 评论 -
activemq的几种基本通信方式总结
原文地址:http://shmilyaw-hotmail-com.iteye.com/blog/1897635简介 在前面一篇文章里讨论过几种应用系统集成的方式,发现实际上面向消息队列的集成方案算是一个总体比较合理的选择。这里,我们先针对具体的一个消息队列Activemq的基本通信方式进行探讨。activemq是JMS消息通信规范的一个实现。总的来说,消息规范里面定转载 2017-03-25 23:04:18 · 645 阅读 · 0 评论 -
java监控路径下文件变化
之前用jdk7的WatchService API(java.nio.file包)来做目录下的子文件监控,后改为使用commons-io包。主要有下面几点不同:1. WatchService是采用扫描式的,效率低,commons-io是使用事件驱动的,效率高;2. WatchService代码写起来费劲 3. WatchService不能监听到孙文件目录(多级目录),事先父文件夹需要存在,而Fil转载 2015-12-28 00:07:30 · 6632 阅读 · 3 评论 -
通过JMX监控Zookeeper
JMX监控zookeeper原创 2015-08-06 18:49:47 · 10623 阅读 · 1 评论 -
java 全角字符转半角字符
public class Test { public static void main(String[] args) { String t="■ ■ffac●●△※○○☆№ccc"; System.out.println(t); System.out.println(toSemiangle(t)); } /** * 全角空转载 2014-10-14 18:21:58 · 926 阅读 · 0 评论 -
Java去掉字符串两边的空格
Java正则表达式,去掉字符串两边的空格(全角和半角)原创 2014-10-30 12:26:07 · 2996 阅读 · 0 评论 -
Java的垃圾回收算法
这是篇读书笔记,来自《Thinking In Java 4TH》第五章“Initialization & Cleanup”的“How a garbage collector works”这一小节(具体详见P178),为了给自己加深印象,做个笔记。由于这本书是2007出版的,所以这里的垃圾回收算法主要是学习参考用,不是对当前最新JVM的GC学习。我们很容易认为Java在堆上为所有对象分配空间原创 2015-02-25 11:48:35 · 752 阅读 · 0 评论 -
4位吸血鬼数字的java实现
求4位吸血鬼数的两种Java实现原创 2015-02-20 21:38:47 · 582 阅读 · 0 评论 -
Java项目代码规范
做Java项目很多年了,虽然项目架构设计对以后的性能、扩展、维护很重要,但是最终的产品还是由每个程序员码砖堆出来的,每块砖都有问题,有时也会对整体造成负面影响,以至于维护困难。下面的一些总结是来自以前Java项目的开发规范以及过去看到的一些太随意的代码,还有一些是来自网络资源,希望在项目中对新手做开发前期的普及。Linus曾说“Talk is cheap,show me the code”,代码确实能看出一个人的基本功和编程习惯,让我们在java编程中尽可能做得更好一些。原创 2014-12-19 15:26:26 · 2169 阅读 · 0 评论 -
通过反射注解批量插入数据到DB
批量导入思路,最近遇到一个需要批量导入数据问题。后来考虑运用反射做成一个工具类,思路是首先定义注解接口,在bean类上加注解,运行时通过反射获取传入Bean的注解,自动生成需要插入DB的SQL,根据设置的参数值批量提交。不需要写具体的SQL,也没有DAO的实现,这样一来批量导入的实现就和具体的数据库表彻底解耦。实际批量执行的SQL如下:insert into company_candidate(company_id,user_id,card_id,facebook_id,type,create_time,w原创 2015-03-26 10:07:43 · 3119 阅读 · 0 评论 -
Java反射创建对象-自适应构造器
Java的反射非常强大,它能访问对象的私有field、method,私有构造器,甚至私有的内部类和匿名内部类。反射就像是Java提供的后门,对OOP来说它提供了一种非安全的访问方式。它是一种特殊手段,一般情况下我们不使用,因为反射可能非安全地修改对象数据,需要写更多的捕获异常代码,代码可读性差些。另外能通过反射来操作类对象,该类的.class字节码文件必须首先被虚拟机加载。下面这个例子,来原创 2015-03-20 07:42:05 · 941 阅读 · 0 评论 -
maven依赖总结
maven 常用命令mvn clean installmvn clean install -Dmaven.test.skip=true //编译时跳过Test转载 2014-12-12 13:44:47 · 486 阅读 · 0 评论 -
八皇后问题回溯求解
八皇后问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。通过回溯算法求解,可以得到92种位置摆法,去掉等效位置实际上只有24种位置摆法。原创 2015-02-28 08:55:54 · 672 阅读 · 0 评论 -
JMX监控Zookeeper状态Java API
JMX监控Zookeeper状态的Java API原创 2015-08-19 00:41:05 · 4632 阅读 · 3 评论 -
ES的JVM配置
JDK版本 使用JDK1.8的最新版本jdk-8u131-linux-x64.tar.gz(官方推荐ES5.4.1使用jdk-8u131以上的版本,我们现在es是1.7.1,计划升到5.X,所以用最新的) JVM堆大小设置 Elasticsearch很耗内存、cpu。标准的建议是把50%的内存给elasticsearch,剩下的50%给Lu原创 2017-06-21 15:59:30 · 9184 阅读 · 1 评论