- 博客(26)
- 资源 (17)
- 问答 (1)
- 收藏
- 关注
原创 在java项目中使用EventBus的优缺点
在java项目中,如果不是swing,当要用到事件、通知机制的时,时下最流利的、最简单的方式就是使用google的guava-EventBus,它简洁、强大、使用方便,最大多数开源爱好者的首选。 使用EventBus的好处有: 1.EventBus简洁、强大 2.不用写回调接口 3.可以组件、线程间的相互通信 ...
2017-05-09 22:54:06 918
原创 通过源码分析来实现字符串的高性能操作
引言 字符串是java编程中用得最多的类型,它的性能不容小觑。以下从几个操作来看它的性能。 一。创建1.通过new出来的字符串,不是常量,所以尽量不用2.使用StringBuffer,尽量根据实际情况,在创建时,设置初始容量大小,如果不设置,默认是16,当达到一定程度后会扩为length() * 2,会耗费一定时间。如下图1所示3.避免使用StringBuffer...
2017-02-19 18:58:19 149
原创 对软件设计中回调机制的理解
调用方式 模块之间的通信,总是存在一定的调用。从调用方式上来看,可以分为两种:同步调度、异步调用。同步调度:即阻塞调用,A调用B,A会等待B执行完,A所在线程会阻塞,属于双向通信异步调用:当前线程不阻塞,A调用B后继续往下执行。如果A需要B的返回,则B在执行完成后要调用A,这就是回调,属于双向通信。如果A不需要B的返回,属于单向通信 java的回调机制...
2017-02-12 22:57:04 135
原创 对框架的一些理解
框架就是一个完整的流程,是一个黑匣子,它规定了应用程序的体系结构,且把整个流程的各个环节基本上都已实现,并把流程串起来了,用户要做的事,就是实现自己的业务逻辑,然后通过即定的步骤,按部就班的把自己的业务逻辑注入到这个流程中,然后启动,框架就会执行你的业务逻辑。比如hadoop,一个完整的mapreduce其实很复杂,可能包括input->map->partition->...
2017-02-07 22:33:16 118
原创 如何让java程序平滑停止
前言 在敏捷开发中,迭代周期较快,版本发布频繁,需要经常更新到生产环境。新版本发布时,需要停止旧版本的程序。在停止旧版本程序的过程,我们希望旧版本程序能平滑停止,所谓的平滑停止,是指不会产生脏数据、事务不一致、数据状态已改变却未更新到数据库、kafka消费了数据而没有更新offset等问题。 如何让java程序退出1.kill -9 pid 强制退出2.ki...
2017-02-03 20:49:41 157
原创 高并发场景下java的System.currentTimeMillis()性能优化
引言 System.currentTimeMillis()是java中最常用的获取系统时间的方法,它返回从 UTC 1970 年1月1日午夜开始经过的毫秒数。 问题 在多线程环境下频繁调用System.currentTimeMillis()来获得当前毫秒数性能会非常低,为什么呢?看一下jdk的源码, 可以看到currentTime...
2017-01-19 00:23:51 243
原创 常用maven mirror
<mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.m
2016-03-17 22:51:36 76
原创 获取客户端ip
/** * 获取客户端IP * @param request * @return */ public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.le...
2015-09-08 14:26:26 53
原创 反射工具类
反射,在各种开源框架中大量使用,特别是SOA类的、Spring等。反射是基础。 package reflect;import java.lang.reflect.Method;/** * 反射工具类 * @author root * */public class ReflectUtil{ /** * 通过反射调用方法(任意个参数)...
2015-08-11 23:25:01 51
原创 读取kafka-run-class.sh 执行的结果
接上一篇,通过命令行或执行kafka.tools.ConsumerOffsetChecker的main方法,都只能把结果显示在标准输出流中,如果我想实时展示这些数据咋办呢? 这时就就需要把这些信息读出来。代码如下: package com.wxj.kafka.monitor.jmx;import java.io.BufferedReader;import java.io.IO...
2015-08-09 22:25:56 139
原创 kafka监控之kafka-run-class.sh
kafka自带了很多工具类,在源码kafka.tools里可以看到: 这些类该如何使用呢,kafka的设计者早就为我们考虑到了,在${KAFKA_HOME}/bin下,有很多的脚本,其中有一个kafka-run-class.sh,通过这个脚本,可以调用其中的tools的部分功能,如调用kafka.tools里的ConsumerOffsetChecker.scala, ...
2015-08-09 22:13:21 591
原创 通过rmi来调用kafka里的jmx信息
kafka的官方文档上,已经列出了所有的mxbean,链接:http://kafka.apache.org/documentation.html#monitoring通过jconsole也能看到。 package com.wxj.kafka.monitor.jmx;import java.io.IOException;import java.util.Ha...
2015-08-09 21:48:29 117
原创 kafka jmx 监控
版本:kafka_2.10-0.8.1.tgz 服务器列表:ipbroker-id192.168.199.1290192.168.199.1301192.168.199.1312 server.properties配置配置说明log.retention.hours=72日志保存时长(小...
2015-08-09 00:06:35 91
原创 互联网安全架构-常见的web攻击
一。xss攻击(cross site scripting)1.原理:攻击者通过在网页中嵌入恶意脚本程序,当用户打开该网页时就会在用户端的浏览器上自动执行,从而获取用户的cookie,用户名,密码等2.防范:对用户输入的数据进行HTML转义处理深入了解:http://www.cnblogs.com/bangerlee/archive/2013/04/06/3002142.html...
2015-07-29 00:06:52 56
原创 位移操作
1.判断奇偶 int a = 6; a & 1 == 0 可替代 a % 2 == 02.交换两值 int a = 3; int b = 5; a = a ^ b; b = a ^ b; a = a ^ b; 另一种常用的方式 a = a + b; b = a - b; a = a - b;3.正负切换 int a = 8; (~a) + 1 =...
2015-07-08 10:04:03 73
原创 JVM调优常用参数
JVM虚拟机的默认内存使用大小为64MB 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小 常见配置汇总堆设置-Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:Surv...
2015-05-18 10:31:36 87
原创 java -classpath那些事
1.获取当前jar包在路径String jarURL = System.getProperty("user.dir") + File.separator + System.getProperty("java.class.path");2.通过命令行运行目录结构: spider --classes StartUp --lib xx.jar ...
2015-05-14 11:54:16 57
原创 动态加载jar中的类
URL url1 = new URL("file:D:/workspace/spider/plugin/plugin_fat.jar");//加载类 URLClassLoader loader = new URLClassLoader(new URL[] { url1 }, Thread.currentThread().getContextClassLoader()); C...
2015-05-05 23:19:33 54
原创 spark-env.sh常用配置项
SPARK_MASTER_IP绑定一个外部IP给master.SPARK_MASTER_PORT从另外一个端口启动master(默认: 7077)SPARK_MASTER_WEBUI_PORTMaster的web UI端口 (默认: 8080),这个端口太常用,建议换一个SPARK_WORKER_PORT启动Spark worker 的专用端口...
2015-04-11 20:14:21 534
原创 mapreduce 实现内连接,左连接,右连接,全连接,反连接
测试数据more user.txt (用户id,用户名)1 用户12 用户23 用户3more post.txt (用户id,帖子id,标题)1 1 贴子11 2 贴子22 3 帖子34 4 贴子45 5 贴子55 6 贴子65 7 贴子7 查询结果内连接1 用户1 1 1 贴子11 用户1 1 2 贴子22...
2013-11-21 16:43:19 160
原创 hive将查询结果,直接导入到mysql
1.加入jaradd jar /setup/hive/lib/mysql-connector-java-5.1.25-bin.jar;add jar /setup/hive/lib/hive_contrib.jar;add jar /setup/hive/lib/hive-contrib-0.9.0.jar; 2.创建functionCREATE TEMPORARY...
2013-09-26 14:36:37 93
原创 hive运行sql时生成的mapreduce
hive的sql语句被解析成了mapreduce,最终生成了一个jar文件。然后通过hadoop jar命令来执行这个jar文件。在http://master:50060/tasklog?attemptid=。。。可以看成jar所在文件目录,不过这个jar文件在mapreduce结束时,就会自动删除。这个jar文件大概有3M多。 路径大概是在: /setup/hadoop/tm...
2013-09-09 21:57:08 211
原创 Multiple initializers for property 'dataProvider'. (note: 'dataProvider' is the
错误:Multiple initializers for property 'dataProvider'. (note: 'dataProvider' is the default property of 'mx.controls.LinkBar) 在很多情况下,编译器都会出现这种提示,如:<mx:ToggleButtonBar>,<mx:LinkBar>,&...
2010-08-09 10:57:39 67
原创 flex + blazeds 实现推服务总结
在使用flex + blazeds 实现推服务时,如果客户端订阅成功后,如果重新刷新浏览器或重新打开一个窗口时,服务器端会出现这一句提示:[BlazeDS]Endpoint with id 'my-streaming-amf' cannot grant streaming connection to FlexClient with id '4F4BDE15-F51A-FA05-1995-04E...
2010-08-08 16:31:35 101
原创 调用RemoteObject时一个很奇怪的现象
不知为什么每次在调用ReomteObject时,都会出现这种错误:[RPC Fault faultString="No destination with id 'userRO' is registered with any service." faultCode="Server.Processing" faultDetail="null"],意思大概是说,userRO这个service没注...
2010-08-07 22:51:30 111
原创 mxml创建后不能运行
有时创建或复制原来的mxml后,运行时run as 选项中却没有Flex Application这个选项,其实只需要修改项目的根目录下的.actionScriptProperties文件即可. 方法如下: 打开.actionScriptProperties,找到<applications></applications>标签, 添加一个子元素即可,如:<applicat...
2010-08-06 10:41:51 65
R in action中文版
2014-07-12
hbase phoenix sql
2013-08-21
ActionScript 3.0.Game Programming University 2nd Edition Jan.2011 源码
2011-02-04
ActionScript.3.0.Game.Programming.University 源码
2011-02-04
struts2 + spring2.5 + hibernate 3.2 + lucene 2.4 + compass 2.0产品搜索
2010-01-29
java 版cms(ssh + freemarker + lucene + mysql) 单点登陆
2009-12-02
javamail,common-mail,james 发送邮件的三大组件
2009-12-01
dwr 推技术(DWR反转AJAX)
2009-12-01
Portal开发详解
2009-03-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人