亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

分布式系統(tǒng)開發(fā)工具包 —— 基于Hessian的HTTP RPC調(diào)用技術(shù)

浠ラ箍 / 3296人閱讀

摘要:官網(wǎng)是二進制協(xié)議。處理大量數(shù)據(jù)分布式應(yīng)用需要發(fā)送大量二進制數(shù)據(jù)時,使用會更加有效率,因為它避免了分配大量數(shù)組。方法參數(shù)中只有最后一個參數(shù)可能是,因為數(shù)據(jù)是在調(diào)用過程中讀的。文件下載文件下載實現(xiàn)原文發(fā)布于

Hessian官網(wǎng):http://hessian.caucho.com/

hessian是二進制web service協(xié)議。

Hessian介紹

創(chuàng)建Hessian服務(wù)包括四個步驟:

創(chuàng)建Java接口,用于提供公開服務(wù)

使用HessianProxyFactory創(chuàng)建客戶端

創(chuàng)建服務(wù)實現(xiàn)類

在servlet引擎中配置服務(wù)

HelloWorld服務(wù)
public interface BasicAPI {
  public String hello();
}
服務(wù)實現(xiàn)
public class BasicService extends HessianServlet implements BasicAPI {
  private String _greeting = "Hello, world";

  public void setGreeting(String greeting)
  {
    _greeting = greeting;
  }

  public String hello()
  {
    return _greeting;
  }
}
客戶端實現(xiàn)
String url = "http://hessian.caucho.com/test/test";

HessianProxyFactory factory = new HessianProxyFactory();
BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url);

System.out.println("hello(): " + basic.hello());
部署標準web.xml

  
   hello
   com.caucho.hessian.server.HessianServlet
    
      home-class
      example.BasicService
    
    
      home-api
      example.Basic
    
  

  
    /hello
    hello
  
Hessian序列化

Hessian類可以用來做序列化與反序列化

序列化
Object obj = ...;

OutputStream os = new FileOutputStream("test.xml");
Hessian2Output out = new Hessian2Output(os);

out.writeObject(obj);
os.close();
反序列化
InputStream is = new FileInputStream("test.xml");
Hessian2Input in = new Hessian2Input(is);

Object obj = in.readObject(null);
is.close();

如果要序列化比基礎(chǔ)類型或String類型更加復雜的java對象,務(wù)必確保對象實現(xiàn)了java.io.Serializable接口。

Hessian處理大量數(shù)據(jù)

分布式應(yīng)用需要發(fā)送大量二進制數(shù)據(jù)時,使用InputStream會更加有效率,因為它避免了分配大量byte數(shù)組。方法
參數(shù)中只有最后一個參數(shù)可能是InputStream,因為數(shù)據(jù)是在調(diào)用過程中讀的。

下面是一個上傳文件的API的例子

package example;

public interface Upload {
  public void upload(String filename, InputStream data);
}

如果返回結(jié)果是InputStream,客戶端必須在finally塊中調(diào)用InputStream.close()方法,因為Hessian不會關(guān)閉
底層HTTP流,直到所有數(shù)據(jù)被讀取并且input stream被關(guān)閉。

文件下載API:
package example;

public interface Download {
  public InputStream download(String filename, InputStream data);
}

文件下載實現(xiàn):
InputStream is = fileProxy.download("test.xml");

try {
  ... // read data here
} finally {
  is.close();
}

原文發(fā)布于:http://www.yesdata.net/2018/03/11/hessian/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/68815.html

相關(guān)文章

  • 后端必備——數(shù)據(jù)通信知識(RPC、消息隊列)一站式總結(jié)

    摘要:具體可以參考消息隊列之具體可以參考實戰(zhàn)之快速入門十分鐘入門阿里中間件團隊博客是一個分布式的可分區(qū)的可復制的基于發(fā)布訂閱的消息系統(tǒng)主要用于大數(shù)據(jù)領(lǐng)域當然在分布式系統(tǒng)中也有應(yīng)用。目前市面上流行的消息隊列就是阿里借鑒的原理用開發(fā)而得。 我自己總結(jié)的Java學習的系統(tǒng)知識點以及面試問題,目前已經(jīng)開源,會一直完善下去,歡迎建議和指導歡迎Star: https://github.com/Snail...

    Kahn 評論0 收藏0
  • 布式服務(wù)框架之遠程通訊技術(shù)及原理分析

    摘要:微軟的雖然引入了事件機制,可以在隊列收到消息時觸發(fā)事件,通知訂閱者。由微軟作為主要貢獻者的,則對以及做了進一層包裝,并能夠很好地實現(xiàn)這一模式。 在分布式服務(wù)框架中,一個最基礎(chǔ)的問題就是遠程服務(wù)是怎么通訊的,在Java領(lǐng)域中有很多可實現(xiàn)遠程通訊的技術(shù),例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,這些名詞之間到底是些什么關(guān)系呢,它們背后到底是基...

    sorra 評論0 收藏0
  • 布式服務(wù)框架之遠程通訊技術(shù)及原理分析

    摘要:微軟的雖然引入了事件機制,可以在隊列收到消息時觸發(fā)事件,通知訂閱者。由微軟作為主要貢獻者的,則對以及做了進一層包裝,并能夠很好地實現(xiàn)這一模式。 在分布式服務(wù)框架中,一個最基礎(chǔ)的問題就是遠程服務(wù)是怎么通訊的,在Java領(lǐng)域中有很多可實現(xiàn)遠程通訊的技術(shù),例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,這些名詞之間到底是些什么關(guān)系呢,它們背后到底是基...

    0xE7A38A 評論0 收藏0
  • Java 遠程通訊技術(shù)及原理分析

    摘要:對于與而言,則可以看做是消息傳遞技術(shù)的一種衍生或封裝。在生產(chǎn)者通知消費者時,傳遞的往往是消息或事件,而非生產(chǎn)者自身。通過消息路由,我們可以配置路由規(guī)則指定消息傳遞的路徑,以及指定具體的消費者消費對應(yīng)的生產(chǎn)者。采用和來進行遠程對象的通訊。 消息模式 歸根結(jié)底,企業(yè)應(yīng)用系統(tǒng)就是對數(shù)據(jù)的處理,而對于一個擁有多個子系統(tǒng)的企業(yè)應(yīng)用系統(tǒng)而言,它的基礎(chǔ)支撐無疑就是對消息的處理。與對象不同,消息本質(zhì)上...

    rozbo 評論0 收藏0
  • PowerDotNet平臺化軟件架構(gòu)設(shè)計與實現(xiàn)系列(04):服務(wù)治理平臺

    摘要:的服務(wù)治理平臺發(fā)源于早期的個人項目??蛻舳税l(fā)現(xiàn)模式要求客戶端負責查詢注冊中心,獲取服務(wù)提供者的列表信息,使用負載均衡算法選擇一個合適的服務(wù)提供者,發(fā)起接口調(diào)用請求。系統(tǒng)和系統(tǒng)之間,少不了數(shù)據(jù)的互聯(lián)互通。隨著微服務(wù)的流行,一個系統(tǒng)內(nèi)的不同應(yīng)用進行互聯(lián)互通也是常態(tài)。 PowerDotNet的服務(wù)治理平臺發(fā)源于早期的個人項目Power.Apix。這個項目借鑒了工作過的公司的服務(wù)治理方案,站在...

    reclay 評論0 收藏0

發(fā)表評論

0條評論

浠ラ箍

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<