国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務(wù)器之家 - 編程語言 - JAVA教程 - 分析JAVA中幾種常用的RPC框架

分析JAVA中幾種常用的RPC框架

2021-04-12 09:14孜孜以求 JAVA教程

這篇文章主要介紹了JAVA中幾種常用的RPC框架的相關(guān)知識(shí)點(diǎn),對此有興趣的朋友參考學(xué)習(xí)下吧。

rpc是遠(yuǎn)程過程調(diào)用的簡稱,廣泛應(yīng)用在大規(guī)模分布式應(yīng)用中,作用是有助于系統(tǒng)的垂直拆分,使系統(tǒng)更易拓展。java中的rpc框架比較多,各有特色,廣泛使用的有rmi、hessian、dubbo等。rpc還有一個(gè)特點(diǎn)就是能夠跨語言,本文只以java語言里的rpc為例。

對于rpc有一個(gè)邏輯關(guān)系圖,以rmi為例:

分析JAVA中幾種常用的RPC框架

其他的框架結(jié)構(gòu)也類似,區(qū)別在于對象的序列化方法,傳輸對象的通訊協(xié)議,以及注冊中心的管理與failover設(shè)計(jì)(利用zookeeper)。

客戶端和服務(wù)端可以運(yùn)行在不同的jvm中,client只需要引入接口,接口的實(shí)現(xiàn)以及運(yùn)行時(shí)需要的數(shù)據(jù)都在server端,rpc的主要依賴技術(shù)是序列化、反序列化和傳輸協(xié)議,java里對應(yīng)的就是對象的序列化、反序列化以及序列化后數(shù)據(jù)的傳輸。rmi的序列化和反序列化是java自帶的,hessian里的序列化和反序列化是私有的,傳輸協(xié)議則是http,dubbo的序列化可以多種選擇,一般使用hessian的序列化協(xié)議,傳輸則是tcp協(xié)議,使用了高性能的nio框架netty。對于序列化,我還了解一些,像google的probuffer、jboss marshalling和apache thrift等,之前有寫一篇介紹probuffer的博文

1、rmi(遠(yuǎn)程方法調(diào)用)

java自帶的遠(yuǎn)程方法調(diào)用工具,不過有一定的局限性,畢竟是java語言最開始時(shí)的設(shè)計(jì),后來很多框架的原理都基于rmi,rmi的使用如下:

對外接口

?
1
2
3
4
5
public interface iservice extends remote {
 
  public string queryname(string no) throws remoteexception;
 
}</span>

服務(wù)實(shí)現(xiàn)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.rmi.remoteexception;
import java.rmi.server.unicastremoteobject;
 
// 服務(wù)實(shí)現(xiàn)
public class serviceimpl extends unicastremoteobject implements iservice {
 
  /**
   */
  private static final long serialversionuid = 682805210518738166l;
 
  /**
   * @throws remoteexception
   */
  protected serviceimpl() throws remoteexception {
    super();
  }
 
  /* (non-javadoc)
   * @see com.suning.ebuy.wd.web.iservice#queryname(java.lang.string)
   */
  @override
  public string queryname(string no) throws remoteexception {
    // 方法的具體實(shí)現(xiàn)
    system.out.println("hello" + no);
    return string.valueof(system.currenttimemillis());
  }
   
}

rmi客戶端

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.rmi.remoteexception;
import java.rmi.registry.locateregistry;
import java.rmi.registry.registry;
 
// rmi服務(wù)端
public class server {
 
  public static void main(string[] args) {
    // 注冊管理器
    registry registry = null;
    try {
      // 創(chuàng)建一個(gè)服務(wù)注冊管理器
      registry = locateregistry.createregistry(8088);
 
    } catch (remoteexception e) {
       
    }
    try {
      // 創(chuàng)建一個(gè)服務(wù)
      serviceimpl server = new serviceimpl();
      // 將服務(wù)綁定命名
      registry.rebind("vince", server);
       
      system.out.println("bind server");
    } catch (remoteexception e) {
       
    }
  }
}

服務(wù)注冊管理器寫在了server里,當(dāng)然也可以抽出來單獨(dú)作為一個(gè)服務(wù),在其他一些框架中,往往用zookeeper充當(dāng)注冊管理角色。

2、hessian(基于http的遠(yuǎn)程方法調(diào)用)

基于http協(xié)議傳輸,在性能方面還不夠完美,負(fù)載均衡和失效轉(zhuǎn)移依賴于應(yīng)用的負(fù)載均衡器,hessian的使用則與rmi類似,區(qū)別在于淡化了registry的角色,通過顯示的地址調(diào)用,利用hessianproxyfactory根據(jù)配置的地址create一個(gè)代理對象,另外還要引入hessian的jar包。

分析JAVA中幾種常用的RPC框架

3、dubbo(淘寶開源的基于tcp的rpc框架)

基于nio框架netty的高性能rpc框架,是阿里巴巴開源的,總體原理如下:

分析JAVA中幾種常用的RPC框架

在了解dubbo之前,要先對zookeeper有深入的理解,當(dāng)理解了zookeeper后,dubbo也就了無秘密了。

zookeeper作為dubbo服務(wù)的注冊中心,dubbo原先基于數(shù)據(jù)庫的注冊中心,沒采用zookeeper,zookeeper一個(gè)分布式的服務(wù)框架,是樹型的目錄服務(wù)的數(shù)據(jù)存儲(chǔ),能做到集群管理數(shù)據(jù) ,這里能很好的作為dubbo服務(wù)的注冊中心,dubbo能與zookeeper做到集群部署,當(dāng)提供者出現(xiàn)斷電等異常停機(jī)時(shí),zookeeper注冊中心能自動(dòng)刪除提供者信息,當(dāng)提供者重啟時(shí),能自動(dòng)恢復(fù)注冊數(shù)據(jù),以及訂閱請求。

dubbo的詳細(xì)說明在淘寶開源里說的非常詳細(xì),在工作中很多生產(chǎn)項(xiàng)目都用了dubbo,過程中也發(fā)現(xiàn)了很多需要注意的地方,尤其是那繁多的配置,設(shè)置不當(dāng)都會(huì)讓人煩腦,最好能再基于現(xiàn)有開源的dubbo再定制優(yōu)化一下。

原文鏈接:http://blog.csdn.net/volts/article/details/54672525

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av一区二区在线观看 | 成人亚洲 | 在线a视频| 欧美中文在线 | 精品久久久久久久 | 日韩免费看 | 国产精品不卡一区 | 日韩一区电影 | 日韩中文一区二区 | 久久久久国产 | 操操网站| 久久99精品久久久久婷婷暖91 | 久久久久中文字幕 | 欧洲精品在线视频 | 国产露脸国语对白在线 | 嫩呦国产一区二区三区av | 一级黄色小视频 | 毛片免费在线播放 | 日韩a电影 | 久久亚洲欧美日韩精品专区 | 国产免费一区二区三区 | 99精品国产高清在线观看 | 刺激网| 亚洲不卡 | 综合色播 | 人人插| 久久亚洲国产精品 | 狠狠久 | 99精品国产一区二区三区 | 成人免费视频在线观看 | 99r在线 | 亚洲人成网站999久久久综合 | 欧美日韩一区在线 | 精品国产在 | 男女涩涩 | 亚洲自拍中文 | 成人午夜精品久久久久久久3d | 国产免费一区 | 久久爱电影 | 中文字幕第一区 | 精品少妇一区二区三区日产乱码 |