全部产品
Search
文档中心

Enterprise Distributed Application Service:Manual API

更新时间:Jun 27, 2025

Dalam operasi API aplikasi HSF, operasi utama mencakup pembuatan bean penyedia dan bean konsumen.

Informasi latar belakang

Empat kelas operasi disediakan berdasarkan kasus penggunaan:

  • com.taobao.hsf.app.api.util.HSFApiProviderBean: Membuat bean penyedia menggunakan metode pemrograman API.

  • com.taobao.hsf.app.api.util.HSFApiConsumerBean: Membuat bean konsumen menggunakan metode pemrograman API.

  • com.taobao.hsf.app.spring.util.HSFSpringProviderBean: Membuat bean penyedia menggunakan metode konfigurasi Spring.

  • com.taobao.hsf.app.spring.util.HSFSpringConsumerBean: Membuat bean konsumen menggunakan metode konfigurasi Spring.

Properti konfigurasi HSFSpringXxxBean sesuai dengan metode setter dari HSFApiXxxBean. Berikut ini menjelaskan empat kelas operasi API dari aspek bean penyedia dan bean konsumen.

Informasi dependensi

Tambahkan dependensi berikut ke file pom.xml:

<dependency>
     <groupId>com.alibaba.edas</groupId>
     <artifactId>edas-sdk</artifactId>
     <version>{version}</version>
</dependency>

ProviderBean

  • Metode Pemrograman API - HSFApiProviderBean

    Anda dapat mempublikasikan layanan HSF dengan mengonfigurasi dan menginisialisasi com.taobao.hsf.app.api.util.HSFApiProviderBean.

    Konfigurasi dan inisialisasi com.taobao.hsf.app.api.util.HSFApiProviderBean hanya diimplementasikan sekali untuk layanan yang sama. Disarankan untuk menyimpan objek HSFApiProviderBean karena kompleksitasnya.

    • Contoh Kode

      // Instansiasi dan konfigurasikan sebuah bean penyedia.
      HSFApiProviderBean hsfApiProviderBean = new HSFApiProviderBean();
      hsfApiProviderBean.setServiceInterface("com.taobao.hsf.test.HelloWorldService");
      hsfApiProviderBean.setTarget(target); // target menunjukkan objek implementasi dari operasi yang ditentukan oleh serviceInterface. hsfApiProviderBean.setServiceVersion("1.0.0");
      hsfApiProviderBean.setServiceGroup("HSF");
      
      // Inisialisasi bean penyedia untuk publikasi layanan. hsfApiProviderBean.init();
    • Tabel Properti yang Dapat Dikonfigurasi

      Selain properti yang ditentukan dalam contoh kode sebelumnya, HSFApiProviderBean mencakup banyak properti lain yang dapat dikonfigurasi. Anda dapat menggunakan metode setter yang sesuai untuk mengonfigurasi properti tersebut.

      Nama Properti

      Tipe

      Diperlukan

      Nilai Default

      Deskripsi

      serviceInterface

      String

      Ya

      Tidak ada

      Menentukan operasi yang digunakan untuk menyediakan layanan HSF. Konsumen berlangganan layanan menggunakan properti ini.

      target

      Object

      Ya

      Tidak ada

      Menentukan objek implementasi layanan dari operasi yang ditentukan oleh serviceInterface.

      serviceVersion

      String

      Tidak

      1.0.0

      Menentukan nomor versi layanan. Konsumen berlangganan layanan menggunakan properti ini.

      serviceGroup

      String

      Tidak

      HSF

      Menentukan grup layanan. Konsumen berlangganan layanan menggunakan properti ini.

      serviceDesc

      String

      Tidak

      Tidak ada

      Menentukan deskripsi layanan untuk kemudahan manajemen.

      clientTimeout

      int

      Tidak

      3000

      Menentukan periode waktu habis untuk respons. Unit: milidetik. Jika penyedia tidak memberikan respons dalam periode waktu habis, HSFTimeOutException akan dilempar.

      methodSpecials

      MethodSpecial[]

      Tidak

      Tidak ada

      Menentukan periode waktu habis untuk beberapa metode dalam layanan. Tentukan parameter MethodSpecial.methodName sebagai nama metode dan tentukan parameter MethodSpecial.clientTimout sebagai periode waktu habis untuk metode saat ini. Properti ini memiliki prioritas lebih tinggi daripada clientTimeout untuk penyedia saat ini.

      preferSerializeType

      String

      Tidak

      hessian2

      Menentukan metode serialisasi untuk parameter permintaan layanan dan hasil respons layanan untuk HSF2. Nilai valid: java, hessian, hessian2, json, dan kryo.

      corePoolSize

      String yang nilainya adalah integer

      Tidak

      0

      Mengonfigurasi thread pool terpisah untuk layanan dan menentukan jumlah minimum thread aktif. Secara default, thread pool publik penyedia HSF digunakan jika properti ini tidak ditentukan.

      maxPoolSize

      String yang nilainya adalah integer

      Tidak

      0

      Mengonfigurasi thread pool terpisah untuk layanan dan menentukan jumlah maksimum thread aktif. Secara default, thread pool publik penyedia HSF digunakan jika properti ini tidak ditentukan.

  • Metode Konfigurasi Spring - HSFSpringProviderBean

    Anda dapat mempublikasikan layanan HSF dengan mengonfigurasi bean dari kelas com.taobao.hsf.app.spring.util.HSFSpringProviderBean dalam profil Spring.

    Contoh Kode

    <bean id="helloWorldService" class="com.taobao.hsf.test.HelloWorldService" />
    
    <bean class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean" init-method="init">
        <! -- [Diperlukan] Tentukan operasi yang digunakan untuk menyediakan layanan HSF secara eksternal. -->
        <property name="serviceInterface" value="com.taobao.hsf.test.HelloWorldService" />
    
        <! -- [Diperlukan] Tentukan objek implementasi layanan dari operasi yang ditentukan oleh serviceInterface. Secara spesifik, objek tersebut adalah ID bean Spring dari layanan HSF yang akan dipublikasikan. -->
        <property name="target" ref="helloWorldService" />
    
        <! -- [Opsional] Tentukan nomor versi layanan. Nilai default adalah 1.0.0. -->
        <property name="serviceVersion" value="1.0.0" />
    
        <! -- [Opsional] Tentukan grup tempat layanan berada. Nilai default adalah HSF. -->
        <property name="serviceGroup" value="HSF" />
    
        <! -- [Opsional] Tentukan deskripsi layanan untuk kemudahan manajemen. Nilai default adalah null. -->
        <property name="serviceDesc" value="HelloWorldService diberikan oleh HSF" />
    
        <! -- [Opsional] Tentukan periode waktu habis untuk respons dalam milidetik. Jika penyedia tidak memberikan respons dalam periode yang ditentukan, HSFTimeOutException akan dilempar. -->
        <! -- Nilai default adalah 3000 ms. -->
        <property name="clientTimeout" value="3000"/>
    
        <! -- [Opsional] Tentukan periode waktu habis untuk beberapa metode dalam layanan. Properti ini memiliki prioritas lebih tinggi daripada clientTimeout. -->
        <! -- Tentukan parameter MethodSpecial.methodName sebagai nama metode dan tentukan parameter MethodSpecial.clientTimout sebagai periode waktu habis untuk metode saat ini. -->
        <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>
    
        <! -- [Opsional] Tentukan metode serialisasi untuk parameter permintaan dan hasil respons layanan. Nilai valid: java, hessian, hessian2, json, dan kryo. -->
        <! -- Nilai default adalah hessian2. -->
        <property name="preferSerializeType" value="hessian2"/>
    
        <! -- [Opsional] Mengonfigurasi thread pool terpisah untuk layanan dan menentukan jumlah minimum thread aktif. Secara default, thread pool publik penyedia HSF digunakan jika properti ini tidak ditentukan. -->
        <property name="corePoolSize" value="10"/>
    
        <! -- [Opsional] Mengonfigurasi thread pool terpisah untuk layanan dan menentukan jumlah maksimum thread aktif. Secara default, thread pool publik penyedia HSF digunakan jika properti ini tidak ditentukan. -->
        <property name="maxPoolSize" value="60"/>
    </bean>

ConsumerBean

  • Metode Pemrograman API - HSFApiConsumerBean

    Anda dapat berlangganan layanan HSF dengan mengonfigurasi dan menginisialisasi com.taobao.hsf.app.api.util.HSFApiConsumerBean.

    Konfigurasi dan inisialisasi com.taobao.hsf.app.api.util.HSFApiConsumerBean hanya diimplementasikan sekali untuk layanan yang sama.

    Disarankan untuk menyimpan objek HSFApiConsumerBean dan agen HSF yang diambil karena ukuran objeknya besar.

    Catatan

    Dalam HSF, HSFApiConsumerBean menyimpan konfigurasi layanan. Jika layanan yang dilanggan dikonfigurasi beberapa kali, hanya konfigurasi pertama yang berlaku.

    • Contoh Kode

      // Instansiasi dan konfigurasikan sebuah bean konsumen.
      HSFApiConsumerBean hsfApiConsumerBean = new HSFApiConsumerBean();
      hsfApiConsumerBean.setInterfaceName("com.taobao.hsf.test.HelloWorldService");
      hsfApiConsumerBean.setVersion("1.0.0");
      hsfApiConsumerBean.setGroup("HSF");
      
      // Inisialisasi bean konsumen untuk langganan layanan.
      // true menunjukkan menunggu dorongan alamat (periode waktu habis: 3000 ms). Nilai default adalah false dan menunjukkan panggilan sinkron.
      hsfApiConsumerBean.init(true);
      
      // Ambil agen HSF. HelloWorldService helloWorldService = (HelloWorldService) hsfApiConsumerBean.getObject();
      
      // Lakukan panggilan HSF. String helloStr = helloWorldService.sayHello("Li Lei");
    • Tabel Properti yang Dapat Dikonfigurasi

      Selain properti yang ditentukan dalam contoh kode sebelumnya, HSFApiConsumerBean mencakup banyak properti lain yang dapat dikonfigurasi. Anda dapat menggunakan metode setter yang sesuai untuk mengonfigurasi properti tersebut.

      Nama Properti

      Tipe

      Diperlukan

      Nilai Default

      Deskripsi

      interfaceName

      String

      Ya

      Tidak ada

      Menentukan nama antarmuka untuk langganan layanan. Konsumen berlangganan layanan menggunakan properti ini.

      version

      String

      Ya

      Tidak ada

      Menentukan nomor versi layanan yang dilanggan. Konsumen berlangganan layanan menggunakan properti ini.

      group

      String

      Ya

      Tidak ada

      Menentukan grup layanan yang dilanggan. Konsumen berlangganan layanan menggunakan properti ini.

      clientTimeout

      int

      Tidak

      Tidak ada

      Menentukan periode waktu habis untuk permintaan. Unit: milidetik. Jika konsumen tidak menerima respons dari penyedia, HSFTimeOutException akan dilempar. clientTimeout yang ditentukan untuk konsumen memiliki prioritas lebih tinggi daripada clientTimeout yang ditentukan untuk penyedia. Jika clientTimeout tidak ditentukan untuk konsumen, clientTimeout yang ditentukan untuk penyedia digunakan selama panggilan layanan jarak jauh.

      methodSpecials

      MethodSpecial[]

      Tidak

      Tidak ada

      Menentukan periode waktu habis untuk beberapa metode dalam layanan. Tentukan parameter MethodSpecial.methodName sebagai nama metode dan tentukan parameter MethodSpecial.clientTimout sebagai periode waktu habis untuk metode tersebut. Properti ini memiliki prioritas lebih tinggi daripada clientTimeout untuk konsumen saat ini.

      maxWaitTimeForCsAddress

      int

      Tidak

      Tidak ada

      Menentukan waktu untuk tunggu sinkron Config Server mendorong alamat. Unit: milidetik. Properti ini mencegah HSFAddressNotFoundException terjadi ketika layanan dipanggil sebelum alamat didorong. Kami menyarankan Anda menyetel properti ini ke 5000 ms untuk memenuhi persyaratan waktu tunggu.

      asyncallMethods

      List

      Tidak

      Tidak ada

      Menentukan daftar metode yang akan dipanggil secara asinkron. Setiap string dalam daftar berada dalam format berikut:

      • name: nama metode.

      • type: tipe panggilan asinkron.

      • listener: pendengar.

      Dalam daftar ini, bidang listener berlaku hanya untuk panggilan asinkron tipe callback. Nilai valid dari bidang type:

      • future: Metode Future digunakan untuk mengambil hasil eksekusi permintaan.

      • callback: Setelah panggilan layanan jarak jauh selesai, HSF menggunakan respons untuk memanggil balik pendengar yang dikonfigurasi. Pendengar ini harus mengimplementasikan HSFResponseCallback.

      proxyStyle

      String

      Tidak

      jdk

      Menentukan mode agen layanan. Secara umum, properti ini tidak perlu dikonfigurasi. Untuk memblokir bean konsumen, atur properti ini ke javassist.

  • Metode Konfigurasi Spring - HSFSpringConsumerBean

    Untuk berlangganan layanan, Anda dapat mengonfigurasi bean dari kelas com.taobao.hsf.app.api.util.HSFSpringConsumerBean dalam profil Spring.

    Contoh Kode

    <bean id="helloWorldService" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean">
        <! -- [Diperlukan] Tentukan nama operasi untuk langganan layanan. -->
        <property name="interfaceName" value="com.taobao.hsf.test.HelloWorldService" />
    
        <! -- [Diperlukan] Tentukan nomor versi layanan yang dilanggan. -->
        <property name="version" value="1.0.0" />
    
        <! -- [Diperlukan] Tentukan grup layanan yang dilanggan. -->
        <property name="group" value="HSF" />
    
        <! -- [Opsional] Tentukan periode waktu habis untuk permintaan dalam milidetik. Jika konsumen tidak menerima respons dari penyedia, HSFTimeOutException akan dilempar. --> 
        <! -- clientTimeout yang ditentukan untuk konsumen memiliki prioritas lebih tinggi daripada clientTimeout yang ditentukan untuk penyedia. Jika clientTimeout tidak ditentukan untuk konsumen, clientTimeout yang ditentukan untuk penyedia digunakan selama panggilan layanan jarak jauh.-->
        <property name="clientTimeout" value="3000" />
    
        <! -- [Opsional] Tentukan periode waktu habis untuk beberapa metode dalam layanan. Properti ini memiliki prioritas lebih tinggi daripada clientTimeout untuk konsumen. -->
        <! -- Tentukan parameter MethodSpecial.methodName sebagai nama metode dan tentukan parameter MethodSpecial.clientTimout sebagai periode waktu habis untuk metode saat ini. -->
        <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>
    
        <! -- [Opsional] Tentukan waktu (unit: milidetik) untuk tunggu sinkron Config Server mendorong alamat. -->
        <! -- Ini mencegah HSFAddressNotFoundException terjadi ketika layanan dipanggil sebelum alamat didorong. -->
        <! -- Kami menyarankan Anda menyetel properti ini ke 5000 ms untuk memenuhi persyaratan waktu tunggu. -->
        <property name="maxWaitTimeForCsAddress"  value="5000"/>
    
        <! -- [Opsional] Tentukan daftar metode yang akan dipanggil secara asinkron. Setiap string dalam daftar berada dalam format berikut: -->
        <! -- name: nama metode. -->
        <! -- type: tipe panggilan asinkron. -->
        <! -- listener: pendengar. -->
        <! -- Bidang listener berlaku hanya untuk panggilan asinkron tipe callback.-->
        <! -- Nilai valid dari bidang type: -->
        <! -- future: Metode Future digunakan untuk mengambil hasil eksekusi permintaan. -->
        <! -- callback: HSF menggunakan respons untuk memanggil balik pendengar yang dikonfigurasi. Pendengar harus mengimplementasikan HSFResponseCallback. -->
        <property name="asyncallMethods">
            <list>
                <value>name:sayHello;type:callback;listener:com.taobao.hsf.test.service.HelloWorldServiceCallbackHandler</value>
            </list>
        </property>
    
        <! -- [Opsional] Tentukan mode proxy layanan. Secara umum, properti ini tidak perlu dikonfigurasi. Untuk memblokir bean konsumen, atur properti ini ke javassist. -->
        <property name="proxyStyle" value="jdk" />
    </bean>