寫在之前
最近輪到我值班了婆咸,值班的時候總是有需要立馬清理的日志文件或其它事件。你可能會問:“怎么不用定時腳本呢芜辕?” 事實情況是尚骄,我們已經(jīng)采用了定時腳本了∏中可是倔丈,有的時候,日志來的飛快状蜗,定時腳本還沒起作用呢需五,就需要清理了。隨著機器的越來越多轧坎,這就更是一個問題了『暧剩現(xiàn)在,我們所有模塊的集群加起來缸血,起碼有60臺機器了蜜氨。如果這時候需要立馬在服務(wù)器上搞個神馬,想吐血的心都有了吧捎泻;也想過借助一些別的工具去實現(xiàn)飒炎,比如:采用zookeeper去管理配置文件挺合適的。但是笆豁,還需要搞個zookeeper服務(wù)郎汪,太麻煩了。沒辦法闯狱,人就是懶煞赢,想著能有個小工具該多好啊,能一鍵部署搞定多好啊扩氢,能輕量級到可以忽略該多好案邸! 等等等...... 于是乎录豺,便有了這個想法 - 寫個簡單的朦肘,能近似實時的,以分布式的形式執(zhí)行一些立馬需要做的工作双饥。比如:運行腳本媒抠,清理特定類型的日志等等等等,諸如此類的瑣事咏花。 于是趴生,就行動起來了阀趴,便有了這篇關(guān)于設(shè)計文章初稿。集思廣益苍匆,如果你有同樣的痛點刘急,請發(fā)點善心,告訴我們你的需求浸踩。該小工具的第一個版本出來后叔汁,我們會開源給大家,好人不謝检碗!
初稿設(shè)計架構(gòu)圖:
設(shè)計特點:
Agent服務(wù):
1.1 Agent可以隨意部署多節(jié)點
1.2 單線程据块,輕量級,跨平臺
1.3 采用Http請求的方式pull配置文件和Report結(jié)果折剃,最小占用系統(tǒng)資源另假,不維護任何長連接
1.4 不用開啟任何端口號,完全不影響服務(wù)器的安全問題
1.5 支持多Agent部署在不同操作系統(tǒng)上
Config Center服務(wù)
1.1 基于部署服務(wù)的文件系統(tǒng)怕犁,不依賴于任何第三方中間件边篮,服務(wù)(如:database, zookeeper等)
1.2 采用Spring Boot開發(fā),基于Jar包的一鍵運行因苹,分發(fā)容易
1.3 有可視化的UI配置苟耻,減少人工修改配置文件的可能性錯誤
1.4 可針對單獨的Agent進(jìn)行特色配置
1.5 超輕量級篇恒,跨平臺扶檐,可部署于任意一臺電腦上,各種系統(tǒng)上
重大設(shè)計特點:
- Config Center服務(wù)支持隨時可以掛了胁艰。畢竟該服務(wù)可靠性要求不高款筑,掛了就掛了吧,配合supervisor這樣的工具也是能基本做到7x24不間斷服務(wù)的腾么。
- 部署平臺依賴于JDK奈梳,不是寫Java的碼農(nóng)們可以洗洗睡了!