消費者訂閱服務__服務開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
消費者的訂閱從代碼編寫的角度分為兩個部分:首先 Spring 的配置文件使用標簽<hsf:consumer/>
定義好一個 Bean;然後在使用的時候從 Spring 的 context 中將 Bean 取出來即可。Demo 工程的 detail 為消費者的示例,示例代碼說明如下。
消費者配置
與生產者一樣消費者的配置文件分為 Maven 依賴配置與 Spring 的配置,且 Maven 的依賴與生產者依賴一樣,詳情請參考文檔生產者實現服務的服務配置小節。
除了必要的 Spring 所定義的配置之外,還需要在 Spring 的配置文件中增加消費者的定義,HSF 框架將根據該配置文件去服務中心訂閱所需的服務,配置文件 /resource/hsf-consumer-beans.xml 內容與釋義如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xmlns:hsf="https://www.taobao.com/hsf"
xmlns="https://www.springframework.org/schema/beans"
xsi:schemaLocation="https://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans-2.5.xsd
https://www.taobao.com/hsf
https://www.taobao.com/hsf/hsf.xsd" default-autowire="byName">
<!-- 消費一個服務示例 -->
<hsf:consumer
<!-- Bean ID,在代碼中可根據此ID進行注入並使用 -->
id=“item"
<!-- 服務名,與服務提供者的相應配置對應,HSF 將根據 interface + version + group 查詢並訂閱所需服務 -->
interface="com.alibaba.edas.carshop.itemcenter.ItemService"
<!-- 版本號,與服務提供者的相應配置對應,HSF 將根據 interface + version + group 查詢並訂閱所需服務 -->
version="1.0.0"
<!-- 分組名,與服務提供者的相應配置對應,HSF 將根據 interface + version + group 查詢並訂閱所需服務 -->
group="testHSFGroup">
</hsf:consumer>
</beans>
消費者使用服務
Demo 中的示例代碼如下:
public class StartListener implements ServletContextListener{
@Override
public void contextInitialized( ServletContextEvent sce ) {
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext( sce.getServletContext() );
// 根據 Spring 配置中的Bean ID “item” 獲取訂閱到的服務
final ItemService itemService = ( ItemService ) ctx.getBean( "item" );
……
// 調用服務 ItemService 的 getItemById 方法
System.out.println( itemService.getItemById( 1111 ) );
// 調用服務 ItemService 的 getItemByName 方法
System.out.println( itemService.getItemByName( "myname is le" ) );
……
}
}
消費者配置屬性清單
除了示例代碼中體現的屬性(interface,group,version)之外,還有下表的屬性配置以供選擇:
屬性 | 描述 |
---|---|
interface | interface 必須配置 [String],為需要調用的服務的接口 |
version | version 為可選配置 [String],含義為需要調用的服務的版本,默認為1.0.0 |
group | group 為可選配置 [String],含義為需要調用的服務所在的組,以便按組別來管理服務的配置,默認為 HSF,建議配置 |
methodSpecials | methodSpecials 為可選配置,含義為為方法單獨配置超時(單位 ms),這樣接口中的方法可以采用不同的超時時間,該配置優先級高於服務端的超時配置 |
target | 主要用於單元測試環境和 hsf.runmode=0 的開發環境中,在運行環境下,此屬性將無效,而是采用配置中心推送回來的目標服務地址信息 |
connectionNum | connectionNum 為可選配置,含義為支持設置連接到 server 連接數,默認為1,在小數據傳輸,要求低延遲的情況下設置多一些,會提升 TPS |
clientTimeout | 客戶端統一設置接口中所有方法的超時時間(單位 ms),超時設置優先級由高到低是:客戶端 MethodSpecial,客戶端接口級別,服務端 MethodSpecial,服務端接口級別 |
asyncallMethods | asyncallMethods 為可選配置 [List],含義為調用此服務時需要采用異步調用的方法名列表以及異步調用的方式。默認為空集合,即所有方法都采用同步調用 |
maxWaitTimeForCsAddress | 配置該參數,目的是當服務進行訂閱時,會在該參數指定時間內,阻塞線程等待地址推送,避免調用該服務時因為地址為空而出現地址找不到的情況。若超過該參數指定時間,地址還是沒有推送,線程將不再等待,繼續初始化後續內容。 |
標簽配置示例:
<hsf:consumer id="service" interface="com.taobao.edas.service.SimpleService"
version="1.1.0" group="test1" clientTimeout="3000"
target="10.1.6.57:12200?_TIMEOUT=1000" maxWaitTimeForCsAddress="5000">
<hsf:methodSpecials>
<hsf:methodSpecial name="sum" timeout="2000" ></hsf:methodSpecial>
</hsf:methodSpecials>
</hsf:consumer>
開發環境消費服務
完成代碼和配置的開發任務之後,在 Eclipse 和 IDEA 中,可直接以 Ali-Tomcat 運行該服務(具體請參照文檔 IDE 運行時啟動配置。運行成功後,請參考開發環境搭建文檔,在搭建好的 ConfigCenter 中查詢到所需要消費的服務。
最後更新:2016-11-29 17:54:38
上一篇:
生產者實現服務__服務開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
下一篇:
HSF 特性使用__服務開發_開發者指南_企業級分布式應用服務 EDAS-阿裏雲
彈性Web托管安裝joomla,提示MB Language已被設置為默認。__產品相關問題_使用問題_彈性 Web 托管-阿裏雲
HBase 開發手冊__開發人員指南_E-MapReduce-阿裏雲
設置短信簽名__使用手冊_短信服務-阿裏雲
域名狀態信息__數據類型_API文檔_域名-阿裏雲
生成證書__證書管理_用戶指南_負載均衡-阿裏雲
阿裏雲等4家企業違反《網絡安全法》被責令整改
Java: Spymemcache__客戶端連接實例_快速入門_雲數據庫 Memcache 版-阿裏雲
阿裏雲雲服務器 ECS典型應用場景
如何訪問視頻培訓課程__視頻培訓課程_上雲培訓-阿裏雲
認證所需具備的知識__彈性計算認證(ACP級)_如何獲得專業技術認證?_專業技術認證-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲