@nn
看你要理解到什么樣的程度了,可以先讀這本書:深入Java虛擬機(jī),或者:深入理解Java虛擬機(jī),個(gè)人感覺從理論的角度,第一本更好,從實(shí)戰(zhàn)的角度,第二本也還不錯(cuò)。如果你需要再深入的話,那就去讀虛擬機(jī)的源碼好了。。。。
re: Log4J引起的程序“裝死” DLevin 2015-08-18 20:16
@otaku119
關(guān)于這個(gè):
為何不使用以下的方法:
log4j--------->log4j(syslogd)->HDD
所有外部程式,透過log4j的SOCKT方式傳輸
不是完全理解”外部程式“在這里的實(shí)際意思,如果沒理解錯(cuò),我們的想法可能是類似的,把Log推到遠(yuǎn)端,主要的目的是把Log信息集合在一起,方便以后查找分析。讓每個(gè)程序自身去”推“Log,增加這個(gè)程序和”推”Log這個(gè)動作的耦合,還不如程序自己打印自己的Log到本地,而“推”這個(gè)動作本身交給一個(gè)專門的程序(Job)去做,這個(gè)專門的程序可以是一個(gè)簡單的腳本定期的拷貝Log文件到指定的服務(wù)器,或者如果有“實(shí)時(shí)”需求,實(shí)現(xiàn)一個(gè)FileWatcher功能。
re: Log4J引起的程序“裝死” DLevin 2015-08-15 12:52
@otaku119
多謝“踢館”以及NFS的資料,木有仔細(xì)研究過NFS,因而只是憑自己的經(jīng)驗(yàn)和道聽途說,所以不做過多評論。
關(guān)于多個(gè)Log4J,不確定我是否理解這個(gè)問題,憑我理解的方向,每個(gè)進(jìn)程有N個(gè)線程,大部分的“用戶線程”都需要寫日志,因而這里有多個(gè);然后我們一臺機(jī)器上有M個(gè)進(jìn)程(節(jié)點(diǎn))在跑;再次,有Y臺機(jī)器共享相同的NFS目錄。
個(gè)人猜測,syslogd沒人用網(wǎng)絡(luò)磁盤來存放資料也會和性能有關(guān)?如果有類似的需求,使用另一個(gè)Job將跟新的日志推到網(wǎng)絡(luò)磁盤上的設(shè)計(jì)會更加合理,耦合更低,而且也更加輕巧?:)
@otaku119
1. 在linux里的ping可以統(tǒng)計(jì)一段時(shí)間內(nèi)的平均響應(yīng)時(shí)間,雖然是一個(gè)簡單的統(tǒng)計(jì)值,而且我的樣本不大,不過我原本的目的就是給自己一種大概網(wǎng)絡(luò)性能的概念,以幫助做一些簡單決策。至于TCP的握手、重傳、序列之類的,那是基于網(wǎng)絡(luò)之上的邏輯,這個(gè)影響因素太多,我覺得不是幾個(gè)指標(biāo)能說明的,而且也已經(jīng)超過我的當(dāng)下的能力范圍了。自從做現(xiàn)在這個(gè)系統(tǒng)以及最近在研究的Hadoop、HBase框架之后才開始關(guān)注網(wǎng)絡(luò)的東西,還一直想找個(gè)懂網(wǎng)絡(luò)的大牛取經(jīng)。。。。
2. 這個(gè)我到大概有知道,只是不知道里面具體邏輯,然后我們公司的網(wǎng)絡(luò)都是走VPN的,所以應(yīng)該會跨過這個(gè)?
3. EJB沒有去看過,所以不做評論,不過同步是業(yè)務(wù)驅(qū)動的,要實(shí)時(shí)同步,對我們來說選擇不多。
4. 國內(nèi)一般外企都是直接VPN的吧,這是整個(gè)公司Infrastructure相關(guān)的東西,不是我等屌絲可以考慮的事情。。。。
cacti、MRTG都木有用過,我這幾天去了解一下,多謝。
最后,期待你關(guān)于這方面的BLOG,求鏈接?
@otaku119
都是好問題啊,說實(shí)話,我對網(wǎng)絡(luò)的了解并沒有那么深入,所以簡單回答一些我知道的。
1. 我其實(shí)只是簡單的使用ping做統(tǒng)計(jì)測試的,所以可以認(rèn)為是使用ICMP方式。
2. SH到NY的這段明文傳送我不了解,有更詳細(xì)的信息可以共享一下不?
3. 我們提供intranet服務(wù),但是其實(shí)做的就是部分CDN的功能,只是我們的用戶是固定的,所以只需要把數(shù)據(jù)分發(fā)到相應(yīng)的數(shù)據(jù)中心即可。
4. VPN是必須的,數(shù)據(jù)本身都比較敏感,同步是為了性能,如上面所說的,部分類似CDN的功能。
話說多謝你的問題,我好像對我的系統(tǒng)有另一種理解了。:)
@g897
final能控制回收流程?你記錯(cuò)成finalize了?Java哪來的全局變量,又哪來的不會自動回收的說法?
re: 深入源碼之SLF4J DLevin 2014-11-01 08:53
不過,你可能要問你自己一個(gè)問題,為什么會存在兩個(gè)橋接包?貌似木有神馬意義啊~@zhanjindong
re: 深入源碼之SLF4J DLevin 2014-11-01 08:52
能想到的一種方法,控制兩個(gè)橋接包在classpath中的順序~@zhanjindong
re: 深入Jetty源碼之HttpParser DLevin 2014-05-15 13:54
用StarUML@jptan
代碼沒有貼全,TestHandler和OtherHandler都是Test類中的內(nèi)部類,而_history是Test類的成員@regale
re: 深入Log4J源碼之Log4J Core DLevin 2014-01-14 22:52
其一,我不是大神,其二,不是Java之路,語言是工具,重要的是在解決方法的思路和模式,其三,多學(xué)習(xí)、思考設(shè)計(jì)模式,要變通,多看源碼,理解整個(gè)框架思想,重要的是把路走通,不是把代碼看完。。。。。@小梁
re: 深入Guava源碼之Stripe DLevin 2014-01-02 09:45
用StarUML畫的~@acha
Buckets是代碼中的table數(shù)組,它的每個(gè)元素是一個(gè)Entry鏈,所以叫buckets@David
re: Void類的用法 DLevin 2013-10-08 22:50
它類似一個(gè)占位符,用于模擬void類型,因而不可是實(shí)例化,只有null值,至于好處貌似就是它的用途把~~@name
恩,我貌似表述的有點(diǎn)繁瑣了,你這個(gè)解釋更加簡潔明了一些~~~~@瘋狂
我感覺應(yīng)該不是生命周期引起的,Java里的生命周期是由虛擬機(jī)管理的,所以局部變量和外部類實(shí)例難說那個(gè)生命周期更長,在你給的鏈接中,這段話到是一個(gè)蠻好的解釋: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
@Lancelot
呵呵,見笑了,對commons里面的內(nèi)容還真不了解,有計(jì)劃要好好研究一下那里的內(nèi)容,可惜最近一直沒時(shí)間,多謝哈~~~~
@過路客
嗯,是寫錯(cuò)了,多謝哈,架構(gòu)那事就不用再提了,算我筆誤,嘿嘿~~~
@jim
呵呵,雖然對第二段的表達(dá)方式不怎么贊同,但是你的觀點(diǎn)我還是非常認(rèn)同的,其實(shí)我從來沒有認(rèn)為我是一個(gè)架構(gòu)師,雖然我一直在往這個(gè)方向努力,不過還有好長一段路要走,事實(shí)上,我現(xiàn)在都在避免談?wù)撐抑暗哪嵌谓?jīng)歷(這篇文章是沒多想就寫上了,呵呵)
@Lancelot
從開始看Java開始,一直認(rèn)為apache是一個(gè)偉大的組織,里面有很多我們能想得到的工具和框架。有打算以后花一段時(shí)間好好研究一下里面的代碼。這里的代碼只是對自己經(jīng)歷的一種記錄,無他~~~
BTW:這兩個(gè)方法我確實(shí)也是不知道的,學(xué)習(xí)了~~~~