- 博客(51)
- 收藏
- 关注
java获取系统相关信息(来自于gecko的SystemUtils,RemotiingUtils工具类)
1 判断是否为linux系统public static final String OS_NAME = System.getProperty("os.name"); if (OS_NAME != null && OS_NAME.toLowerCase().indexOf("linux") >= 0) { isLinuxPlatfo...
2014-02-18 14:03:00
170
java需要注意的问题
1.InetAddress.getLocalHost().getHostAddress()获取本机ip问题点击打开链接2.java中的class.this方法,用在匿名类里面,明确表示匿名类内部实现表示的方法,直接用this代表匿名类上下文,而用class.this明确指定要引用的上下文,如外部类对象。如果匿名类和外部类含有同名方法,而且匿名类直接调用同名方法,虽然没有编译错误,但是容易让...
2014-02-13 15:28:00
140
dubbo对zookeeper的应用
1.定义ZookeeperClient接口,抽象类AbstractZookeeperClient实现ZookeeperClient接口。ZkclientZookeeperClient继承AbstractZookeeperClient抽象类。使用zkclient类库。作为默认的实现2.程序启动,构造Ephemeral节点3.com.alibaba.dubbo.config.S...
2014-02-13 15:27:00
148
maven相关管理
1.项目骨架相关1.1 在骨架pom中,可通过${package}引用生成的项目的指定的包名,对指定项目相关的信息,比如main类位置等比较有效1.2 根据项目生成骨架 mvn archetype:create-from-project1.3 在target下运行命令mvn clean package deploy,产生项目骨架1.4 在target下的pom配置<d...
2014-02-08 17:12:00
121
hdfs中限流器BlockTransferThrottler的c#改写
using System;using System.Runtime.CompilerServices;using System.Threading;namespace Common.Engine{ /// <summary> /// 限流器 /// 改写自:hadoop\src\hdfs\org\apache\hadoop\hdfs\server\da...
2014-02-07 11:52:00
148
正数原子递增选择器
原则:1.原子性:要保证操作是原子的,线程安全的,java的atomatic包里的AtomicInteger符合这种要求2.正数性:数字在java中是用补码进行表示的,第一位为符号位,0代表正数,1代表负数,可以对递增的数值进行与0x7FFFFFFF(int类型,4个字节)操作,保证永远为正数。当递增超过0x7FFFFFFF时,又会从0开始递增附metaq中的实现,这个主要用在轮询的分...
2014-02-07 11:07:00
173
metaq的producer流程
1.producer调用publish方法是为了向zookeeper注册topic,同时注册broker节点改变事件,用于新机器加入时生产者的负载均衡2.sendmessage时,先选择partition,再根据partition选择一台broker3.构造putcommand,传入opaque给putcommand(自增,线程安全),用于区分command,主要作用是区分本地的回调方法(...
2014-01-26 11:47:00
158
metaq的consumer执行机制
1.metaq如果不指定executor,则默认是单线程执行的。2.如果一个consumer订阅了多个topic,也是单线程执行。3.如果消费抛出异常,会重新加入到blockqueue(根据delayTimeStamp排序的优先队列),并更新延迟时间4.当重试次数(在postReceiveMessage赋值,判断依据是iterator的offset是否为0)超过配置的最大值(默认为5次...
2014-01-21 14:41:00
323
linux记录pid
metaq的启动脚本是这样实现的: nohup $JAVA $BROKER_ARGS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.manag...
2014-01-15 18:25:00
123
如何判断java程序异常退出
一种实现方式是(metaq是这种方式):1.程序启动时写临时文件(亦可写到其他位置,如建立zookeeper永久节点)2.注册ShutdownHook,在实现中删除临时文件3.下次文件启动时,先判断临时文件是否存在,如果存在,则起线程对异常信息进行处理liunx下kill -9不会使shutdownhook执行,eclipse调试下直接关闭也不会执行。使用kill -15可以使...
2014-01-14 22:24:00
978
metaq的客户端自动断线重连机制
1.metaq的数据传输基于gecko2.metaq的RemotingClientWrapper是gecko的RemotingClient的包装类,通过ConcurrentHashMap<String/* url */, Set<Object>/* references */>成员变量添加了连接的建立和关闭计数功能。3.remoteclient的连接语句如下:...
2014-01-14 12:02:00
229
zkClient的并发控制
1.ZkConnection实现IZkConnection,是org.apache.zookeeper.ZooKeeper的代理类,通过ReentrantLock实现connect和close的并发控制。因为connect方法和close方法对成员变量_zk进行了赋值和判空操作,所有要进行并发控制。代码如下: @Override public void connect(Watche...
2014-01-13 20:29:00
370
zkclient的事件驱动实现
zkclient通过BlockingQueue实现多线程的事件驱动,当zkClient对象构造时,调用connect方法启动eventthread线程,eventthread线程的run实现如下: @Override public void run() { LOG.info("Starting ZkClient event thread."); try...
2014-01-13 18:17:00
353
zkclient中的可复用的一些工具类
1.org.I0Itec.zkclient.NetworkUtil,提供获取本机名称,端口是否被占用等功能,其中判断端口是否被占用的代码:public static boolean isPortFree(int port) { try { Socket socket = new Socket("localhost", port); ...
2014-01-13 17:55:00
254
用eclipse调试依赖maven的tomcat项目
1.debug as web项目2.选择该web项目下的所有项目,确定3.右键web项目,选择properties,找到deployment assembly项,然后add->java build path entries,将maven的依赖加入即可...
2014-01-13 15:37:00
99
xmemcached中的一致性hash实现
1.内部使用TreeMap<Long, List<Session>>实现session存储和定位,其中key为hash值,value为这个hash值对应的session存储集合。其中并不是有多少session就有几个键值,而是会有NUM_REPS(默认为160)*session.size个键值。还需要与session的权重相乘2.使用treemap的tailMap方法高...
2014-01-09 11:13:00
235
metaq的msgid生成规则
public synchronized long nextId() { long timestamp = this.timeGen(); if (this.lastTimestamp == timestamp) { this.sequence = this.sequence + 1 & this.sequenceMask; ...
2014-01-08 19:51:00
343
metaq使用memcache作为消费者去重的风险
metaq使用的是消费者分组+offset作为判断去重标志的key的,代码如下: private String cacheKey(final Long id, String group) { return group + id; }其中id为服务端传递过来的msgid,生成规则可以看http://blog.csdn.net/liudunx...
2014-01-03 19:29:00
243
api param参数转换为hashmap java
/** * 根据api参数字符串获取api参数映射 * @param url * @return */ public static HashMap<String, String> GetApiParamMap(String url){ HashMap<String, String> paramsMap = new HashMap<String, ...
2013-09-24 16:00:00
532
开源类库工具整理
http://blog.jobbole.com/(job伯)http://runjs.cn/code(在线js编辑)http://www.searchtb.com/?spm=0.0.0.0.fCArxj(淘宝搜索博客)http://stblog.baidu-tech.com/(百度搜索博客)http://blog.fnil.net/(庄周梦蝶博客)http://ww...
2013-09-16 12:18:00
139
技术网站整理1
1.linux性能调优http://my.oschina.net/sharelinux/blog?catalog=2895032.it技术博客http://blogread.cn/it/category/33.sql查询优化http://www.cnblogs.com/atree/archive/2011/02/13/sql_optimize_1.html4.myisam和inn...
2013-09-16 11:34:00
68
js知识点目录
1.js调试2.prototype3.作用域4. ===5. typeof ,instanceof , toString,Constructor6.arguments7.自执行函数8.json接值问题(数字超出范围被截断)9.Chromium Embedded Framework (CEF),豌豆荚10.css清空11.call,apply12.数据类...
2013-09-16 10:14:00
65
NVelocity中dictionary中获取key为变量的值的方法
#set($key1="123") $!dict.get_Item($key1)即可因为$!dict.key与$!dict.get_Item(key)其实是一致的。
2013-09-10 18:05:00
386
quartz.net中添加引用dll的job实现方法
修改SimpleTypeLoadHelper类中的public virtual Type LoadType(string name)方法为如下所示: /// <summary> Return the class with the given name.</summary> public virtual Type LoadType(string name) ...
2013-09-10 17:06:00
462
页面传入url类型参数时要注意的问题
遇到这样一个问题,页面直接传url类型参数的时候,页面得不到所有的参数值,比如<a href="www.test.com?url=www.baidu.com?a=1&b=2">测试</a>,页面获取url参数时,只能得到www.baidu.com?a=1,得不到b=2这个参数。原因是页面在进行处理时,是根据&符号进行处理的,导致b=2被截断。只要手工编一下码...
2013-09-10 16:47:00
148
metaq部署
一.metaq单机部署1.安装jdk1.72.解压zookeeper到/usr/tools目录3.将zookeeper-3.4.3/conf目录下的zoo_sample.cfg文件拷贝一份,命名为为“zoo.cfg”4.修改zoo.cfg,将dataDir配置改为/usr/tools/zookeeper-3.4.3/data,将dataLogDir配置改为/usr/tools/...
2013-09-10 10:20:00
157
json配置文件注释
json配置文件注释 (1)直接在json配置节点中加入冗余注释属性,然后属性值为注释内容。但这样做对某些json序列化,反序列化工具在反序列化时会造成一定的性能损失。而且不太直观,不便于交接。 (2)可以通过预处理字符串的方式实现,先将配置文件内容读入内存,然后通过正则表达式将注释信息注释掉,如下代码支持将单行的//注释处理掉:const RegexOptions...
2013-09-09 14:46:00
1415
nvelocity的单例用法
目前nvelocity的典型用法是//创建一个模板引擎VelocityEngine vltEngine=new VelocityEngine();//文件型模板,还可以是assembly,则使用资源文件vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER,”file”);//模板存放目录...
2013-09-09 12:10:00
106
提交review时reviewboard出现500错误解决方法
reviewboard提交不了codereview,出现500错误的解决办法 (1)用文本编辑器打开svn工具生成的patch文件 (2)对于patch标示字段,比如(工作副本),(版本 6372)等替换为英文 (3)版本替换为英文revision,工作副本替换为英文working copy (4)问题解决。(注意空格要保证和生成的svn一致) (PS:对于比较已...
2013-09-09 11:46:00
950
log4net的release版本不记日志问题解决
1.log4net配置到外部文件的做法(解决log4net的debug可记日志,release版不记日志的问题) (1)在web.config中加入 <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler" /> &l...
2013-09-09 11:27:00
983
浪潮实习8.18
今天进行了初始的php与java的对接工作,效果还是不错的。师傅给我看了一下php与java交互的架构,给我阐释了这种架构的合理性,这使我对项目的信心更强了。解除了一个开源的服务器resin,可以比较方便的实现php与java的共同开发。今下午听了hadoop的mapreaduce技术,关于大数据的选择前n个元素要用两个job才能解决,我一直在考虑能否能只用 一个job就可解决,看了一道o(n)排...
2011-08-18 18:19:00
202
浪潮实习8.16
哈哈,昨天的博客居然有六个人访问,看来访问量是与文字个数成正比的。今天我正在为完成与java后台对接做准备,好期待对接成功后的效果。在研究form中的发送文件标签时,居然发现它的value是只读的,为了实现它的用脚本写value,我找了好多的资料,这个居然不能用js解决,只能用vbs模拟键盘输入数据来解决。js不给力啊。。。今天收到了数值报告答辩通知,并还要求做ppt,看了我在浪潮的日子时日不多了...
2011-08-16 19:24:00
77
浪潮实习8.15
8月15了,可惜是阳历(写完这就话是我自己都感到冷。。。),今天不知是不是咖啡的作用特别的有精神,而且心情也不错。脑袋里老浮现昨天去大润发超市买东西的情形。说真的,我不是个花钱大手大脚的人,可是昨天一共花了一百多,基本上都花在了吃上,难道是物价又涨了。。。大前天发的310块前的工资不知不觉中已挥霍了将近一半。。。今天我又体会到了基础的重要性,遇到的一个难题是php与java之间的交互,刚开始看的是...
2011-08-15 19:23:00
152
浪潮实习8.13
头好晕。。。累了,什么都不想干。。。。。难道是星期六综合症??几乎把手机里的通讯录里的人都骚扰了一遍,发现每个人都在忙着自己的事情,都在为自己的前途努力,我怎么能落后呢...
2011-08-13 13:40:00
75
浪潮实习8.11
今天被swfupload这个上传组件好好的教训了一番,我为了赶进度,老想跟着里面的例子做,不分青红皂白的疯狂拷贝示例代码,结果错误百出,而且关键是还找不到哪里出错了。然后无奈了,只好单步调试js文件,结果悲剧了,居然是那个示例文件swfupload.js还有一个插件性质的文件swfupload.queue.js,在它里面将uploadstart方法进行了改写,怪不得我老在原文件里找并改动代码却不显...
2011-08-11 19:47:00
156
浪潮实习8.9
昨天写的博客至今为止访问量为零,哈哈,哈哈哈哈。。。。。。。前台美化真是一项非常不好做的工作,我有点厌倦了,羡慕那些能去听培训的员工。不管了,大不了自学呗,这真的没什么。嗯,前方的路有点模糊。。。...
2011-08-09 19:58:00
94
浪潮实习8.6
今天不想写博客,我的老毛病又犯了,老是不能很好的坚持。做事情总是只有一段时间的热情,过了这段时间热情就没了,今天是这周的第一天,我现在也开始讨厌星期一了。今天上午看了一上午的js,发觉它太灵活了,同一件事情它可以有好多种方式来实现。但我还是认为用在做某个项目时只用其中的一种就可以了,这样不至于产生混乱,看了有本书上介绍的用js实现事件机制,用的是观察者模式,我仔细的想,硬是没把观察者模式的uml类...
2011-08-08 20:37:00
103
浪潮实习8.5
今天用了用phpeclipse+xdebug,感觉调试真是好用,这样可以节省大量的时间,但是,调试真是一个费脑筋的工作,调试的难度绝对不会比开发简单,尤其是调试别人的程序的时候,简直是一种噩梦。原本想在eclipse中找到一个js的调试器,可是从网上找了一下,发觉还是firefox中的firebug好用,试验了一下,设置了几个断点,然后运行,真的挺爽的,不知不觉实习已经过了两个星期,好多时候我都在...
2011-08-05 19:15:00
155
浪潮实习第十二天
今天算是稍微正式的开工了,庆祝一下。现在我明白了一个道理,编程要从最简单的开始,一步一个脚印的做,不要嫌某个问题简单就不去做了。技术是一点一点的积累起来的。原本想利用别人写好的界面并在里面进行扩展,可是代码实在是太复杂了,研究了一上午,感觉挺累的,仿佛学到了好多东西,可是回想一下又什么都记不起来了,师傅告诉我说不要畏惧困难,实在不行就从最最简单的做起,所以今下午我就开始动手编程。期间用到了以前没用...
2011-08-02 19:40:00
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人