欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于RMI和ZooKeeper實現(xiàn)遠程調(diào)用框架的方法與流程

文檔序號:12469771閱讀:944來源:國知局

本發(fā)明涉及軟件SSR 分布式遠程調(diào)用技術(shù)領(lǐng)域,具體涉及一種基于RMI和ZooKeeper實現(xiàn)遠程調(diào)用框架的方法。



背景技術(shù):

在分布式的系統(tǒng)環(huán)境中,需要一種跨虛擬機的調(diào)用。例如,服務(wù)A在JVM 1中運行,服務(wù)B在 JVM 2中運行,服務(wù)A和 服務(wù)B可相互進行遠程調(diào)用,就像調(diào)用本地方法一樣,可以輕松的將服務(wù)提供者與服務(wù)消費者進行分離,充分體現(xiàn)組件之間的弱耦合,系統(tǒng)架構(gòu)更易于拓展。

目前,隨著系統(tǒng)的越來越復(fù)雜,需要將一個復(fù)雜的系統(tǒng)拆分成不同的子系統(tǒng),并且實現(xiàn)子系統(tǒng)之間的相互通信,這個在分布式的系統(tǒng)之中尤為重要。

ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn),是Hadoop和Hbase的重要組件。它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護、名字服務(wù)、分布式同步、組服務(wù)等。

ZooKeeper的目標就是封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。

ZooKeeper包含一個簡單的原語集,提供Java和C的接口。

ZooKeeper代碼版本中,提供了分布式獨享鎖、選舉、隊列的接口,代碼在zookeeper-3.4.3\src\recipes。其中分布鎖和隊列有Java和C兩個版本,選舉只有Java版本。

RMI是Java的一組擁護開發(fā)分布式應(yīng)用程序的API。RMI使用Java語言接口定義了遠程對象,它集合了Java序列化和Java遠程方法協(xié)議(Java Remote Method Protocol)。簡單地說,這樣使原先的程序在同一操作系統(tǒng)的方法調(diào)用,變成了不同操作系統(tǒng)之間程序的方法調(diào)用,由于J2EE是分布式程序平臺,它以RMI機制實現(xiàn)程序組件在不同操作系統(tǒng)之間的通信。比如,一個EJB可以通過RMI調(diào)用Web上另一臺機器上的EJB遠程方法。

RMI(Remote Method Invocation,遠程方法調(diào)用)是用Java在JDK1.1中實現(xiàn)的,它大大增強了Java開發(fā)分布式應(yīng)用的能力。Java作為一種風(fēng)靡一時的網(wǎng)絡(luò)開發(fā)語言,其巨大的威力就體現(xiàn)在它強大的開發(fā)分布式網(wǎng)絡(luò)應(yīng)用的能力上,而RMI就是開發(fā)百分之百純Java的網(wǎng)絡(luò)分布式應(yīng)用系統(tǒng)的核心解決方案之一。其實它可以被看作是RPC的Java版本。但是傳統(tǒng)RPC并不能很好地應(yīng)用于分布式對象系統(tǒng)。而Java RMI 則支持存儲于不同地址空間的程序級對象之間彼此進行通信,實現(xiàn)遠程對象之間的無縫遠程調(diào)用。



技術(shù)實現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題是:本發(fā)明針對以上問題,提供一種基于RMI和ZooKeeper來實現(xiàn)的一種遠程調(diào)用框架。相較于WebService等傳統(tǒng)方法更快,并且使用ZooKeeper增強了RMI的高可用性。RMI是跨JVM的一種遠程調(diào)用實現(xiàn)方式,通過jdk提供強調(diào)的支持和實現(xiàn),結(jié)合ZooKeeper來增強RMI服務(wù)的高可用性。

jdk是Java語言的軟件開發(fā)工具包,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序。

本發(fā)明所采用的技術(shù)方案為:

一種基于RMI和ZooKeeper實現(xiàn)遠程調(diào)用框架的方法,所述方法通過利用ZooKeeper充當一個服務(wù)注冊表(Service Register),服務(wù)提供者(Service Provider)注冊上來形成一個集群,發(fā)布RMI服務(wù),并將RMI地址注冊到ZooKeeper中,以供服務(wù)消費者(Service Consumer)消費服務(wù)。

所述ZooKeeper提供兩個功能:

1)服務(wù)注冊,相當于一個注冊表,保存服務(wù)提供者注冊上的基本信息;

2)心跳檢測,定時向服務(wù)注冊者發(fā)送一個請求,如果服務(wù)注冊者長期沒有請求,ZooKeeper認為服務(wù)提供者已經(jīng)“掛掉”了,只會從“活著”的服務(wù)提供者中選出一個座位當前的服務(wù)提供者。

所述方法實現(xiàn)步驟如下:

第一步:設(shè)置ZooKeeper端口信息,啟動ZooKeeper,利用ZooKeeper充當一個服務(wù)注冊表(Service Register),服務(wù)提供者(Service Provider)注冊上來形成一個集群;

第二步:編寫服務(wù)提供者,并且發(fā)布成RMI服務(wù),將RMI地址注冊到ZooKeeper中;

第三步:服務(wù)消費者(Service Consumer)消費服務(wù),消費者要在創(chuàng)建的時候連接ZooKeeper,獲取RMI服務(wù)地址的信息,用來調(diào)用遠程的RMI服務(wù)。

所述服務(wù)提供者在提供服務(wù)時繼承 java.rmi.Remote接口,每個RMI接口的方法必須聲明拋出java.rmi.RemoteException異常,這是jdk 對RMI的規(guī)范,必須遵守。

本發(fā)明的有益效果為:

本發(fā)明實現(xiàn)原理簡單,依賴ZooKeeper和RMI,可以提供集群管理的能力;相較于WebService等傳統(tǒng)方法更快,并且使用ZooKeeper增強了RMI的高可用性;ZooKeeper可以提供心跳檢測的功能,過濾掉已經(jīng)“掛掉”的服務(wù)提供者信息。

附圖說明

圖1為一種基于RMI和ZooKeeper實現(xiàn)遠程調(diào)用框架的方法示意圖。

具體實施方式

下面結(jié)合附圖,根據(jù)具體實施方式對本發(fā)明進一步說明:

實施例1:

一種基于RMI和ZooKeeper實現(xiàn)遠程調(diào)用框架的方法,所述方法通過利用ZooKeeper充當一個服務(wù)注冊表(Service Register),服務(wù)提供者(Service Provider)注冊上來形成一個集群,發(fā)布RMI服務(wù),并將RMI地址注冊到ZooKeeper中,以供服務(wù)消費者(Service Consumer)消費服務(wù)。

實施例2

在實施例1的基礎(chǔ)上,本實施例所述ZooKeeper提供兩個功能:

1)服務(wù)注冊,相當于一個注冊表,保存服務(wù)提供者注冊上的基本信息;

2)心跳檢測,定時向服務(wù)注冊者發(fā)送一個請求,如果服務(wù)注冊者長期沒有請求,ZooKeeper認為服務(wù)提供者已經(jīng)“掛掉”了,只會從“活著”的服務(wù)提供者中選出一個座位當前的服務(wù)提供者。

實施例3

在實施例1或2的基礎(chǔ)上,本實施例所述方法實現(xiàn)步驟如下:

第一步:設(shè)置ZooKeeper端口信息,啟動ZooKeeper,利用ZooKeeper充當一個服務(wù)注冊表(Service Register),服務(wù)提供者(Service Provider)注冊上來形成一個集群;

第二步:編寫服務(wù)提供者,并且發(fā)布成RMI服務(wù),將RMI地址注冊到ZooKeeper中;

第三步:服務(wù)消費者(Service Consumer)消費服務(wù),消費者要在創(chuàng)建的時候連接ZooKeeper,獲取RMI服務(wù)地址的信息,用來調(diào)用遠程的RMI服務(wù)。

實施例4

在實施例3的基礎(chǔ)上,本實施例所述服務(wù)提供者在提供服務(wù)時繼承ava.rmi.Remote接口,每個RMI接口的方法必須聲明拋出java.rmi.RemoteException異常,這是jdk 對RMI的規(guī)范,必須遵守。

實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應(yīng)由權(quán)利要求限定。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
章丘市| 台湾省| 玉门市| 焉耆| 灵山县| 盐源县| 铜山县| 东源县| 巴塘县| 鲜城| 蓬莱市| 鹤壁市| 英德市| 蓝山县| 本溪| 朝阳区| 钦州市| 石林| 民勤县| 兴安县| 关岭| 阳原县| 荆州市| 泗水县| 周口市| 黄浦区| 富裕县| 柳河县| 建湖县| 大庆市| 舟山市| 名山县| 南阳市| 安溪县| 海兴县| 阜新市| 岳西县| 阳曲县| 清水河县| 舞钢市| 临漳县|