日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

API手冊(cè)

更新時(shí)間:

在HSF應(yīng)用的API中,最關(guān)鍵的是創(chuàng)建ProviderBean和ConsumerBean相關(guān)的API。

背景信息

根據(jù)用戶使用的場(chǎng)景不同,主要分為4個(gè)關(guān)鍵的類。

  • com.taobao.hsf.app.api.util.HSFApiProviderBean: 通過(guò)API編程的方式創(chuàng)建Provider Bean。

  • com.taobao.hsf.app.api.util.HSFApiConsumerBean: 通過(guò)API編程的方式創(chuàng)建Consumer Bean。

  • com.taobao.hsf.app.spring.util.HSFSpringProviderBean: 通過(guò)Spring配置的方式創(chuàng)建Provider Bean。

  • com.taobao.hsf.app.spring.util.HSFSpringConsumerBean: 通過(guò)Spring配置的方式創(chuàng)建Consumer Bean。

其中,HSFSpringXxxBean的配置屬性與HSFApiXxxBean的setter方法相對(duì)應(yīng)。接下來(lái)就分別以ProviderBean和ConsumerBean的視角介紹這4個(gè)類的API。

ProviderBean

  • API編程方式 - HSFApiProviderBean

    通過(guò)配置并初始化com.taobao.hsf.app.api.util.HSFApiProviderBean即可完成HSF服務(wù)的發(fā)布。

    對(duì)于一個(gè)服務(wù),com.taobao.hsf.app.api.util.HSFApiProviderBean的配置及初始化過(guò)程只需配置一次。此外,考慮到HSFApiProviderBean對(duì)象比較復(fù)雜,建議緩存。

    • 示例代碼:

      // 實(shí)例化并配置Provider Bean
      HSFApiProviderBean hsfApiProviderBean = new HSFApiProviderBean();
      hsfApiProviderBean.setServiceInterface("com.taobao.hsf.test.HelloWorldService");
      hsfApiProviderBean.setTarget(target); // target為serviceInterface指定接口的實(shí)現(xiàn)對(duì)象。
      hsfApiProviderBean.setServiceVersion("1.0.0");
      hsfApiProviderBean.setServiceGroup("HSF");
      
      // 初始化Provider Bean,發(fā)布服務(wù)。
      hsfApiProviderBean.init();
    • 可配置屬性表:

      除上述示例代碼中設(shè)置的屬性,HSFApiProviderBean還包含許多其他可配置的屬性,均可通過(guò)對(duì)應(yīng)的setter方法進(jìn)行設(shè)置。

      屬性名

      類型

      是否必選

      默認(rèn)值

      含義

      serviceInterface

      String

      無(wú)

      設(shè)置HSF服務(wù)對(duì)外提供的業(yè)務(wù)接口。客戶端通過(guò)此屬性進(jìn)行訂閱。

      target

      Object

      無(wú)

      設(shè)置serviceInterface指定接口的服務(wù)實(shí)現(xiàn)對(duì)象。

      serviceVersion

      String

      1.0.0

      設(shè)置服務(wù)的版本號(hào)。客戶端通過(guò)此屬性進(jìn)行訂閱。

      serviceGroup

      String

      HSF

      設(shè)置服務(wù)的組別。客戶端通過(guò)此屬性進(jìn)行訂閱。

      serviceDesc

      String

      無(wú)

      設(shè)置服務(wù)的描述,從而方便管理。

      clientTimeout

      int

      3000

      設(shè)置響應(yīng)超時(shí)時(shí)間(單位:毫秒)。如果服務(wù)端在設(shè)置的時(shí)間內(nèi)沒(méi)有返回,則拋出HSFTimeOutException。

      methodSpecials

      MethodSpecial[]

      無(wú)

      設(shè)置服務(wù)中某些方法的響應(yīng)超時(shí)時(shí)間。通過(guò)設(shè)置MethodSpecial.methodName指定方法名,通過(guò)設(shè)置MethodSpecial.clientTimeout指定當(dāng)前方法的超時(shí)時(shí)間,優(yōu)先級(jí)高于當(dāng)前服務(wù)端的clientTimeout。

      preferSerializeType

      String

      hessian2

      針對(duì)HSF2,設(shè)置服務(wù)的請(qǐng)求參數(shù)和響應(yīng)結(jié)果的序列化方式。可選值有java、hessian、hessian2、json和kryo。

      corePoolSize

      值為整型的String

      0

      配置服務(wù)單獨(dú)的線程池,并指定最小活躍線程數(shù)量。若不設(shè)置該屬性,則默認(rèn)使用HSF服務(wù)端的公共線程池。

      maxPoolSize

      值為整型的String

      0

      配置服務(wù)單獨(dú)的線程池,并指定最大活躍線程數(shù)量。若不設(shè)置該屬性,則默認(rèn)使用HSF服務(wù)端的公共線程池。

  • Spring配置方式 - HSFSpringProviderBean

    通過(guò)在Spring配置文件中,配置一個(gè)class為 com.taobao.hsf.app.spring.util.HSFSpringProviderBean的bean,即可完成HSF服務(wù)的發(fā)布。

    示例代碼

    <bean id="helloWorldService" class="com.taobao.hsf.test.HelloWorldService" />
    
    <bean class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean" init-method="init">
        <!-- [必選] 設(shè)置HSF服務(wù)對(duì)外提供的業(yè)務(wù)接口 -->
        <property name="serviceInterface" value="com.taobao.hsf.test.HelloWorldService" />
    
        <!-- [必選] 設(shè)置serviceInterface指定接口的服務(wù)實(shí)現(xiàn)對(duì)象,即需要發(fā)布為HSF服務(wù)的spring bean id -->
        <property name="target" ref="helloWorldService" />
    
        <!-- [可選] 設(shè)置服務(wù)的版本號(hào),默認(rèn)為1.0.0 -->
        <property name="serviceVersion" value="1.0.0" />
    
        <!-- [可選] 設(shè)置服務(wù)的組別,默認(rèn)為HSF -->
        <property name="serviceGroup" value="HSF" />
    
        <!-- [可選] 設(shè)置服務(wù)的描述,從而方便管理,默認(rèn)為null -->
        <property name="serviceDesc" value="HelloWorldService providered by HSF" />
    
        <!-- [可選] 設(shè)置響應(yīng)超時(shí)時(shí)間(單位:毫秒)。如果服務(wù)端在設(shè)置的時(shí)間內(nèi)沒(méi)有返回,則拋出HSFTimeOutException -->
        <!-- 默認(rèn)為3000 ms -->
        <property name="clientTimeout" value="3000"/>
    
        <!-- [可選] 設(shè)置服務(wù)中某些方法的響應(yīng)超時(shí)時(shí)間。優(yōu)先級(jí)高于上面的clientTimeout -->
        <!-- 通過(guò)設(shè)置MethodSpecial.methodName指定方法名,MethodSpecial.clientTimeout指定方法的超時(shí)時(shí)間 -->
        <property name="methodSpecials">
            <list>
                <bean class="com.taobao.hsf.model.metadata.MethodSpecial">
                    <property name="methodName" value="sum" />
                    <property name="clientTimeout" value="2000" />
                </bean>
            </list>
        </property>
    
        <!-- [可選] 設(shè)置服務(wù)的請(qǐng)求參數(shù)和響應(yīng)結(jié)果的序列化方式。可選值包含java、hessian、hessian2、json和kryo -->
        <!-- 默認(rèn)為hessian2 -->
        <property name="preferSerializeType" value="hessian2"/>
    
        <!-- [可選] 配置服務(wù)單獨(dú)的線程池,并指定最小活躍線程數(shù)量。若不設(shè)置該屬性,則默認(rèn)使用HSF服務(wù)端的公共線程池 -->
        <property name="corePoolSize" value="10"/>
    
        <!-- [可選] 配置服務(wù)單獨(dú)的線程池,并指定最大活躍線程數(shù)量。若不設(shè)置該屬性,則默認(rèn)使用HSF服務(wù)端的公共線程池 -->
        <property name="maxPoolSize" value="60"/>
    </bean>

ConsumerBean

  • API配置方式 - HSFApiConsumerBean

    通過(guò)配置并初始化com.taobao.hsf.app.api.util.HSFApiConsumerBean完成HSF服務(wù)的訂閱。

    對(duì)于同一個(gè)服務(wù),com.taobao.hsf.app.api.util.HSFApiConsumerBean的配置及初始化過(guò)程只需配置一次。

    由于HSFApiConsumerBean對(duì)象內(nèi)容多,建議將該對(duì)象以及獲取到的HSF代理進(jìn)行緩存。

    說(shuō)明

    在HSF內(nèi)部HSFApiConsumerBean對(duì)服務(wù)的配置是緩存起來(lái)的。即如果對(duì)某個(gè)訂閱的服務(wù)進(jìn)行了多次配置,只有第一次的配置生效。

    • 示例代碼

      // 實(shí)例化并配置Consumer Bean
      HSFApiConsumerBean hsfApiConsumerBean = new HSFApiConsumerBean();
      hsfApiConsumerBean.setInterfaceName("com.taobao.hsf.test.HelloWorldService");
      hsfApiConsumerBean.setVersion("1.0.0");
      hsfApiConsumerBean.setGroup("HSF");
      
      // 初始化Consumer Bean,訂閱服務(wù)
      // true表示等待地址推送(超時(shí)時(shí)間為3000毫秒),默認(rèn)為false(異步)
      hsfApiConsumerBean.init(true);
      
      // 獲取HSF代理HelloWorldService 
      helloWorldService = (HelloWorldService) hsfApiConsumerBean.getObject();
      
      // 發(fā)起HSF調(diào)用String 
      helloStr = helloWorldService.sayHello("Li Lei");
    • 可配置屬性表

      除上述示例代碼中設(shè)置的屬性,HSFApiConsumerBean還包含許多其他可配置的屬性,均可通過(guò)對(duì)應(yīng)的setter方法進(jìn)行設(shè)置。

      屬性名

      類型

      是否必選

      默認(rèn)值

      含義

      interfaceName

      String

      無(wú)

      設(shè)置需要訂閱服務(wù)的接口名。客戶端通過(guò)此屬性進(jìn)行訂閱。

      version

      String

      無(wú)

      設(shè)置需要訂閱服務(wù)的版本號(hào)。客戶端通過(guò)此屬性進(jìn)行訂閱。

      group

      String

      無(wú)

      設(shè)置需要訂閱服務(wù)的組別。客戶端通過(guò)此屬性進(jìn)行訂閱。

      clientTimeout

      int

      無(wú)

      設(shè)置請(qǐng)求超時(shí)時(shí)間(單位:毫秒)。如果客戶端在設(shè)置的時(shí)間內(nèi)沒(méi)有收到服務(wù)端響應(yīng),則拋出HSFTimeOutException。 若客戶端設(shè)置了clientTimeout,則優(yōu)先級(jí)高于服務(wù)端設(shè)置的clientTimeout。否則,在服務(wù)的遠(yuǎn)程調(diào)用過(guò)程中,使用服務(wù)端設(shè)置的clientTimeout。

      methodSpecials

      MethodSpecial[]

      無(wú)

      設(shè)置服務(wù)中某些方法的請(qǐng)求超時(shí)時(shí)間。通過(guò)設(shè)置MethodSpecial.methodName指定方法名,通過(guò)設(shè)置MethodSpecial.clientTimeout指定當(dāng)前方法的超時(shí)時(shí)間,優(yōu)先級(jí)高于當(dāng)前客戶端的clientTimeout。

      maxWaitTimeForCsAddress

      int

      無(wú)

      設(shè)置同步等待ConfigServer推送地址的時(shí)間(單位:毫秒),從而避免因地址還未推送到就發(fā)起服務(wù)調(diào)用造成的HSFAddressNotFoundException。一般建議設(shè)置為5000毫秒,即可滿足推送等待時(shí)間。

      asyncallMethods

      List

      無(wú)

      設(shè)置需要異步調(diào)用的方法列表。List中的每一個(gè)字符串的格式為:

      • name:方法名

      • type:異步調(diào)用類型

      • listener:監(jiān)聽(tīng)器

      其中l(wèi)istener只對(duì)callback類型的異步調(diào)用生效。type的類型有:

      • future:通過(guò)Future的方式去獲取請(qǐng)求執(zhí)行的結(jié)果。

      • callback:當(dāng)遠(yuǎn)程服務(wù)的調(diào)用完成后,HSF會(huì)使用響應(yīng)結(jié)果回調(diào)此處配置的listener,該listener需要實(shí)現(xiàn)HSFResponseCallback接口。

      proxyStyle

      String

      jdk

      設(shè)置服務(wù)的代理模式,一般不用配置。如果要攔截這個(gè)consumer bean,需要配置成javassist。

  • Spring配置方式 - HSFSpringConsumerBean

    通過(guò)在Spring配置文件中,配置一個(gè)class為com.taobao.hsf.app.api.util.HSFSpringConsumerBean的bean,即可實(shí)現(xiàn)服務(wù)的訂閱。

    示例代碼

    <bean id="helloWorldService" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean">
        <!-- [必選] 設(shè)置需要訂閱服務(wù)的接口名 -->
        <property name="interfaceName" value="com.taobao.hsf.test.HelloWorldService" />
    
        <!-- [必選] 設(shè)置需要訂閱服務(wù)的版本號(hào) -->
        <property name="version" value="1.0.0" />
    
        <!-- [必選] 設(shè)置需要訂閱服務(wù)的組別 -->
        <property name="group" value="HSF" />
    
        <!-- [可選] 設(shè)置請(qǐng)求超時(shí)時(shí)間(單位:毫秒)。如果客戶端在設(shè)置的時(shí)間內(nèi)沒(méi)有收到服務(wù)端響應(yīng),則拋出HSFTimeOutException -->
        <!-- 若客戶端設(shè)置了clientTimeout,則優(yōu)先級(jí)高于服務(wù)端設(shè)置的clientTimeout。否則,在服務(wù)的遠(yuǎn)程調(diào)用過(guò)程中,使用服務(wù)端設(shè)置的clientTimeout。-->
        <property name="clientTimeout" value="3000" />
    
        <!-- [可選] 設(shè)置服務(wù)中某些方法的請(qǐng)求超時(shí)時(shí)間,優(yōu)先級(jí)高于當(dāng)前客戶端的clientTimeout -->
        <!-- 通過(guò)設(shè)置MethodSpecial.methodName指定方法名,通過(guò)設(shè)置MethodSpecial.clientTimeout指定當(dāng)前方法的超時(shí)時(shí)間 -->
        <property name="methodSpecials">
            <list>
                <bean class="com.taobao.hsf.model.metadata.MethodSpecial">
                    <property name="methodName" value="sum" />
                    <property name="clientTimeout" value="2000" />
                </bean>
            </list>
        </property>
    
        <!-- [可選] 設(shè)置同步等待ConfigServer推送地址的時(shí)間(單位:毫秒)-->
        <!-- 從而避免因地址還未推送到就發(fā)起服務(wù)調(diào)用造成的HSFAddressNotFoundException -->
        <!-- 一般建議設(shè)置為5000毫秒,即可滿足推送等待時(shí)間 -->
        <property name="maxWaitTimeForCsAddress"  value="5000"/>
    
        <!-- [可選] 設(shè)置需要異步調(diào)用的方法列表。List中的每一個(gè)字符串的格式為:-->
        <!-- name:方法名 -->
        <!-- type:異步調(diào)用類型 -->
        <!-- listener:監(jiān)聽(tīng)器 -->
        <!-- 其中,listener只對(duì)callback類型的異步調(diào)用生效-->
        <!-- type的類型有: -->
        <!-- future: 通過(guò)Future的方式去獲取請(qǐng)求執(zhí)行的結(jié)果 -->
        <!-- callback: 當(dāng)遠(yuǎn)程服務(wù)的調(diào)用完成后,HSF會(huì)使用響應(yīng)結(jié)果回調(diào)此處配置的listener,該listener需要實(shí)現(xiàn)HSFResponseCallback接口 -->
        <property name="asyncallMethods">
            <list>
                <value>name:sayHello;type:callback;listener:com.taobao.hsf.test.service.HelloWorldServiceCallbackHandler</value>
            </list>
        </property>
    
        <!-- [可選] 設(shè)置服務(wù)的代理模式,一般不用配置。如果要攔截這個(gè)consumer bean,需要配置成javassist -->
        <property name="proxyStyle" value="jdk" />
    </bean>