天天看點

elasticSearch源碼分析——依賴注入與子產品分析

今天開始查閱es源碼,然後就有問題引導了,首先整個系統包含多少個子產品?這些子產品有事怎麼組織管理的呢?

elasticsearch使用的是google開源的依賴注入架構guice,這個項目号稱比spring快100倍,具體性能沒有測試過,不過由于其代碼比較簡潔,比spring快很有可能,是不是快那麼多就不知道了。

上面就是在main方法中使用Injector進行注入與擷取執行個體,這就是使用Guice進行依賴注入的一個簡單例子。elasticsearch裡面的元件基本都是用這種方式進行子產品化管理,elasticsearch對guice進行了封裝,通過ModulesBuilder類建構es的子產品。

大概了解了一下,一個es節點大概包括一下子產品:

PluginsModule:插件子產品

SettingsModule:設定參數子產品

NodeModule:節點子產品

NetworkModule:網絡子產品

NodeCacheModule:緩存子產品

ScriptModule:腳本子產品

JmxModule:jmx子產品

EnvironmentModule:環境子產品

NodeEnvironmentModule:節點環境子產品

ClusterNameModule:叢集名子產品

ThreadPoolModule:線程池子產品

DiscoveryModule:自動發現子產品

ClusterModule:叢集子產品

RestModule:rest子產品

TransportModule:tcp子產品

HttpServerModule:http子產品

RiversModule:river子產品

IndicesModule:索引子產品

SearchModule:搜尋子產品

ActionModule:行為子產品

MonitorModule:監控子產品

GatewayModule:持久化子產品

NodeClientModule:用戶端子產品

接下來,就需要對這些子產品進一步分析。

程式猿行業技術生活交流群:181287753(指尖天下),歡迎大夥加入交流學習。

繼續閱讀