上善若水
In general the OO style is to use a lot of little objects with a lot of little methods that give us a lot of plug points for overriding and variation. To do is to be -Nietzsche, To bei is to do -Kant, Do be do be do -Sinatra
posts - 146,comments - 147,trackbacks - 0

我的评论

@nn
看你要理解到什么样的程度了,可以先读这本书:深入Java虚拟机,或者:深入理解Java虚拟机,个人感觉从理论的角度,第一本更好,从实战的角度,第二本也还不错。如果你需要再深入的话,那就去读虚拟机的源码好了。。。。
re: Log4J引起的程序“装死” DLevin 2015-08-18 20:16  
@otaku119
关于这个:
為何不使用以下的方法:
log4j--------->log4j(syslogd)->HDD
所有外部程式,透過log4j的SOCKT方式傳輸

不是完全理解”外部程式“在这里的实际意思,如果没理解错,我们的想法可能是类似的,把Log推到远端,主要的目的是把Log信息集合在一起,方便以后查找分析。让每个程序自身去”推“Log,增加这个程序和”推”Log这个动作的耦合,还不如程序自己打印自己的Log到本地,而“推”这个动作本身交给一个专门的程序(Job)去做,这个专门的程序可以是一个简单的脚本定期的拷贝Log文件到指定的服务器,或者如果有“实时”需求,实现一个FileWatcher功能。
re: Log4J引起的程序“装死” DLevin 2015-08-15 12:52  
@otaku119
多谢“踢馆”以及NFS的资料,木有仔细研究过NFS,因而只是凭自己的经验和道听途说,所以不做过多评论。

关于多个Log4J,不确定我是否理解这个问题,凭我理解的方向,每个进程有N个线程,大部分的“用户线程”都需要写日志,因而这里有多个;然后我们一台机器上有M个进程(节点)在跑;再次,有Y台机器共享相同的NFS目录。

个人猜测,syslogd没人用网络磁盘来存放资料也会和性能有关?如果有类似的需求,使用另一个Job将跟新的日志推到网络磁盘上的设计会更加合理,耦合更低,而且也更加轻巧?:)
@otaku119
1. 在linux里的ping可以统计一段时间内的平均响应时间,虽然是一个简单的统计值,而且我的样本不大,不过我原本的目的就是给自己一种大概网络性能的概念,以帮助做一些简单决策。至于TCP的握手、重传、序列之类的,那是基于网络之上的逻辑,这个影响因素太多,我觉得不是几个指标能说明的,而且也已经超过我的当下的能力范围了。自从做现在这个系统以及最近在研究的Hadoop、HBase框架之后才开始关注网络的东西,还一直想找个懂网络的大牛取经。。。。
2. 这个我到大概有知道,只是不知道里面具体逻辑,然后我们公司的网络都是走VPN的,所以应该会跨过这个?
3. EJB没有去看过,所以不做评论,不过同步是业务驱动的,要实时同步,对我们来说选择不多。
4. 国内一般外企都是直接VPN的吧,这是整个公司Infrastructure相关的东西,不是我等屌丝可以考虑的事情。。。。

cacti、MRTG都木有用过,我这几天去了解一下,多谢。

最后,期待你关于这方面的BLOG,求链接?
@otaku119
都是好问题啊,说实话,我对网络的了解并没有那么深入,所以简单回答一些我知道的。
1. 我其实只是简单的使用ping做统计测试的,所以可以认为是使用ICMP方式。
2. SH到NY的这段明文传送我不了解,有更详细的信息可以共享一下不?
3. 我们提供intranet服务,但是其实做的就是部分CDN的功能,只是我们的用户是固定的,所以只需要把数据分发到相应的数据中心即可。
4. VPN是必须的,数据本身都比较敏感,同步是为了性能,如上面所说的,部分类似CDN的功能。
话说多谢你的问题,我好像对我的系统有另一种理解了。:)
@g897
final能控制回收流程?你记错成finalize了?Java哪来的全局变量,又哪来的不会自动回收的说法?
re: 深入源码之SLF4J DLevin 2014-11-01 08:53  
不过,你可能要问你自己一个问题,为什么会存在两个桥接包?貌似木有神马意义啊~@zhanjindong
re: 深入源码之SLF4J DLevin 2014-11-01 08:52  
能想到的一种方法,控制两个桥接包在classpath中的顺序~@zhanjindong
re: 深入Jetty源码之HttpParser DLevin 2014-05-15 13:54  
用StarUML@jptan
re: 深入Jetty源码之ScopedHandler DLevin 2014-05-08 09:17  
代码没有贴全,TestHandler和OtherHandler都是Test类中的内部类,而_history是Test类的成员@regale
re: 深入Log4J源码之Log4J Core DLevin 2014-01-14 22:52  
其一,我不是大神,其二,不是Java之路,语言是工具,重要的是在解决方法的思路和模式,其三,多学习、思考设计模式,要变通,多看源码,理解整个框架思想,重要的是把路走通,不是把代码看完。。。。。@小梁
re: 深入Guava源码之Stripe DLevin 2014-01-02 09:45  
用StarUML画的~@acha
re: Java Core系列之HashMap实现 DLevin 2013-11-01 22:32  
Buckets是代码中的table数组,它的每个元素是一个Entry链,所以叫buckets@David
re: Void类的用法 DLevin 2013-10-08 22:50  
它类似一个占位符,用于模拟void类型,因而不可是实例化,只有null值,至于好处貌似就是它的用途把~~@name
恩,我貌似表述的有点繁琐了,你这个解释更加简洁明了一些~~~~@疯狂
我感觉应该不是生命周期引起的,Java里的生命周期是由虚拟机管理的,所以局部变量和外部类实例难说那个生命周期更长,在你给的链接中,这段话到是一个蛮好的解释:So Java could copy the value of the variable w/o bothering with this compiler error, but it instead forces you to declare the variable as final to tell you "hey, remember it gets copied into the inner class, so if you could change it afterwards, then you get a severe inconsistency. So you can't change it, and we're clear with that." @tester
赞同,这个例子感觉不好。。。。@史寿伟
re: Java中的装箱与拆箱 DLevin 2011-07-26 01:12  
It really is, but it is not so old for a new guy like me, especially for the cache strategy applied by the compiler. :)@AlleNny
re: equals方法实现小记 DLevin 2011-06-30 22:18  
@Lancelot
呵呵,见笑了,对commons里面的内容还真不了解,有计划要好好研究一下那里的内容,可惜最近一直没时间,多谢哈~~~~
re: equals方法实现小记 DLevin 2011-06-30 00:55  
@过路客
嗯,是写错了,多谢哈,架构那事就不用再提了,算我笔误,嘿嘿~~~
re: equals方法实现小记 DLevin 2011-06-30 00:41  
@jim
呵呵,虽然对第二段的表达方式不怎么赞同,但是你的观点我还是非常认同的,其实我从来没有认为我是一个架构师,虽然我一直在往这个方向努力,不过还有好长一段路要走,事实上,我现在都在避免谈论我之前的那段经历(这篇文章是没多想就写上了,呵呵)
re: equals方法实现小记 DLevin 2011-06-30 00:28  
@Lancelot
从开始看Java开始,一直认为apache是一个伟大的组织,里面有很多我们能想得到的工具和框架。有打算以后花一段时间好好研究一下里面的代码。这里的代码只是对自己经历的一种记录,无他~~~
BTW:这两个方法我确实也是不知道的,学习了~~~~