日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HSF 开发

發布時間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HSF 开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

HSF 簡介 HSF(High Speed Service Framework),高速服務框架,是阿里-主要采用的服務框架,其目的是 作為橋梁聯通不同的業務系統,解耦系統之間的實現依賴。

1: RPC 遠程過程調用(Remote Procedure Call)是一種通過網絡從遠程計算機程序上請求服務的協 議,它的特點在于不需要了解底層網絡技術。在 OSI 網絡通信模型中,RPC 跨越了傳輸層和 應用層。RPC 使得開發分布式應用更加容易

2: ConfigServer(地址注冊中心) HSF 是一個 RPC 框架,服務端需要將地址發送到注冊中心讓客戶端能夠進行服務發現,客 戶端需要通過注冊中心訂閱一個服務的地址。服務與地址的對應關系是多對多的關系,一個 服務可以由多個地址提供,一? ? ? 個地址可以提供多種服務。當一個服務有了新地址(機器)或 者減少了地址(機器)時,注冊中心會通知這個服務的訂閱方將地址增加或者減少,這個注 冊中心就是 Configserver,它負責存儲地址信息以及地址變更的推送。

3: Diamond(配置中心) HSF 持久化的配置中心是 Diamond。HSF 提供軟負載服務,其中的路由規則是在 Diamond 上 進行配置,然后推送到客戶端進行解析,第二章節中開發環境搭建已經包含 Diamond。

4: Pandora Pandora 是 HSF 生存的容器,由 pandora 來管理整個 HSF 的生命周期和二方包的隔離

HSF 標簽清單

Provider 配置:

屬性描述
interfaceinterface 必須配置[String],為服務對外提供的接口
versionversion 為可選配置[String],含義為服務的版本,默認為 1.0.0
groupserviceGroup 為可選配置[String],含義為服務所屬的組別,以便按 組別來管理服務的配置,默認為 HSF
clientTimeout該配置對接口中的所有方法生效,但是如果客戶端通過 MethodSpecial 屬性對某方法配置了超時時間,則該方法的超時時間以客戶端配置為準,其他方法不受影響,還是以服務端配置為 準
serializeTypeserializeType 為可選配置[String(hessian|java)],含義為序列化類 型,默認為 hessian
corePoolSize單獨針對這個服務設置核心線程池,是從公用線程池這個大蛋糕 里切一塊下來
maxPoolSize單獨針對這個服務設置線程池,是從公用線程池這個大蛋糕里切 一塊下來
enableTXC開啟分布式事務 Txc
refref 必須配置[ref],為需要發布為 HSF 服務的 spring bean id
methodSpecialsmethodSpecials 為可選配置,用于為方法單獨配置超時(單位 ms), 這樣接口中的方法可以采用不同的超時時間,該配置優先級高于 上面的 clientTimeout 的超時配置,低于客戶端的 methodSpecials 配置

?

?

?

?

?

?

?

?

?

?

?

標簽配置示例:?

?

Consumer 配置 :

屬性描述
interfaceinterface 必須配置[String],為需要調用的服務的接口。
versionversion 為可選配置[String],含義為需要調用的服務的版本,默認為 1.0.0
groupgroup 為可選配置[String],含義為需要調用的服務所在 的組,默認為 HSF,建議配置。
methodSpecialsmethodSpecials 為可選配置,含義為為方法單獨配置超時 (單位 ms),這樣接口中的方法可以采用不同的超時時間, 該配置優先級高于服務端的超時配置。
target主要用于單元測試環境和 hsf.runmode=0 的開發環境中, 在運行環境下,此屬性將無效,而是采用配置中心推送回 來的目標服務地址信息。
connectionNumconnectionNum 為可選配置,含義為支持設置連接到 server 連接數,默認為 1,在小數據傳輸,要求低延遲的情況下設 置多一些,會提升 tps。
clientTimeout客戶端統一設置接口中所有方法的超時時間(單位 ms),超 時設置優先級由高到低是:客戶端 MethodSpecial,客戶端 接口級別,服務端 MethodSpecial,服務端接口級別。
asyncallMethods

asyncallMethods 為可選配置[List],含義為調用此服務時需 要采用異步調用的方法名列表以及異步調用的方式。

默認為空集合,即所有方法都采用同步調用。

maxWaitTimeForCsAddress配置這個,在服務訂閱的時候,會在指定的時間內,等待 地址推送過來,避免地址為過來后,調用該服務出現找不 到地址的情況,超過指定時間未等到地址,將繼續初始化 完成。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

標簽配置示例:?

?

HSF jvm 參數配置

-Dhsf.server.port

指定 HSF 的啟動服務綁定端口,默認為 12200

-Dhsf.serializer

指定 HSF 的序列化方式,默認值為 hessian

-DdefaultHsfClientTimeout

指定 HSF 的客戶端超時時間 ms,默認為 3000

-Dhsf.server.max.poolsize

指定 HSF 的服務端最大線程池大小,默認值為 600

-Dhsf.server.min.poolsize 指定 HSF 的服務端最小線程池大小。默認值為 50

?

HSF 基礎開發

參考下面的 demo 編寫示例,來快速的開發一個基礎版的 HSF 應用

1 創建 Web 項目

通過上面第一、二章節我們已經在開發工具中配置好對應的插件,并且搭建了本地服務注冊 配置中心,下面我們以一個 demo 展開介紹 Hsf 開發的相關細節。

以 eclipse 為例創建一個 maven web 項目。

請點擊 File -> New -> Project -> Maven Project -> maven-archetype-webapp ,在彈 出的界面輸入 groupId、artifactId ,然后連續點擊 Next,完成項目創建。項目目錄結構 如圖:

2 添加 Maven 依賴

在項目 pom.xml 中添加如下依賴:

3 編寫發布 HSF 的服務

創建需要發布的服務接口:com.alibaba.edas.SampleService

編寫實現類:com.alibaba.edas.impl.SampleServiceImpl

4 發布服務配置文件

請按照以下步驟配置發布者的服務配置文件。

  1. 在 web.xml 中配置 spring 的監聽器:

  

  2. 在 resources 目錄下面添加 spring 配置文件:application-config.xml

    

  <?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

<import resource="hsf-provider-beans.xml"/>
<!--<import resource="hsf-consumer-beans.xml"/>-->

  </beans>

  3. 在 resources 目錄下面添加發布者的配置文件:hsf-provider-beans.xml

  <?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:hsf="http://www.taobao.com/hsf"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.taobao.com/hsf
http://www.taobao.com/hsf/hsf.xsd" default-autowire="byName">

  <bean id="stationService" class="com.sgcc.echarge.stationserver.service.StationServiceHsfImpl"/>
   <hsf:provider version="1.0.0" group="grp_sgcc_xpcz_app" ref="stationService"
id="stationSP" interface="com.sgcc.echarge.proxy_hsfapi.station.iface.StationService"/>

  </beans>

  到此發布者就編寫好了。

4. 右鍵點擊創建的項目,點擊 Run As,選擇 Run configuration,在彈出頁面選擇 AliTomcat Webapp, 右鍵 new 新建,如下圖:

  

5. 填寫好相關配置,點擊 Run,啟動應用,此時通過第二章節建的配置中心可以看到發布 的服 務,如下圖:

?  

5 消費服務配置文件

1. 在配置文件?application-config.xml 添加消費者配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

<import resource="hsf-consumer-beans.xml"/>

</beans>
2. 在 resources 目錄下面添加消費者的配置文件 hsf-consumer-beans.xml 配置: <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:hsf="http://www.taobao.com/hsf"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.taobao.com/hsf
http://www.taobao.com/hsf/hsf.xsd" default-autowire="byName">

<hsf:consumer version="1.0.0" group="grp_sgcc_xpcz_app" clientTimeout="1000000"
id="helloServiceConsumer" interface="com.sgcc.echarge.proxy_hsfapi.station.iface.StationService"/>

</beans>
3. 已經完成了消費者的定義

6 Demo 下載地址
通過如下地址下載: http://edas-public.oss-cn-hangzhou.aliyuncs.com/install_package%2Fedas-app-demo%2Fedas-ap p-demo.zip
將下載下來的壓縮包解開后,可以看到 itemcenter-api,itemcenter 和 detail 三個 Maven 工程。其中 itemcenter-api 工程提供接口定義,detail 工程是消費者應用,Itemcenter 工程是 服務提供者應用。

轉載于:https://www.cnblogs.com/yaweizhang/p/11088552.html

總結

以上是生活随笔為你收集整理的HSF 开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。