版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
IceGrid應(yīng)用
配置手冊(cè)
V2.1中誠(chéng)信資訊科技有限公司目錄TOC\o"1-5"\h\z\o"CurrentDocument"概述3\o"CurrentDocument"1.1配置目標(biāo)3\o"CurrentDocument"1.2實(shí)驗(yàn)環(huán)境3\o"CurrentDocument"1.3局限3\o"CurrentDocument"配置過程3\o"CurrentDocument"2.1服務(wù)器端配置3\o"CurrentDocument"2.1.1主注冊(cè)服務(wù)配置5\o"CurrentDocument"2.1.2從注冊(cè)服務(wù)配置.7\o"CurrentDocument"2.1.3應(yīng)用部署配置10\o"CurrentDocument"2.1.4節(jié)點(diǎn)配置13\o"CurrentDocument"2.2客戶端配置14\o"CurrentDocument"結(jié)果驗(yàn)證14\o"CurrentDocument"程序方式14\o"CurrentDocument"工具方式14\o"CurrentDocument"高級(jí)應(yīng)用配置20\o"CurrentDocument"集成IceBox20\o"CurrentDocument"IceBox服務(wù)程序編寫20\o"CurrentDocument"IceGrid集成IceBox月艮務(wù)21\o"CurrentDocument"測(cè)試驗(yàn)證25\o"CurrentDocument"集成IcePatch2271.概述1.1配置目標(biāo)本文檔是描述Ice中間件中的IceGrid服務(wù)的應(yīng)用配置,通過使用IceGrid服務(wù)來實(shí)現(xiàn):服務(wù)器端服務(wù)分布式部署。服務(wù)器端服務(wù)按需激活。服務(wù)器端服務(wù)多節(jié)點(diǎn)負(fù)載均衡。注冊(cè)服務(wù)主/從熱備(Master/Slaves)集成IceBox服務(wù)1.2實(shí)驗(yàn)環(huán)境硬件:hp服務(wù)器,3臺(tái)操作環(huán)境:RedHat5服務(wù)器程序:ServerApp.jar說明:實(shí)際應(yīng)用中,服務(wù)器節(jié)點(diǎn)可任意擴(kuò)充、操作系統(tǒng)可被更換、服務(wù)器程序可用實(shí)際項(xiàng)目的服務(wù)程序替換,本文檔所描述的配置方式具有通用性,適用但不局限于當(dāng)前實(shí)驗(yàn)環(huán)境。1.3局限本文檔不詳細(xì)描述IceGrid服務(wù)的運(yùn)行機(jī)制和實(shí)現(xiàn)原理,不詳細(xì)介紹服務(wù)器端和客戶端程序的實(shí)現(xiàn),主要描述IceGrid服務(wù)應(yīng)用的配置步驟、主要配置項(xiàng)及驗(yàn)證配置結(jié)果等。配置過程2.1服務(wù)器端配置配置步驟:創(chuàng)建主注冊(cè)服務(wù)(Master)的配置文件config_master.grid,文件名稱可以任意3/27創(chuàng)建從注冊(cè)服務(wù)(Slave)的配置文件config_slave.grid,文件名稱可以任意創(chuàng)建各節(jié)點(diǎn)服務(wù)的配置文件config.node,文件名稱可以任意創(chuàng)建分布式應(yīng)用配置文件app.xml,文件名稱可以任意,但格式最好定義成xml運(yùn)行Ice提供的工具,啟動(dòng)我們的分布式應(yīng)用,主要有如下兩個(gè)工具:icegridnode和icegridadmin。詳細(xì)啟動(dòng)過程如下:1)icegridnode--Ice.Config=config_master.grid啟動(dòng)主注冊(cè)服務(wù)2)icegridnode--Ice.Config=config_slave.grid啟動(dòng)從注冊(cè)服務(wù)3)icegridadmin—Ice.Config=config_master.grid-e"applicationaddapp.xml”部署分布式服務(wù)icegridadmin—Ice.Config=config_master.grid-e"applicationupdateapp.xml”重新部署分布式服務(wù)4)icegridnode—Ice.Config=config.node將各節(jié)點(diǎn)注冊(cè)到注冊(cè)服務(wù)的注冊(cè)表中配置文件清單:假設(shè)有n個(gè)節(jié)點(diǎn)(n>0),其中從注冊(cè)服務(wù)有x個(gè),(x>0)TOC\o"1-5"\h\zconfig_master.grid主注冊(cè)服務(wù)配置文件1份\o"CurrentDocument"config_slave.grid從注冊(cè)服務(wù)配置文件x份config.node節(jié)點(diǎn)配置文件n份app.xml部署配置文件1份通常情況下,由于注冊(cè)服務(wù)占用資源很少,所以一般都會(huì)和一個(gè)節(jié)點(diǎn)集成在一起,并且可以和節(jié)點(diǎn)服務(wù)在一個(gè)進(jìn)程中運(yùn)行。因此,如果假設(shè)服務(wù)部署到n個(gè)服務(wù)器,通常情況下配置文件清單如下:config_master.grid--主注冊(cè)服務(wù)配置文件一1份一主注冊(cè)服務(wù)信息+節(jié)點(diǎn)信息config_slave.grid從注冊(cè)服務(wù)配置文件一x份一從注冊(cè)服務(wù)信息+節(jié)點(diǎn)信息config.node節(jié)點(diǎn)配置文件n-1-x份一節(jié)點(diǎn)信息、app.xml部署配置文件1份--部署信息其中app.xml要和config_master.grid放在一臺(tái)服務(wù)器上,下面的各章節(jié)將詳細(xì)介紹各配置文件。2.1.1主注冊(cè)服務(wù)配置config_master.grid的內(nèi)容:#TheIceGridInstanceName#IceGrid.InstanceName=IceGridRDDataSource#1#TheIceGridlocatorproxy.#Ice.Default.Locator=IceGridRDDataSource/Locator:default-h01-p12000:default-h02-p12000#2#IceGridregistryconfiguration.#IceGrid.Registry.Client.Endpoints=default-p12000#3IceGrid.Registry.Server.Endpoints=default#4IceGrid.Registry.Internal.Endpoints=default#5IceGrid.Registry.Data=master#6IceGrid.Registry.PermissionsVerifier=IceGridRDDataSource/NullPermissionsVerifier#7IceGrid.Registry.AdminPermissionsVerifier=IceGridRDDataSource/NullPermissionsVerifie#8IceGrid.Registry.SSLPermissionsVerifier=IceGridRDDataSource/NullSSLPermissionsVerifie#9IceGrid.Registry.AdminSSLPermissionsVerifier=IceGridRDDataSource/NullSSLPermissionsVerifier#10#IceGridSQLconfigurationifusingSQLdatabase.##Ice.Plugin.DB=IceGridSqlDB:createSqlDB#11#IceGrid.SQL.DatabaseType=QSQLITE#12#IceGrid.SQL.DatabaseName=register/Registry.db#13###IceErrorandStandardoutputSet##Ice.StdErr=master/stderr.txt#14#Ice.StdOut=master/stdout.txt#15##TraceRegistryproperties#Ice.ProgramName=Master#16IceGrid.Registry.Trace.Node=3#17IceGrid.Registry.Trace.Replica=3#18#IceGridnodeconfiguration.#TOC\o"1-5"\h\zIceGrid.Node.Name=node_1#19IceGrid.Node.Endpoints=default#20IceGrid.Node.Data=node_1#21IceGrid.Node.CollocateRegistry=1#22#IceGrid.Node.Output=node_1#23#IceGrid.Node.RedirectErrToOut=1#24Traceproperties.#IceGrid.Node.Trace.Activator=1#25#IceGrid.Node.Trace.Adapter=2#26#IceGrid.Node.Trace.Server=3#27##Dummyusernameandpasswordforicegridadmin.#IceGridAdmin.Username=mygrid#28IceGridAdmin.Password=mygrid#29配置項(xiàng)說明:1為這個(gè)應(yīng)用實(shí)例指定一個(gè)唯一的標(biāo)識(shí)2注冊(cè)服務(wù)的端點(diǎn)信息(主注冊(cè)服務(wù)和所有的從注冊(cè)服務(wù)),節(jié)點(diǎn)注冊(cè)時(shí)要用到3客戶端訪問注冊(cè)服務(wù)器的端點(diǎn)信息4服務(wù)訪問注冊(cè)服務(wù)器的端點(diǎn)信息,通常是default5內(nèi)部訪問端點(diǎn)信息,通常是default,節(jié)點(diǎn)用這個(gè)端口和注冊(cè)服務(wù)通信6注冊(cè)服務(wù)的數(shù)據(jù)目錄的路徑7設(shè)定防火墻安全代理,從而控制客戶端訪問注冊(cè)表時(shí)可用的權(quán)限8設(shè)定防火墻安全代理,從而控制注冊(cè)表管理者可用的權(quán)限9設(shè)定SSL安全代理,從而設(shè)定客戶端訪問注冊(cè)表時(shí)的SSL安全訪問機(jī)制10設(shè)定SSL安全代理,從而設(shè)定注冊(cè)表管理者的SSL安全訪問機(jī)制11指定Ice對(duì)象序列化的機(jī)制,如果不設(shè)置,默認(rèn)用Freeze機(jī)制12指定使用數(shù)據(jù)庫(kù)的類型13指定使用數(shù)據(jù)庫(kù)的名稱14指定標(biāo)準(zhǔn)錯(cuò)誤輸出文件15指定標(biāo)準(zhǔn)輸出文件16指定主注冊(cè)服務(wù)的名稱17指定主注冊(cè)服務(wù)跟蹤節(jié)點(diǎn)信息的級(jí)別(0~3),默認(rèn)為018指定主/從熱備注冊(cè)服務(wù)的跟蹤級(jí)別(0~3),默認(rèn)為019定義節(jié)點(diǎn)的名稱,必須唯一20節(jié)點(diǎn)被訪問的端口信息,注冊(cè)服務(wù)使用這個(gè)端點(diǎn)和節(jié)點(diǎn)通信,通常設(shè)為default21節(jié)點(diǎn)的數(shù)據(jù)目錄的路徑22定義節(jié)點(diǎn)是否和注冊(cè)服務(wù)并置在一起,設(shè)為1時(shí)并置,設(shè)為0時(shí)不并置23節(jié)點(diǎn)標(biāo)準(zhǔn)輸出信息重定向蹈的目錄路徑,會(huì)自動(dòng)生成輸出文件24節(jié)點(diǎn)上的服務(wù)程序的標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出25激活器跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是026對(duì)象適配器跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是027服務(wù)跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是028IceGrid管理器登錄該應(yīng)用的用戶名29IceGrid管理器登錄該應(yīng)用的密碼未涉及的屬性還有一些,如果需要請(qǐng)參考官方文檔。2.1.2從注冊(cè)服務(wù)配置config_slave.grid的內(nèi)容:#TheIceGridlocatorproxy.#Ice.Default.Locator=IceGridRDDataSource/Locator:default-h41-p12000:default-h42-p12000#1#IceGridregistryconfiguration.#IceGrid.Registry.Client.Endpoints=default-p12000#2IceGrid.Registry.Server.Endpoints=default#3IceGrid.Registry.Internal.Endpoints=default#4IceGrid.Registry.Data=slave_1#5IceGrid.Registry.ReplicaName=slave_1#6IceGrid.Registry.PermissionsVerifier=IceGridRDDataSource/NullPermissionsVerifier#7IceGrid.Registry.AdminPermissionsVerifier=IceGridRDDataSource/NullPermissionsVerifie#8IceGrid.Registry.SSLPermissionsVerifier=IceGridRDDataSource/NullSSLPermissionsVerifie#9IceGrid.Registry.AdminSSLPermissionsVerifier=IceGridRDDataSource/NullSSLPermissionsVerifier#10##IceGridSQLconfigurationifusingSQLdatabase.##Ice.Plugin.DB=IceGridSqlDB:createSqlDB#11#IceGrid.SQL.DatabaseType=QSQLITE#12#IceGrid.SQL.DatabaseName=register/Registry.db#13###IceErrorandStandardoutputSet##Ice.StdErr=slave_1/stderr.txt#14#Ice.StdOut=slave_1/stdout.txt#15##TraceRegistryproperties#Ice.ProgramName=Slave_1#16IceGrid.Registry.Trace.Node=3#17IceGrid.Registry.Trace.Replica=3#18#IceGridnodeconfiguration.#TOC\o"1-5"\h\zIceGrid.Node.Name=node_2#19IceGrid.Node.Endpoints=default#20IceGrid.Node.Data=node_2#21IceGrid.Node.CollocateRegistry=1#22#IceGrid.Node.Output=node_2#23#IceGrid.Node.RedirectErrToOut=1#24Traceproperties.#IceGrid.Node.Trace.Activator=1#25#IceGrid.Node.Trace.Adapter=2#26#IceGrid.Node.Trace.Server=3#27##Dummyusernameandpasswordforicegridadmin.#IceGridAdmin.Username=mygrid#28IceGridAdmin.Password=mygrid#29配置項(xiàng)說明:其實(shí)這個(gè)文件和主注冊(cè)配置文件基本一樣,差別只有一點(diǎn):沒有指定應(yīng)用實(shí)例名,因?yàn)樵谥髯?cè)服務(wù)中已經(jīng)有了定義多了第6行,IceGrid.Registry.ReplicaName=slave_1,指定從注冊(cè)服務(wù)的名稱其它的基本就沒有差別了,大部分屬性項(xiàng)在config_master.grid里面都有定義,為了方便閱讀,下面也將用到的各項(xiàng)給出說明:1注冊(cè)服務(wù)的端點(diǎn)信息(主注冊(cè)服務(wù)和所有的從注冊(cè)服務(wù)),節(jié)點(diǎn)注冊(cè)時(shí)要用到2客戶端訪問注冊(cè)服務(wù)器的端點(diǎn)信息3服務(wù)訪問注冊(cè)服務(wù)器的端點(diǎn)信息,通常是default#4內(nèi)部訪問端點(diǎn)信息,通常是default,節(jié)點(diǎn)用這個(gè)端口和注冊(cè)服務(wù)通信5注冊(cè)服務(wù)的數(shù)據(jù)目錄的路徑6指定從注冊(cè)服務(wù)的名稱7設(shè)定防火墻安全代理,從而控制客戶端訪問注冊(cè)表時(shí)可用的權(quán)限#8設(shè)定防火墻安全代理,從而控制注冊(cè)表管理者可用的權(quán)限9設(shè)定SSL安全代理,從而設(shè)定客戶端訪問注冊(cè)表時(shí)的SSL安全訪問機(jī)制#10設(shè)定SSL安全代理,從而設(shè)定注冊(cè)表管理者的SSL安全訪問機(jī)制11指定Ice對(duì)象序列化的機(jī)制,如果不設(shè)置,默認(rèn)用Freeze機(jī)制12指定使用數(shù)據(jù)庫(kù)的類型13指定使用數(shù)據(jù)庫(kù)的名稱14指定標(biāo)準(zhǔn)錯(cuò)誤輸出文件15指定標(biāo)準(zhǔn)輸出文件16指定從注冊(cè)服務(wù)運(yùn)行時(shí)程序名稱17指定從注冊(cè)服務(wù)跟蹤節(jié)點(diǎn)信息的級(jí)別(0~3),默認(rèn)為018指定主/從熱備注冊(cè)服務(wù)的跟蹤級(jí)別(0~3),默認(rèn)為019定義節(jié)點(diǎn)的名稱,必須唯一20節(jié)點(diǎn)被訪問的端口信息,注冊(cè)服務(wù)使用這個(gè)端點(diǎn)和節(jié)點(diǎn)通信,通常設(shè)為default21節(jié)點(diǎn)的數(shù)據(jù)目錄的路徑22定義節(jié)點(diǎn)是否和注冊(cè)服務(wù)并置在一起,設(shè)為1時(shí)并置,設(shè)為0時(shí)不并置23節(jié)點(diǎn)標(biāo)準(zhǔn)輸出信息重定向蹈的目錄路徑,會(huì)自動(dòng)生成輸出文件24節(jié)點(diǎn)上的服務(wù)程序的標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出25激活器跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是026對(duì)象適配器跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是027服務(wù)跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是028IceGrid管理器登錄該應(yīng)用的用戶名29IceGrid管理器登錄該應(yīng)用的密碼2.1.3應(yīng)用部署配置app.xml配置文件內(nèi)容:1<icegrid>〈applicationname="RTDSSystem">〈server-templateid="RTDSSystemServer">〈parametername="index"/><serverid="RTDSSystemServer${index}"exe="java"activation="ondemand"><adaptername="RTDataSysytem"endpoints="tcp"replica-group="ReplicatedRTDataSysytemAdp"/><option>-jar</option><option>ServerApp.jar</option></server></server-template>11<replica-groupid="ReplicatedRTDataSysytemAdp"><load-balancingtype="roundrobin"/><objectidentity="RTDataSource"type="::RTDataSystem::RTDataSource"/></replica-group>16<nodename="node_1"><server-instancetemplate="RTDSSystemServer"index="1"/><server-instancetemplate="RTDSSystemServer"index="11"/><server-instancetemplate="RTDSSystemServer"index="111"/></node><nodename="node_2">23〈server-instancetemplate="RTDSSystemServer"index="2"/><!--server-instancetemplate="RTDSSystemServer"index="22"/--><!--server-instancetemplate="RTDSSystemServer"index="222"/--></node>27nodename="node_3">28<server-instancetemplate="RTDSSystemServer"index="3"/><!--server-instancetemplate="RTDSSystemServer"index="33"/--><!--server-instancetemplate="RTDSSystemServer"index="333"/--></node>《/application〉33</icegrid>配置文件結(jié)構(gòu)分析:IceGrid里,部署是一個(gè)在注冊(cè)服務(wù)中表述一個(gè)應(yīng)用(Application)的過程,而部署配置文件就是來描述這些配置信息的文件,這個(gè)配置文件是用xml標(biāo)記性語言來描述的。通常一個(gè)部署應(yīng)該包含如下信息:應(yīng)用標(biāo)簽(application),name屬性定義這個(gè)應(yīng)用的名字服務(wù)(server),一個(gè)邏輯上的服務(wù)器,能夠通過exe命令而啟動(dòng)的一個(gè)服務(wù)程序。activation屬性,是設(shè)置服務(wù)的啟動(dòng)方式,on-demand是最常用的方式,另外還有always等啟動(dòng)方式;option標(biāo)簽是exe執(zhí)行命令命令行的參數(shù);適配器(adpter),定義服務(wù)器端的適配器。name屬性唯一標(biāo)志這個(gè)適配器;endpoints屬性指定端點(diǎn)信息;replica-group屬性標(biāo)示該適配器是個(gè)可復(fù)制組集群,并指定這個(gè)可復(fù)制組的名稱;register-process屬性定義了是否這個(gè)節(jié)點(diǎn)是否可以被icegrid關(guān)閉;節(jié)點(diǎn)(node),它應(yīng)該代表了一個(gè)物理上的節(jié)點(diǎn)。name屬性指定節(jié)點(diǎn)的名字,并且是唯一的??蓮?fù)制組(replica-group),一組對(duì)象適配器的集合。id屬性唯一標(biāo)識(shí)一個(gè)可復(fù)制組;load-balancing子項(xiàng)中type屬性指定負(fù)載均衡策略,icegrid提供了四種負(fù)載均衡策略:Random(隨機(jī)方式)Adaptive(適配方式)RoundRobin(最近最少使用)Ordered(順序方式)object子項(xiàng)定義適配器綁定的服務(wù)對(duì)象信息。其中identity屬性指定對(duì)象的標(biāo)識(shí),type屬性指定了對(duì)象的層次結(jié)構(gòu)類型。這兩個(gè)屬性都可以唯一的標(biāo)識(shí)一個(gè)服務(wù)對(duì)象。服務(wù)模板(server-temple),服務(wù)模板是對(duì)服務(wù)的一個(gè)抽象,避免了重復(fù)定義。這樣,在節(jié)點(diǎn)中描述服務(wù)時(shí)只需要實(shí)例化它的服務(wù)模板就可以了。id屬性唯一標(biāo)識(shí)一個(gè)服務(wù)模板;parameter子項(xiàng)定義服務(wù)模板的參數(shù),可包含多個(gè),主要實(shí)例化服務(wù)時(shí)用;server子項(xiàng)就是上面2中的服務(wù)定義;另外還有一些特殊的服務(wù)模板,比如:icebox服務(wù)模板,它的定義和通用的服務(wù)模板的定義不太一樣。解析app.xml文件:通過對(duì)配置文件結(jié)構(gòu)的分析,來解析一下app.xml。第1行,標(biāo)識(shí)這是一個(gè)icegrid的配置文件;第2行,標(biāo)識(shí)應(yīng)用的名稱為RTDSSystem這個(gè)名稱是唯一的;第3~10行,定義了一個(gè)服務(wù)模板RTDSSystemServer并有一個(gè)參數(shù)index;其中5~9定義了這個(gè)模板包含的服務(wù)定義,第6行是這個(gè)服務(wù)包含的對(duì)象適配器的定義;第12~15行,是對(duì)可復(fù)制組的定義,包括服務(wù)對(duì)象的定義和負(fù)載均衡策略;第17~21行,是對(duì)節(jié)點(diǎn)node_1的定義,指定了節(jié)點(diǎn)的名稱,包含的服務(wù)(3個(gè)服務(wù));第22~26行,是對(duì)節(jié)點(diǎn)node_2的定義第27~31行,是對(duì)節(jié)點(diǎn)node_3的定義最后兩行是閉合標(biāo)簽,至此一個(gè)icegrid的分布式部署配置文件就完成了。部署配置文件的擴(kuò)展:app.xml中對(duì)服務(wù)模板、適配器、服務(wù)對(duì)象等的配置都是一個(gè),事實(shí)上這些可以在文件中定義多個(gè),比如可以有多個(gè)服務(wù)模板,一個(gè)服務(wù)里可以有多個(gè)適配器,可以有多個(gè)可復(fù)制組,一個(gè)節(jié)點(diǎn)里可以有多個(gè)不同類型的服務(wù)等。另外,app.xml可以包含其它的xml。2.1.4節(jié)點(diǎn)配置config.grid文件的內(nèi)容:#TheIceGridlocatorproxy.#TOC\o"1-5"\h\zIce.Default.Locator=IceGridRDDataSource/Locator:default-h41-p12000:default-h42-p12000#1#IceGridnodeconfiguration.#IceGrid.Node.Name=node_2#2IceGrid.Node.Endpoints=default#3IceGrid.Node.Data=node_2#4IceGrid.Node.Output=node_2#5IceGrid.Node.RedirectErrToOut=1#6Traceproperties.#IceGrid.Node.Trace.Activator=1#7#IceGrid.Node.Trace.Adapter=2#8#IceGrid.Node.Trace.Server=3#9配置項(xiàng)說明:事實(shí)上,這個(gè)文件里面的配置項(xiàng),在config_slave.grid中都有描述,但這里也列出來,方便閱讀。#1注冊(cè)服務(wù)的端點(diǎn)信息(主注冊(cè)服務(wù)和所有的從注冊(cè)服務(wù)),節(jié)點(diǎn)注冊(cè)時(shí)要用到#2定義節(jié)點(diǎn)的名稱,必須唯一#3節(jié)點(diǎn)被訪問的端口信息,注冊(cè)服務(wù)使用這個(gè)端點(diǎn)和節(jié)點(diǎn)通信,通常設(shè)為default#4節(jié)點(diǎn)的數(shù)據(jù)目錄的路徑#5節(jié)點(diǎn)標(biāo)準(zhǔn)輸出信息重定向的目錄路徑,會(huì)自動(dòng)生成輸出文件#6節(jié)點(diǎn)上的服務(wù)程序的標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出#7激活器跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是0#8對(duì)象適配器跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是0#9服務(wù)跟蹤級(jí)別,通常有0,1,2,3級(jí),默認(rèn)是02.2客戶端配置客戶端的配置很簡(jiǎn)單,和分布式相關(guān)的配置就一項(xiàng),添加如下:##TheIceGridlocatorproxy.#Ice.Default.Locator=IceGridRDDataSource/Locator:default-h41-p12000:default-h42-p12000#注冊(cè)服務(wù)的端點(diǎn)信息(主注冊(cè)服務(wù)和所有的從注冊(cè)服務(wù)),用于定位結(jié)果驗(yàn)證3.1程序方式啟動(dòng)服務(wù)器icegridnode—Ice.Config=config_master.grid啟動(dòng)主注冊(cè)服務(wù)和節(jié)點(diǎn)1icegridnode—Ice.Config=config_slave.grid啟動(dòng)從注冊(cè)服務(wù)和節(jié)點(diǎn)2icegridadmin—Ice.Config=config_master.grid-e"applicationaddapp.xml”部署分布式服務(wù)icegridnode--Ice.Config=config.node啟動(dòng)節(jié)點(diǎn)3啟動(dòng)客戶端,進(jìn)行多次遠(yuǎn)程調(diào)用,根據(jù)執(zhí)行情況就可以判斷服務(wù)器端是否配置成功。3.2工具方式用Ice官方提供的可視化管理工具IceGridGUI.jar來驗(yàn)證和管理icegrid的部署。1.打開dos窗口,在命令行下進(jìn)入C:\ProgramFiles\ZeroC\Ice-3.4.1\bin目錄下,然后運(yùn)行“javajarIceGridGUI.jar”,彈出IceGridAdmin的主界面,如下圖所示:圖3.2.1主界面2.點(diǎn)擊按鈕File—>login,彈出登錄對(duì)話框,輸入用戶名、密碼,IceInstanceName和iceRegistryendpoint,點(diǎn)擊“OK”按鈕,就可以進(jìn)入該部署的管理界面圖3.2.2File菜單CQUTiectIdNaslsr圖3.2.3登陸窗口%X$0gQni?口回區(qū)i七海匿STBTBstaSysyternE?IBSEystmServet-L1■■■■3TBNW展聘yt知B"OEIBSSyEtcnSirv&r-L11??f|PHTDfltASyiytsrh,?node_E:?■■□EIBSETslmSirver-2白■(^3nod七_(dá)3三??□EUJSSyEtcnSetfv&r~3…HTDfitaS嚴(yán)ytmLu^ed.inioWasterKegiEtiryUseSSLforaTLthenticationdefault-h10CL22L-p120?牛orkiyOnline圖3.2.4實(shí)時(shí)管理(服務(wù)已加載,但未激活)nrx闊IccG-ridAdninFilaBdilgiwlordsnrxLiveIieploynierii:,Shuttiagdavitoodt'nodfl_3'...Ioele.RctM口g口olmg圖3.2.5實(shí)時(shí)管理(服務(wù)已激活)由圖3.2.4和3.2.5可以看到,該應(yīng)用部署的名字是IceGridRDDataSource,它進(jìn)行了主/從注冊(cè)服務(wù)的熱備(Master/slave_1),當(dāng)Master崩潰后,slave_1就會(huì)接收客戶端的請(qǐng)求;同時(shí)該應(yīng)用有三個(gè)節(jié)點(diǎn)(node_1,node_2,node_3),每個(gè)節(jié)點(diǎn)都分布了同一類服務(wù),通過負(fù)載均衡的方式共同完成客戶端的請(qǐng)求,其中node_1部署了三個(gè),node_2和node_3分別部署了一個(gè)。注冊(cè)服務(wù)(Master/Slave)可以通過該管理工具被關(guān)閉,在其上面點(diǎn)擊右鍵,選取彈出的菜單項(xiàng)“shutdown”。只要存在一個(gè)活動(dòng)狀態(tài)的注冊(cè)服務(wù),整個(gè)應(yīng)用依然能夠提供服務(wù)。由于該工具登陸時(shí)默認(rèn)使用的是主注冊(cè)服務(wù)(Master),所以,當(dāng)關(guān)閉Master后管理界面將被關(guān)閉,如果想再次進(jìn)入管理界面,需要重新登陸并選擇slave注冊(cè)服務(wù)器,因?yàn)橹髯?cè)服務(wù)已經(jīng)被關(guān)閉。
園IccfiridAdBin□B8FiUEditYiwImIeKalp?S>一MnXs{JabcRdd.relL-kncivriOtjectfietrievsEtd?utHatri時(shí)白s.tdsrrj.ijr.tinflCMipori?rits0Rdd.relL-kncivriOtjectfietrievsEtd?utHatri時(shí)白s.tdsrrj.ijr.tinflCMipori?rits0匚wGri.dJSDD成T白.iED.&dfe_3E--rjB.n)5S^Et4r£flr5Tttif-3:??尊.51fl.Ke_l白iGn&d&_l莊??「JHnJSSj.*:*耳HTBSS網(wǎng)!由瓦M(jìn)B5S汽圖3.2.6關(guān)閉Master同注冊(cè)服務(wù)器一樣,各個(gè)節(jié)點(diǎn)也是可以用同樣的方式被關(guān)閉,同樣由于主注冊(cè)服務(wù)和節(jié)點(diǎn)1的應(yīng)用服務(wù)集成在一起,當(dāng)節(jié)點(diǎn)1被關(guān)閉時(shí),主注冊(cè)服務(wù)也將結(jié)束。如果stderrr圓Icc&ridiAdsin白叵!區(qū)1stderrr圓Icc&ridiAdsin白叵!區(qū)1】EiltElitVinvtoolsE^lp□jFsl^iriIuI"curinMJ■心皿}lostD.En4ttstOE.JTHLVeiDpar^tiiLgSystinIdmm2.6.L8-LS-1.?15fl5MTTsfi.ug肉15.SL.54ZDT2CO9Flwhiiu*^ytif?vithsmrcLoadAveractQ.DO(J.DOQ.DOKcfrE^kLtilTiX.1Hl1ur>LoadFiwtorAppl3Cb.tLODL^iQubMDSSystenUefauLtTlcrkingQnlinflLogg&dintaHI-a.Et?rTlcrkingQnlinfl圖3.2.7關(guān)閉節(jié)點(diǎn)每個(gè)節(jié)點(diǎn)上的服務(wù)可以被啟動(dòng)、停止,也可以被設(shè)置為有效或失效,還有一些其它的功能菜單,這里不再詳述,這些操作通過右鍵菜單都可以方便的進(jìn)行。HrikMessageH^tribw:stdouti)??國(guó)園Icc&cidAdainFilsZditVia#TaoltHelp:圓歸巴也七做HrikMessageH^tribw:stdouti)??國(guó)園Icc&cidAdainFilsZditVia#TaoltHelp:圓歸巴也七做maxabeLdELDD?th^oTEraeWister,1HEmBiRIDSSy=tETTBSSystF也七chDisttributioaHatriEztdertr3571KcfTGZhIfSiTidVfilMIce.Aiirnin.Eridpoint.^tep~li12T.0.0.1leaAditinScrvarldKIDSyEtanScrvar-Llet.Config/t&Tie/pro良enJRU]...IceBefsult.LocatorIceGridRDBataSource/L.Ics.FrcgrajnKenQEIDS5yEtflnS*rver~L高級(jí)應(yīng)用配置集成IceBox在文檔《IceBox開發(fā)和配置》(當(dāng)前是1.0版)中,介紹了一個(gè)IceBox服務(wù)程序的開發(fā)方法和單獨(dú)應(yīng)用中配置和管理的過程。在實(shí)際的應(yīng)用中,IceBox服務(wù)通常集成到IceGrid中,并通過IceGrid進(jìn)行激活和部署。本章節(jié)中IceBox服務(wù)是集成在IceGrid中,并通過IceGrid進(jìn)行部署,所以IceBox服務(wù)的配置信息不再同《IceBox開發(fā)和配置》中一樣在config.icebox中描述,而是直接配置在部署文件app.xml中。那也就是說,IceGrid集成IceBox服務(wù),只需要在app.xml文件中添加Icebox服務(wù)相關(guān)的配置信息就可以了。事實(shí)上,有關(guān)Ice所有的配置信息(除IceGrid自身的配置信息),都可以添加到app.xml中,并通過icegrid部署后生效。下面各節(jié)詳細(xì)描述IceBox服務(wù)的集成過程。IceBox服務(wù)程序編寫請(qǐng)參考文檔《IceBox開發(fā)和配置》,這里不再詳述。由于IceBox服務(wù)相關(guān)的配置信息都放在了app.xml中,并且服務(wù)是通過IceGrid按需激活的,因此這里程序代碼略有調(diào)整。下面列出IceBox服務(wù)的實(shí)現(xiàn)代碼:文件名:ServerService.javaimportmain.java.DataSource;importIceBox.Service;publicclassServerServiceimplementsIceBox.Service(/**@paramname配置文件中的service名稱@paramcommunicator對(duì)象,由IceBox.ServiceManager負(fù)責(zé)創(chuàng)建和銷毀??赡芡瑫r(shí)被其他服務(wù)共享使用(由配置文件決定),objectAdapter的名稱必須是唯一的;@paramargs配置文件中的參數(shù)列表@Override**/publicvoidstart(Stringname,Ice.Communicatorcommunicator,String[]args)(//創(chuàng)建objectAdapter,名稱有配置文件決定20/27Adapter=communicator.createObjectAdapter("RTDataSystem-"+name);//創(chuàng)建servantStringRTDataSourceIdentity=communicator.getProperties().getPro"eRTDataSource.Identity");DataSourceobjDataSrc=newDataSource("dataSource");Adapter.add(objDataSrc,communicator.stringToIdentity(RTDataSourceIdentity));Adapter.activate();}/***@paramargs@Override***/publicvoidstop()(Adapter.destroy();}privateIce.ObjectAdapterAdapter;}4.1.2IceGrid集成IceBox服務(wù)IceGrid集成IceBox只和部署文件(app.xml)有關(guān),IceBox服務(wù)(service)的粒度和普通的server是「一樣的,因此IceBoxservice的部署和普通的server非常類似,它同樣有模板、服務(wù)(service)和實(shí)例化的概念,可以將IceBoxservice理解為一個(gè)特殊的server0為了能更清楚的描述這個(gè)集成配置的過程,在IceGrid配置的基礎(chǔ)上,添加IceBox服務(wù)。具體目標(biāo)如下:集成ServerService服務(wù)(service),并且ServerService服務(wù)(service)使用的服務(wù)對(duì)象和之前server的服務(wù)對(duì)象使用同一個(gè)(type--::RTDataSystem::RTDataSource)在節(jié)點(diǎn)1(node_1)上添加IceBox服務(wù)功能(IceBox-Nodel),這個(gè)IceBox服務(wù)包含了5個(gè)ServerService服務(wù);同樣的在節(jié)點(diǎn)2(node_2)上也添加一個(gè)IceBox服務(wù)功能(IceBox-Node2),也包含了5個(gè)ServerService服務(wù)3.這些IceBox服務(wù)中分布的多個(gè)服務(wù)(service)和之前已經(jīng)存在的服務(wù)(server)一起通過IceGrid實(shí)現(xiàn)負(fù)載均衡為了實(shí)現(xiàn)上述的功能,需要添加IceBox服務(wù)的相關(guān)配置,首先看一下此時(shí)app.xml的變化,變化和添加部分用淺灰陰影標(biāo)出。app.xml<?xmlversion="1.0"encoding="UTF-8"?><icegrid><applicationname="RTDSSystem"><server-templateid="RTDSSystemServer"><parametername="index"/><serverid="RTDSSystemServer-${index}"exe="java"activation="on-demand">〈adaptername="RTDataSysytem"endpoints="tcp"replica-group="RTDataSystemGroup"/><option>-jar</option><option>ServerApp.jar</option></server></server-template><!—begin服務(wù)模板定義--><service-templateid="RTDSystemService"><parametername="name"/><servicename="${name}"entry="ServerService"><description>Asimpleservicenamedafter${name}</description><properties><propertyname=HRTDataSource.identityl<value="RTDataSource"/></properties><adaptername="RTDataSystem-${name}"endpoints="tcp"id="RTDataSystem-${name}"replica-group="RTDataSystemGroup"server-lifetime="false"/></service></service-template><!--end服務(wù)模板定義--><replica-groupid=lRTDataSystemGroupl><load-balancingtype="round-robin"/><!--load-balancingtype="ordered"/--><!--load-balancingtype="adaptive"/--><!--load-balancingtype="random"n-replicas="0"/--><objectidentity="RTDataSource"type="::RTDataSystem::RTDataSource"/></replica-group>
<nodename="node_1"><server-instancetemplate="RTDSSystemServer"index="1"/><server-instancetemplate="RTDSSystemServer"index="11"/><server-instancetemplate="RTDSSystemServer"index="111"/><!—beginIceBox服務(wù)配置IceBox-Node1-->1<iceboxid="IceBox-NodeTactivation="on-demand"exe="java">2<description>AsampleIceBoxserverIceBox-Node1</description>3<option>IceBox.Server</option>4<properties>5<propertyname="IceBox.InstanceName"value="$(server}"/>6<propertyname="Ice.Admin.Endpoints"value="tcp-h41"/>7<propertyname="IceBox.Trace.ServiceObserve"value="1"/>8</properties>9<service-instancetemplate="RTDSystemService"name="one"/>10<service-instancetemplate="RTDSystemService"name="two"/>11<service-instancetemplate="RTDSystemService"name="three"/>12<service-instancetemplate="RTDSystemService"name="four"/>13<service-instancetemplate="RTDSystemService"name="five"/>14</icebox><!—endIceBox服務(wù)配置IceBox-Node1--></node><nodename="node_2"><server-instancetemplate="RTDSSystemServer"index="2"/><server-instancetemplate="RTDSSystemServer"index="22"/><server-instancetemplate="RTDSSystemServer"index="222"/><!—beginIceBox服務(wù)配置IceBox-Node2-->1<iceboxid="IceBox-Node2"activation="on-demand"exe="java">2<description>AsampleIceBoxserverIceBox-Node2</description>3<option>IceBox.Server</option>4<properties>5<propertyname="IceBox.InstanceName"value="${server)"/>6<propertyname="Ice.Admin.Endpoints"value="tcp-h42"/>7<propertyname="IceBox.Trace.ServiceObserve"value="1"/>8</properties>9<service-instancetemplate="RTDSystemService"name="2-one"/>10<service-instancetemplate="RTDSystemService"name="2-two"/>11<service-instancetemplate="RTDSystemService"name="2-three"/>12<service-instancetemplate="RTDSystemService"name="2-four"/>13<service-instancetemplate="RTDSystemService"name="2-five"/>14</icebox><!—beginIceBox服務(wù)配置IceBox-Node2--></node><nodename="node_3"><server-instancetemplate="RTDSSystemServer"index="3"/></node></application></icegrid>app.xml中增加的IceBox服務(wù)相關(guān)的配置部分如下:■服務(wù)摸板(ServiceTemplate):可以對(duì)比一下servertemplate的定義,兩者基本上沒有什么區(qū)別,最大的不同是Servertemplate中server是指定一個(gè)可執(zhí)行的程序,而service中指定的是動(dòng)態(tài)加載的組件入口。以下解釋上述配置中的服務(wù)模板的定義:第1行指定定義模板的id,唯一標(biāo)志一個(gè)服務(wù)模板,第12是閉合標(biāo)簽;第2行定義了一個(gè)參數(shù)name,默認(rèn)值是“name”;第3~11行定義了模板中使用的服務(wù)(service),并在該service中指定了名稱、入口、描述信息、配置屬性,定義了一個(gè)對(duì)象適配器;第4行,是該服務(wù)的描述信息;第5~7行,是屬性定義列表,這里定義了一個(gè)屬性RTDataSource.Identity,并指定其值為RTDataSource;第8行,定義了一個(gè)對(duì)象適配器,指定了其name、endpoints、id、replica-group等屬性信息,這個(gè)基本上和server中adapter的定義沒有什么區(qū)別以上內(nèi)容就是service模板的定義?!鯥ceBox服務(wù)(IceBox-Node1):icebox服務(wù)的定義被包含在分布的服務(wù)器節(jié)點(diǎn)中,主要包括三部分的信息:IceBox服務(wù)的啟動(dòng)配置信息IceBox的屬性配置信息Service服務(wù)實(shí)例化列表下面解釋這塊內(nèi)容:第1~3行,指定了IceBox服務(wù)的名稱,啟動(dòng)方式,啟動(dòng)執(zhí)行程序等第4~8行,指定了IceBox服務(wù)的屬性配置列表,這里定義了Ice
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 糖尿病足患者足部健康自我管理行為干預(yù)模式推廣策略實(shí)踐
- 糖尿病足患者健康信念模式干預(yù)效果研究
- 養(yǎng)生產(chǎn)品運(yùn)營(yíng)方案
- 糖尿病視網(wǎng)膜病變篩查路徑的成本效益
- 糖尿病藥物經(jīng)濟(jì)學(xué)評(píng)價(jià)中的預(yù)算影響分析
- 糖尿病藥物經(jīng)濟(jì)學(xué)評(píng)價(jià)中的馬爾可夫模型應(yīng)用
- 校園網(wǎng)站建設(shè)方案
- 糖尿病腎病足細(xì)胞特異性靶向治療策略優(yōu)化研究進(jìn)展
- 糖尿病腎病合并高血壓的降壓目標(biāo)
- 糖尿病精準(zhǔn)健康管理與數(shù)據(jù)驅(qū)動(dòng)干預(yù)策略
- 彝族文化和幼兒園課程結(jié)合的研究獲獎(jiǎng)科研報(bào)告
- 空調(diào)安裝免責(zé)協(xié)議
- 湖北省襄樊市樊城區(qū)2023-2024學(xué)年數(shù)學(xué)四年級(jí)第一學(xué)期期末質(zhì)量檢測(cè)試題含答案
- 美國(guó)怡口全屋水處置介紹
- 新北師大版八年級(jí)數(shù)學(xué)下冊(cè)導(dǎo)學(xué)案(全冊(cè))
- 常用實(shí)驗(yàn)室檢查血常規(guī)演示文稿
- 生命第一:?jiǎn)T工安全意識(shí)手冊(cè)
- cimatron紫藤教程系列g(shù)pp2運(yùn)行邏輯及block說明
- GB/T 32473-2016凝結(jié)水精處理用離子交換樹脂
- CB/T 1233-1994水面艦船螺旋槳脈動(dòng)壓力測(cè)量規(guī)程
- 《工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)》(2002年修訂本)
評(píng)論
0/150
提交評(píng)論