国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

浠ラ箍 / 3263人閱讀

摘要:官網(wǎng)是二進(jìn)制協(xié)議。處理大量數(shù)據(jù)分布式應(yīng)用需要發(fā)送大量二進(jìn)制數(shù)據(jù)時(shí),使用會(huì)更加有效率,因?yàn)樗苊饬朔峙浯罅繑?shù)組。方法參數(shù)中只有最后一個(gè)參數(shù)可能是,因?yàn)閿?shù)據(jù)是在調(diào)用過(guò)程中讀的。文件下載文件下載實(shí)現(xiàn)原文發(fā)布于

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

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

Hessian介紹

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

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

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

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

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

HelloWorld服務(wù)
public interface BasicAPI {
  public String hello();
}
服務(wù)實(shí)現(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;
  }
}
客戶端實(shí)現(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());
部署標(biāo)準(zhǔn)web.xml

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

  
    /hello
    hello
  
Hessian序列化

Hessian類可以用來(lái)做序列化與反序列化

序列化
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類型更加復(fù)雜的java對(duì)象,務(wù)必確保對(duì)象實(shí)現(xiàn)了java.io.Serializable接口。

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

分布式應(yīng)用需要發(fā)送大量二進(jìn)制數(shù)據(jù)時(shí),使用InputStream會(huì)更加有效率,因?yàn)樗苊饬朔峙浯罅縝yte數(shù)組。方法
參數(shù)中只有最后一個(gè)參數(shù)可能是InputStream,因?yàn)閿?shù)據(jù)是在調(diào)用過(guò)程中讀的。

下面是一個(gè)上傳文件的API的例子

package example;

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

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

文件下載API:
package example;

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

文件下載實(shí)現(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/68815.html

相關(guān)文章

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

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

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

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

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

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

    0xE7A38A 評(píng)論0 收藏0
  • Java 遠(yuǎn)程通訊技術(shù)及原理分析

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

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

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

    reclay 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

浠ラ箍

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<