久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ArcGIS for Server 10.1中Web Adaptor的工作原理

 ovonel 2013-05-28

ArcGIS for Server 10.1的安裝目錄中,,都會內(nèi)置一個tomcat(Program Files\ArcGIS\Server\framework\runtime\tomcat\),無需單獨的Web Server即可發(fā)布各種GIS服務(wù)(對于熟悉.NET的朋友來說,,更省去單獨安裝和配置IIS的步驟),;AGS應(yīng)用程序的端口號也由之前版本的80(ArcGIS Server for .NET)和8099/8399(ArcGIS Server for Java)統(tǒng)一到了6080上,比如http://localhost:6080/arcgis/rest/serviceshttp://localhost:6080/arcgis/manager等,。但對于內(nèi)置的這個tomcat,,我們并不能進行過多的操作,如果需要部署Web應(yīng)用或通過別的端口來訪問ArcGIS for Server的服務(wù),,這時就需要用到新的組件:Web Adaptor了,。
  Web Adaptor實際上是安裝在Web Server機器上的一個Web應(yīng)用程序,負責(zé)將Web Server接收到的GIS請求轉(zhuǎn)發(fā)到ArcGIS Server site內(nèi)的GIS Server機器上去,。通過Adaptor這個橋梁,,我們就能使ArcGIS for Server利用到企業(yè)級Web Server的諸多優(yōu)勢。根據(jù)安裝幫助中的解釋,,安裝Web Adaptor后主要有以下好處:

  • 將單獨的企業(yè)級Web Server集成到ArcGIS for Server的部署架構(gòu)中來,。可以將利用ArcGIS for Server服務(wù)的Web應(yīng)用部署到Web Server上去,;可以為site內(nèi)所有的GIS Server提供不含有6080端口及arcgis等字樣的統(tǒng)一訪問入口點,;
  • 可阻止最終用戶通過Web Adaptor的訪問地址連接到ArcGIS for Server的相關(guān)管理程序。比如用戶如果得知了類似6080端口的GIS服務(wù)訪問地址,,就可通過固定的url地址訪問到Manger,,Admin api等涉及到整個站點操作的內(nèi)置應(yīng)用。而Web Adaptor給我們提供了選項,,可禁止用戶通過Web Adaptor暴露出的GIS服務(wù)地址訪問到這些管理應(yīng)用,。

  此外,相對于site內(nèi)的多臺GIS Server機器,Web Adaptor還可以再次(除了Web Server集群外)起到負載均衡的作用,,這在大并發(fā)量的情況下會比較有效,。假設(shè)一個site內(nèi)有n臺GIS Server,它們所能處理的最大并發(fā)請求是1w個,;根據(jù)ArcGIS for Server中p2p的實時通信架構(gòu),,當(dāng)我們將1w個并發(fā)請求發(fā)送到任一GIS Server的tomcat上時,GIS Server之間會自動以輪詢(默認(rèn)設(shè)置)的方式處理這些請求,,GIS Server們完全可以及時響應(yīng),;但1w個Web請求會首先使接收請求的這個tomcat過載,產(chǎn)生瓶頸,。如果有了Web Adaptor,,當(dāng)這1w個請求到達Web Server(集群)時,Adaptor會將這些請求輪詢發(fā)送到每個可用的GIS Server去,,這樣每個tomcat就只需支持1w/n個并發(fā)即可,,可最大限度利用硬件資源。
  以IIS中的Web Adaptor為例(經(jīng)過Java高手驗證WebLogic和WebSphere的Adaptor工作過程與此是完全一致的),,看看反編譯后的代碼,。通過查看inetpub\wwwroot\arcgis\Web.config文件得知,IIS中的Web Adaptor主要的工作過程都集中在ESRI.ArcGIS.WebAdaptor.dll(在GAC目錄中)里,。這個dll里首先找到兩個類:

image  

  一個Node就對應(yīng)一個GIS Server機器,,_healthy標(biāo)記該機器的可用狀態(tài),;NodeManager是所有Node的管理類,。Web Adaptor啟動時,會調(diào)用WebAdaptorConfig.GetMachines()方法,,此方法會向http://siteip:port/arcgis/admin/machines發(fā)送get請求,,獲取site內(nèi)所有GIS Server機器的列表,然后利用UpdateNodeList方法保存在NodeManager類中,,并寫入WebAdaptor.config文件,。
  此外,最重要的是一個叫AGSHandler的類,,它實現(xiàn)了IHttpHandler接口:
image 

  發(fā)送到Web Server的GIS請求都會由其中的ProcessRequest方法進行處理,。前面說過Web Adaptor是以輪詢方式轉(zhuǎn)發(fā)請求的,而_currentNodeIndex便記錄了請求轉(zhuǎn)發(fā)目標(biāo)GIS Server的在Nodes列表中的索引:
image  

  Web Adaptor接收到發(fā)到Web Server的GIS請求后,,首先會讀取初始化時保存的WebAdaptor.config配置文件并查看里面存儲的GIS Server機器列表,,如果讀取失敗或者機器個數(shù)為0,都會響應(yīng)500的錯誤,。如1所示,;接下來會利用try里的TransferRequest方法將請求轉(zhuǎn)發(fā)到具體的GIS Server(的tomcat)上去,如果轉(zhuǎn)發(fā)的這個機器沒有響應(yīng),則會在catch中將此機器利用MarkUnHealthy方法標(biāo)記為不可用,;而不論當(dāng)前節(jié)點是否成功接收請求,,TransferRequest方法中都會將_currentNodeIndex節(jié)點加一,保證下一個請求發(fā)送到下一臺GIS Server上去,,以實現(xiàn)輪詢請求的事實:
imageimage  

  最后來看看Web Adaptor是如何根據(jù)配置文件的間隔時間去追詢標(biāo)記為下線機器的狀態(tài),,在機器上線后又將它們加回可用機器列表的:
image

imageimage  

  可以看出,Web Adaptor檢測到?jīng)]有響應(yīng)的機器后,,除了標(biāo)記其為不可用,,也會同時啟動一個定時器,此定時器逝去配置文件中的檢測下線機器狀態(tài)時間間隔(分鐘)后,,會立即將這臺機器重新標(biāo)記為可用,,而不會去檢測它事實上是否可用。判斷機器是否真正可用的過程還是通過前面TransferRequest方法來完成的,,即直接向其轉(zhuǎn)發(fā)請求,,如正常響應(yīng),證明其已經(jīng)在線,;如不能正常響應(yīng),,則再次標(biāo)記其不可用,重新啟動定時器進入下一個輪回…
  大家可以想一想,,整個過程是否有不合理的地方呢,?

原文地址:http://blog./?p=1098

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多