當前位置:編程學習大全網 - 源碼下載 - 如何修改kettle slaveserver的最大連接數

如何修改kettle slaveserver的最大連接數

背景

在使用ftp下載插件時,發現進行本地執行時可以正常,但當選擇了遠程執行並指定了遠程服務器後發現出現了錯誤:從 FTP:User cannot log in. 獲取文件時發生錯誤。根據錯誤信息可以判斷是因為ftp登錄不上的原因,至於具體的原因無法定位,為了壹探究竟,於是便萌生了調試遠程作業的想法,順便深入了解壹下了解kettle運行原理以及源碼學習。

思路

carte服務器實際上就是壹個web server,該web server 是基於 Jetty 這個嵌入式的開源 servlet 容器。這個web server主要是提供轉換運行的環境,另外壹個重要的功能通過提供servlet來在客戶端、主服務器和從屬服務器之間進行通訊和控制。主服務器和從屬 服務器之間是通過httpClient來進行通訊的,通訊時傳遞的數據是xml格式。通過提供的servlet,可以實現啟動、停止、暫停轉換或者作業、 獲得轉換或者作業的狀態、註冊子服務器、獲得子服務器的列表等等.

其實思路以及LZ使用的方法很簡單:通過java代碼在eclipse中啟動壹個Carte服務器,然後遠程執行作業時指定服務器作為載體。

搭建Carte服務啟動環境

首先創建壹個普通的java project項目,如果沒有kettle源碼環境的話可以創建maven project,這樣直接從中心倉庫上面獲得jar包以及源碼。剛好LZ之前有編譯過kettle源碼且已   經作為項目導入了eclipse中,所以 源碼以及相關kettle的jar包都已經有了。

創建了項目後,需要把相關的jar包加到java bulid path中,下面的jar包也可以從PDI工具的lib目錄下獲得:

把依賴包加入到項目中後,創建壹個類來啟動Carte服務:    

public class CarteServer {

publicstaticvoid main(String[] args) throws Exception {

SlaveServerConfig config =new SlaveServerConfig("192.168.31.43", 7088,true);//ip與端口與通過Carte.bat啟動時指定的參數壹樣

Carte.runCarte(config); //通過該靜態方法啟動carte

}

}

開始遠程調試

1.啟動carte服務,建好CarteServer類後,直接debug as --> java application,即可啟動carte服務,在控制臺可以看到以下信息:

2016/08/11 10:55:55 - Carte - 創建 web 服務監聽器 @ 地址: 192.168.31.43:7088

2016-08-11 10:55:55.912:INFO::jetty-6.1.26

2016-08-11 10:55:55.933:INFO::Started SocketConnector@192.168.31.43:7088

2.打開spoon工具,創建壹個job,下面的job是從ftp服務器上下載文件:

3.因為作業用到了FTP下載插件,在源碼中對應JobEntryFTP類,打開該類並在execute()方法中打上斷點:

 

4.運行job,選擇遠程執行,選擇上述類CarteServer中啟動的服務器(要先在spoon工具中新建壹個子服務器):

5.觀察斷點位置,看到已經進入了調試:

 

大功告成,至於ftp下載插件為什麽在遠程執行中錯誤另外說明。

遠程執行流程

用戶運行kettle作業並選擇“遠程執行”,觸發org.pentaho.di.job.Job類的sendToSlaveServer方法

在sendToSlaveServer方法中,首先生成XML格式的作業元數據描述。

調用SlaveServer的sendXML()方法把這些元數據會被發送到遠程的carte服務器。

服務器端AddJobServlet接收到請求後,進入doGet()方法通過元數據構造出Job實體並把作業保存到JobMap中。

在sendToSlaveServer方法中,把XML發送到carte服務器後,接著調用SlaveServer的execService()方法進行啟動遠程的job

此時服務器端StartJobServlet會接收到請求後,會給job(其實是壹個Thread)做壹堆初始化工作,最後調用job的start方法進行啟動。

  • 上一篇:求壹電腦提醒軟件(保護視力和適當休息)
  • 下一篇:陌生人源代碼
  • copyright 2024編程學習大全網