999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Zookeeper的國土資源檔案分布式查詢框架設計與實現

2017-03-30 09:59:21顧乾斌潘善亮
移動通信 2017年5期

顧乾斌+潘善亮

【摘 要】基于業務發展需求,市國土資源局需要集成下屬縣(市)區國土資源局的檔案數據,并提供全大市統一檔案查詢視圖,故設計和實現了一種基于Zookeeper服務注冊中心機制,采用REST服務風格的分布式檔案數據查詢框架,通過RESTful WebService解決了異地分布數據查詢的問題,同時結合Lucene搜索引擎提供的全文索引功能,提高了數據查詢速度和查準率,實際系統投入使用效果良好。

【關鍵詞】Zookeeper REST 國土檔案 WebService

[Abstract] In view of the business development demand, the city bureau of land resources needs to integrate the archive data of the subordinate counties (city)s bureau and provide the unified view file query to the market. A distributed archives data query framework in which the Zookeeper service registration mechanism and the REST service style are used. By means of RESTful Web Service, the remote distributed data query was resolved. Combined with the full-text index function provided by Lucene search engine, the data query speed and accuracy are enhanced with good application effect in real systems.

[Key words]Zookeeper REST land archives WebService

1 引言

國土資源檔案管理是專業性較強的一項工作,因為其中專業檔案較多,特別是地籍資料,具有很高的查找利用價值。近年來,隨著城市化進程的加快和新農村建設的推進,拆遷安置中引發的土地糾紛也隨之增加。國土檔案工作可以為調處土地權屬糾紛、土地違法案件、信訪案件提供大量證據資料,切實維護土地所有者、使用者的權益,進一步促進社會的和諧穩定;在解決鄰里糾紛、民事訴訟、房屋拆遷補償、辦理土地使用權證等方面發揮重要作用。

隨著信息化發展的加快,國土檔案管理對象從紙質文檔發展到了電子影像文檔。檔案數據的來源從過去純粹的單一系統錄入,轉變到來自不同業務系統。因此迫切地需要集成化的國土檔案資源管理系統對數據進行管理。

當前的檔案管理系統在歸檔時需要二次掃描,重復性工作量大。其次,全市國土檔案數據在物理上分布于各個縣區,各縣市區的檔案系統無法提供一個統一的系統入口以供對全市范圍的檔案數據進行查詢,原檔案查詢過程繁瑣。針對這些問題,需要對不同系統的未歸檔數據和物理上獨立分布的已歸檔數據進行集成,并提供統一的檔案查詢接口,使檔案查詢歸檔更加快捷方便,提高檔案的利用率。

目前基于WebService的面向服務的架構SOA成為人們解決問題的主要途徑[1]。近年來,表述性狀態轉移(REST,Representational State Transfer)作為架構被提出,其高可擴展性和簡單的部署方式更適合于輕量級的Web服務,尤其適合面向資源的應用[2]?;赗EST風格構建的互聯網應用具有方便集成、提高服務器的可擴展性等優點。基于Zookeeper設計和實現服務的注冊發現中心,提高了注冊中心的一致性和高性能?;贜ode.js實現的Service Gateway(服務網關)可解耦服務消費者和服務提供者,對外提供統一的服務調用方式。本文主要研究如何利用REST、注冊中心和服務網關實現可擴展性好、穩定性高的分布式查詢框架,并在此基礎上實現松耦合、易查詢的國土資源檔案信息系統的建立,解決不同系統之間的資源集成問題,并采用Lucene對部分關鍵表的重要字段以及部分文檔實時建立全文索引,以提高檔案資源的利用率[4]。

2 關鍵技術

2.1 面向服務的架構SOA

SOA的基本概念:面向服務的體系架構是一個組件模型,其架構思想主張系統設計與實現相分離,使系統整體設計不再受制于技術實現因素。面向服務的體系架構設計擺脫技術的束縛,為解決異構系統通信與互操作問題提供了一種行之有效的解決方案[5]。在SOA架構的基礎上,利用所提供的面向服務的特性,對原有國土資源局及縣市區的應用系統的數據庫進行分析,將必要的資源數據轉變為可共享的標準服務,然后通過對服務的調用來完成各個應用和系統數據的交互與業務協同,實現異構、分布式應用系統之間的敏捷、快速、松耦合、高可靠的應用集成的體系架構[6]。

2.2 REST

REST是2000年Roy Thomas Fielding博士在他的論文中提出的一個術語。其核心思想是將Web應用中所有信息均抽象為“資源”,而所有操作也都是基于資源完成的[7]。在REST中,認為Web是由一系列抽象資源組成的。

REST并不是一種架構,而是一種約束或者說是設計原則,任何符合該約束的服務或架構都可以稱為是RESTful的服務或架構。在RESTful架構中,當客戶請求時,返回資源的一種特定表現形式,例如Json、PDF、XML等。這種基于資源的設計改變了傳統的基于動作的設計思想。RESTful Web服務是基于HTTP協議的,Web應用程序通過一致的接口(URI)來暴露資源,客戶端通過HTTP的四個動作謂詞來訪問資源[8]。因此可以顯式地使用CRUD方法,即創建、讀取、更新和刪除(CRUD,Create、Read、Update、Delete),從而與HTTP服務建立四種映射。

綜上,通過RESTful風格設計國土資源檔案管理系統能夠賦予其高伸縮性、擴展性和靈活性,通過標準的服務來訪問檔案資源,使整個架構更加簡潔。因此對于國土檔案資源在物理上多點分布和系統異構并存的資源環境,使用RESTful Web服務是合適的。

2.3 Zookeeper分布式服務注冊中心

Zookeeper是一個分布式的框架,應用于解決分布式集群系統的一致性問題。Zookeeper提供了基于類似文件系統的目錄節點樹方式的數據存儲,其不僅是存儲這些數據,還可以維護和監控數據的狀態變化,并將這些數據的最新狀態通知給數據服務的使用者[9]。

Zookeeper作為分布式服務的注冊發現配置中心,可以對服務提供者和服務消費者進行解耦,服務提供者在應用啟動時向服務中心注冊,服務消費者在應用啟動時向服務注冊中心拉取當前的提供者基本數據[10]。Zookeeper分布式服務注冊中心示意圖如圖1所示。

如圖1所示,用socket長連接來保持服務提供者、服務消費者(可以是服務網關)和服務注冊中心之間的連通性,并通過心跳包來感知服務提供者,服務消費者可及時獲取到最新的可用服務列表,確保注冊中心服務的可用性以及架構的健壯性和伸縮性。

(1)健壯性

1)注冊中心宕機后,服務消費者仍能通過本地緩存的服務目錄調用服務提供者;

2)服務提供者無狀態,一臺宕機后,服務消費者根據拉取到的服務信息仍可調用其他服務。

(2)伸縮性:服務提供者無狀態,可動態增加機器部署實例,注冊中心將推送新的服務提供者信息給服務消費者。

3 需求分析

3.1 數據和系統現狀

市國土資源局的各個業務系統建立在信息化進程中的不同時期,所采用的技術和架構存在較大差異,早期系統沒有解決各系統的數據集成問題,全市檔案數據分布于各縣市區和市局的檔案系統中,由于這些系統采用的技術架構不同,無法很好地集成數據,形成了信息孤島,從而導致了在檔案數據歸檔時出現重復性工作。加之不動產登記對國土檔案數據有著大范圍的查檔需求,故建立集成化的檔案管理系統迫在眉睫。

對上述現狀可歸納為已歸檔的檔案數據在物理上多點分布,需歸檔的數據存在于異構的系統中,要在數據層面上以服務的形式進行集成[6]。集成后可以提高檔案查詢的效率,只需打開一個瀏覽器終端頁面就可以對全市檔案進行查詢,如圖2所示:

3.2 功能需求

在采用RESTful Web服務解決數據集成問題的基礎上,對需求進行分析后得出檔案管理系統的功能模塊,如表1所示:

4 系統設計

4.1 架構設計

基于RESTful的市國土資源檔案管理系統的架構模型如圖3所示,大致可以分為6層和一個服務注冊中心。

(1)數據源層

數據源層主要包括數據資源和相關業務系統。數據來源主要有OA數據庫,江北、海曙、江東和高新區的數據庫以及ftp服務器上的檔案文件。業務系統包括部署在市局的檔案、OA系統,地籍系統等,這些系統中的數據正是市檔案系統所要集成的。

(2)索引層

Lucene是一個高性能的全文搜索引擎工具,在倒排索引的基礎上可實現分塊索引,提升了索引的速度[8]。系統從數據庫中獲取數據,對主要的查詢字段形成一個全文檢索的庫,在檢索條件模糊的情況下從索引庫檢索,從而提高檔案查詢時的查準率。并且每天定時從數據庫中拉取增量數據建立全文索引。

(3)原子服務層

原子服務層的服務是標準的、獨立的、細粒度的,原則上原子服務是不依賴于其它任何服務的,運行效率和可復用性高。例如將各個系統的數據表中的檔案數據分別建立查詢的服務,作為最基本的原子服務,向服務注冊中心注冊,為上層的組合服務提供基礎。

(4)組合服務層

組合服務根據檔案系統的業務邏輯將原子服務組裝成符合業務需求的服務,提供粒度更粗的服務功能,同時能簡化客戶端的調用邏輯。比如,需要在全市范圍內查詢一個檔案,需要逐個調用5到6個服務,通過服務的組合可以減少業務層在調用服務時的成本。

(5)服務網關

Service Gateway封裝應用的內部結構,簡化客戶端的調用過程,相比起直接調用指定的服務,通過Service Gateway實現服務調用更加簡便。同時客戶端能提供統一的調用接口,減少客戶端維護保存服務調用接口地址的成本。

(6)服務注冊中心

服務注冊中心作為整個架構中一個重要的中間件,是整個系統維護各類服務接口的基本數據,在此基礎上,基于Zookeeper的注冊中心會監聽已注冊服務的服務器,當監聽服務器不可達時,將該服務從注冊服務的節點上刪除,以保證在注冊中心的服務是可用的。

(7)業務層

在原子服務和組合服務的基礎上,系統通過調用這些服務來實現檔案系統的部分重要功能,例如全市范圍內檔案的搜索和文檔影像文件的查看功能,以及文書檔案、業務檔案和多媒體的歸檔、整理、借閱管理和利用率統計等功能。

4.2 架構設計

(1)注冊中心數據存儲結構設計

Zookeeper內部提供了一個基于ZNode節點的樹狀模型,可以在根節點下方擴展任意的子節點,其子節點分為四種創建模式,包括持久節點、持久順序節點、臨時節點、臨時順序節點[3]。

根節點是持久節點,可以在根節點下添加其他節點,使用服務名稱作為子節點的名稱,將該類節點稱為服務節點,其同樣是持久節點。為了確保服務的高可用性,可以發布多個相同功能的服務到同一個服務節點下。根據業務和架構設計,將節點分為原子服務和組合服務兩大類,注冊中心存儲結構如圖4所示。

(2)基于注冊中心和服務網關設計實現服務的高可用屬性

每個服務節點下都有多個節點提供同類的服務,當消費者發起調用時,服務網關根據從注冊中心拉取到的服務列表逐個調用該類服務直到調用成功,這種錯誤從試的調用策略提高了服務的可用性和系統穩定性。根據調用策略亦可實現軟負載均衡的功能??捎眯栽O計如圖5所示:

4.3 基于Node.js的服務網關的設計

Node.js是一個基于Chrome V8引擎的JavaScript運行時環境,它使用了一個事件驅動且“異步非阻塞I/O”的模型,使其非常輕量高效,因此可基于Node.js來設計和開發服務網關。

服務網關(Service Gateway)是服務架構中的核心組件,它是服務請求的門戶,是調用具體服務端的橋梁,服務網關類似經典設計模式中的門面模式,它將底層的復雜細節進行屏蔽,解耦服務調用者和服務提供者之間的關系,對外提供簡單且統一的調用方式,如HTTP方式。

服務調用者將服務名放到請求頭中,服務網關解析該請求,從注冊中心獲取該服務的提供者,并根據一定的規則,例如隨機、錯誤從試和隨機調用等規則來調用服務提供者,調用過程如圖6所示:

5 系統架構具體實現

5.1 系統服務化的實現

(1)資源的分類標準

標準的Web服務是檔案系統查詢、管理、歸檔和集成不同數據源的規范基礎,根據REST的設計原則,可以將資源的CRUD操作對應于HTTP的POST、GET、PUT、DELETE四個類型的請求。根據《寧波市國土資源局歸檔范圍、分類方案及保管期限表》,確定檔案資源的分類和命名規則,將綜合類、會計類、土地類、地籍類、土地規劃類、建設用地類、故土資源監察類、科技類、電子聲像類和地質礦產類,依次以A到I命名。

(2)發布接口的定義

依據REST的設計原則以及檔案的分類,部分服務接口的模板定義如表2所示:

(3)接口的實現

JAX-RS即Java API for RESTful Web Services,是java實現RESTfulWEB服務的規范,而Apach CXF是對JAX-RS的一種很好的實現,借助于Spring能夠較好地將Apach CXF框架集成到項目中。

5.2 組合服務實現

組合服務層是根據業務進行組合過的原子服務,可滿足復合業務需求。在檔案管理系統的查詢服務中,由于檔案數據所在地不同,需要訪問4~5個不同的原子服務接口才能查詢全部檔案,這增加了客戶端調用的成本,故將原子服務組合成一個方便調用的服務接口。例如,客戶端請求C類檔案的查詢服務:

(1)首先客戶端向服務網關請求C類檔案的服務,服務名為“queryC”;

(2)服務網關解析客戶端的請求,獲得服務名為“queryC”的服務節點的信息;

(3)服務網關執行反向代理;

(4)組合服務從注冊中心的“/atomService/”路徑下獲取所有服務名是“queryC”下面的服務提供者節點;

(5)根據獲取到的服務提供者節點,分別調用該服務;

(6)將原子服務返回的結果合并,并返回給調用者。

5.3 服務注冊實現

服務注冊在應用啟動時,自動將要發布的服務注冊到服務中心。首先將獲取到哪些服務需要注冊,借助java的反射掃描指定的包下的Class獲取到哪些有“@Path、@GET”等注解的類和方法,這些加了該注解的方法就是需要發布的服務,并獲取注解中的服務路徑、參數等屬性。

6 結束語

針對國土檔案資源物理上多點分布、歸檔數據存在于異構系統中的現狀。本文設計和實現了基于Zookeeper的檔案資源分布式查詢框架,并對應實現了的Zookeeper服務注冊中心和基于NodeJs的服務網關,使得系統具有了接口統一,以及調用方便、易擴展、松耦合等特性,在此基礎上完成了資源的定義、數據的集成,REST服務的發布及其他業務功能的設計和實現?;谏鲜隹蚣艿臋n案資源管理系統解決了當前遇到的數據集成問題,在實際運行中效果良好。未來還需要增強服務網關的可靠性,增加服務網關對服務的監控功能,包括服務的調用次數和調用耗時等,使能對系統服務運行情況有基本的了解。

參考文獻:

[1] 周濤. EAI企業實現信息化的重要途徑[J]. 中國信息導報, 2003(1): 38-39.

[2] 張海峰,馬蘇. 基于SOA的企業應用集成技術研究與實現[J]. 計算機應用與軟件, 2011(7): 192-194.

[3] 韋強,張國宣. 基于SOA的企業數據集成應用[J]. 計算機與現代化, 2010(11): 117-119.

[4] 周敬才,胡華平,岳虹. 基于Lucene全文檢索系統的設計與實現[J]. 計算機工程與科學, 2015(7): 252-256.

[5] 唐旭華,鄒崢嶸. 基于RESTfulWebServices的空間數據共享[J]. 測繪科學, 2010,35(4): 122-124.

[6] 王建斌,胡小生,李康君,等. REST風格和基于SOAP的WebServices的比較與結合[J]. 計算機應用與軟件, 2010,27(9): 297-300.

[7] Fielding R T. Architectural Styles and the Design of Network-based Software Architectures[J]. University of California Irvine, 2000,64(3): 303.

[8] 江日念,林霞,喬德新. Maven在Java項目中的引入及應用[J]. 電腦知識與技術, 2013,9(21): 4842-4847.

[9] 唐海東,武延軍. 分布式同步系統ZooKeeper的優化[J]. 計算機工程, 2014,40(4): 53-56.

[10] 易柏勝. 基于ZooKeeper的虛擬機動態變更機制的設計和實現[D]. 廣州: 華南理工大學, 2013.

主站蜘蛛池模板: 无码日韩人妻精品久久蜜桃| 国产成人精品一区二区三区| 中文字幕1区2区| 亚洲国产黄色| 996免费视频国产在线播放| 欧美国产精品不卡在线观看 | 97国产在线视频| 亚洲动漫h| 五月综合色婷婷| 熟妇人妻无乱码中文字幕真矢织江 | 欧美第九页| 免费女人18毛片a级毛片视频| 在线观看精品自拍视频| 国产最新无码专区在线| 日本欧美中文字幕精品亚洲| 国产麻豆aⅴ精品无码| 国产精品久久自在自线观看| 成人免费一级片| 福利片91| 亚洲精品天堂在线观看| 精品久久久久久中文字幕女 | 国产精女同一区二区三区久| 国产永久在线视频| 91久久偷偷做嫩草影院免费看| 朝桐光一区二区| 尤物视频一区| 美女无遮挡被啪啪到高潮免费| 一级毛片在线免费看| 性喷潮久久久久久久久| 手机在线国产精品| 国产高清不卡| 色妞永久免费视频| 成人中文在线| 日本久久网站| 欧美成人aⅴ| 一本大道视频精品人妻 | 亚洲最大看欧美片网站地址| 福利国产在线| 国产午夜不卡| 激情乱人伦| 亚洲资源站av无码网址| 国产精品一区在线观看你懂的| 强奷白丝美女在线观看| 无码专区在线观看| 深夜福利视频一区二区| 99r在线精品视频在线播放| 国产精品久久自在自线观看| 青草视频免费在线观看| 韩国自拍偷自拍亚洲精品| 亚洲欧美极品| 99在线观看国产| 久久99国产综合精品1| 四虎成人精品在永久免费| 亚洲国产精品美女| 中文字幕在线播放不卡| 热99精品视频| 亚洲精品第一页不卡| 亚洲五月激情网| 亚洲国产高清精品线久久| 国产污视频在线观看| 国产精品伦视频观看免费| 2020国产免费久久精品99| 凹凸精品免费精品视频| 亚洲 欧美 日韩综合一区| 伊人久久综在合线亚洲91| 91网站国产| 毛片最新网址| 成人日韩欧美| 亚洲精品无码AⅤ片青青在线观看| 精品一区二区三区中文字幕| 五月天综合网亚洲综合天堂网| 在线永久免费观看的毛片| 99视频国产精品| 国产无遮挡猛进猛出免费软件| 2024av在线无码中文最新| 国产一区二区福利| 欧美成一级| 亚洲福利一区二区三区| 成人一级免费视频| 国产国产人在线成免费视频狼人色| 精品一区二区无码av| 中文字幕在线观|