成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Cloud Foundry Service Broker開發部署實例解析(上)

云計算
Cloud Foundry(CF)通過buildpack擴展運行不同語言應用的能力,通過service broker(SB)擴展支持應用所需的各種關系數據庫、中間件、緩存、云存儲、內存數據庫等各種服務的能力。這篇博文將從頭至尾介紹通用的SB開發和部署。

Cloud Foundry(CF)通過buildpack擴展運行不同語言應用的能力,通過service broker(SB)擴展支持應用所需的各種關系數據庫、中間件、緩存、云存儲、內存數據庫等各種服務的能力。這篇博文將從頭至尾介紹通用的SB開發和部署。

[[130782]]

什么是service broker

SB就是實現了CF規定的一組rest api的服務端程序,它作用于CF與服務的資源池中間,CF通過調用SB上這些規定的rest api對服務資源池進行管理,而SB實際執行這些資源池管理操作。比如,對于oracle而言,管理意味著管理服務計劃(即create/drop profile)、創建/綁定/解綁/刪除服務實例(即create tablespace、create user、drop user、drop tablespace)。下面給出SB需要實現rest api列表,理論上有了這張表,隨便用什么語言寫個web service的服務端就行了,這些接口中有幾個是博主為實現本文的開發和部署過程自行添加的。

METHODURL用途

Cloud Foundry service broker開發部署實例解析

開發

本文給出的SB使用java(spring)開發的,使用了hibernate,基本思路是下載源代碼,按照下面的描述修改必要的實現,然后打包就可以開始部署了。這一SB的基本思路是將已有的資源池的授權信息存儲到SB中,不自動化的做任何部署和管理工作,所以理論上,這個SB是用于任何服務的管理。

準備

首先下載源代碼,這代碼是個gradle工程,首先得準備好開發環境,不管用原生eclipse還是sts,都得先安裝gradle support,以STS為例,下載解壓后,打開集成開發環境,在dashborad-》IDE EXTENSIONS中,搜索gradle support并安裝。將源代碼解壓,在STS的package explorer中import gradle project,選擇到解壓的目錄,build model,然后點擊finish。

修改源代碼

 

  1. src/main/resources/ServiceDescription.json 

這個文件是json格式服務的描述信息,程序***運行時,會將此json作為創建新服務的輸入

  • name:服務的唯一標識
  • description:顯示在UI里的描述信息
  • bindable:true
  • tags:關鍵字
  • longDescription:顯示在UI里的詳細描述信息
  • imageUrl:顯示在GUI里的圖片地址
  • displayName:顯示在GUI里的服務名稱
  • providerDisplayName:顯示在GUI里的服務供應商名稱
  • documentationUrl:顯示在GUI里的服務文檔地址
  • supportUrl:顯示在GUI里的服務支持網站
  1. src/main/java/com/pivotal/cf/broker/config/AppConfig.java和RelationalCloudDataSourceConfig.java 

將這兩個文件中的mdsbrokerdb修改為下一步部署在CF上時綁定的MySQL服務實例名稱,比如samplebrokerdb

  1. src/main/java/com/pivotal/cf/broker/model/PlanMetadataRes.java 

將下面的屬性替換為管理的資源所需的授權信息,當然也要修改屬性對應的setter和getter

  1. @JsonProperty("kcxpaddr"
  2.  
  3. private String kcxpaddr; 
  4.  
  5. @JsonProperty("kcxpport"
  6.  
  7. private String kcxpport; 
  8.  
  9. @JsonProperty("rvipaddr"
  10.  
  11. private String rvipaddr; 
  12.  
  13. @JsonProperty("rvport"
  14.  
  15. private String rvport; 
  16.  
  17. @JsonProperty("username"
  18.  
  19. private String username; 
  20.  
  21. @JsonProperty("password"
  22.  
  23. private String password;1234567891011121314151617 
  • src/main/java/com/pivotal/cf/broker/model/ServiceInstance.java

將下面的屬性替換為管理的資源所需的授權信息,當然也要修改對應的構造函數

  1. @JsonSerialize 
  2.  
  3. @JsonProperty("kcxpaddr"
  4.  
  5. @Column(name="kcxpaddr"
  6.  
  7. private String kcxpaddr; 
  8.  
  9. @JsonSerialize 
  10.  
  11. @JsonProperty("kcxpport"
  12.  
  13. @Column(name="kcxpport"
  14.  
  15. private String kcxpport; 
  16.  
  17. @JsonSerialize 
  18.  
  19. @JsonProperty("rvipaddr"
  20.  
  21. @Column(name="rvipaddr"
  22.  
  23. private String rvipaddr; 
  24.  
  25. @JsonSerialize 
  26.  
  27. @JsonProperty("rvport"
  28.  
  29. @Column(name="rvport"
  30.  
  31. private String rvport; 
  32.  
  33. @JsonSerialize 
  34.  
  35. @JsonProperty("username"
  36.  
  37. @Column(name="username"
  38.  
  39. private String username; 
  40.  
  41. @JsonSerialize 
  42.  
  43. @JsonProperty("password"
  44.  
  45. @Column(name="password"
  46.  
  47. private String password;1234567891011121314151617181920212223242526272829 

 

  • src/main/java/com/pivotal/cf/broker/model/ServiceManagementImpl.java

createInstance()中,修改ServiceInstance instance = new ServiceInstance的參數,輸入正確的授權信息

removeServiceInstance()中,將下面代碼修改為正確的授權信息

  1. res.setKCXPAddr(instance.getKCXPAddr()); 
  2.  
  3. res.setKCXPPort(instance.getKCXPPort()); 
  4.  
  5. res.setRVIPAddr(instance.getRVIPAddr()); 
  6.  
  7. res.setRVPort(instance.getRVPort()); 
  8.  
  9. res.setUserName(instance.getUserName()); 
  10.  
  11. res.setPassword(instance.getPassword());123456 

createInstanceBinding(),將下面代碼修改為正確的授權信息

  1. credentials.put("KCXPAddr0", instance.getKCXPAddr()); 
  2.  
  3. credentials.put("KCXPPort0", instance.getKCXPPort()); 
  4.  
  5. credentials.put("RVIPAddr", instance.getRVIPAddr()); 
  6.  
  7. credentials.put("RVPort", instance.getRVPort()); 
  8.  
  9. credentials.put("UserName",instance.getUserName()); 
  10.  
  11. credentials.put("Password",instance.getPassword());123456 

編譯打包

在STS的package explorer中,右鍵單擊項目,run as-》gradle build,如果是初次運行,輸入下面的編譯打包gradle命令,run即可:

  1. clean 
  2.  
  3. build 
  4.  
  5. assemble123 

至此,我們就得到了程序包,下面就可以開始部署了。
 

責任編輯:Ophira 來源: 云計算實務博客
相關推薦

2015-03-30 15:15:00

CloudFoundrPaaS開源

2011-05-06 15:37:10

Service BroSQL Server

2011-04-22 10:13:42

Cloud FoundAzure

2015-04-14 11:10:22

PaaSCloudFoundrBuildpack

2013-04-26 17:38:52

大數據全球技術峰會

2015-06-09 10:36:13

Cloud FoundAzurePaaS

2018-08-22 18:16:47

2012-07-19 09:13:40

VMware云計算Cloud Found

2017-07-17 15:50:17

微服務Docker架構

2012-05-14 10:49:25

Cloud Found

2012-12-07 10:00:25

SpringOneCloud FoundVMware

2011-05-06 15:48:35

Service BroSQL Server

2013-10-23 10:21:57

OpenStack

2009-12-01 10:49:44

Visual Stud

2012-03-27 11:40:55

vmwareCloud Found

2014-03-07 09:26:46

PaaSCloud Found

2015-12-16 11:11:52

Cloud FoundSpring云計算

2015-04-24 09:33:11

Cloud Found組件分析PaaS

2011-11-15 16:48:58

Zend Studio

2011-05-06 15:00:52

Service BroSQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九热免费在线观看 | 韩日三级| 国际精品鲁一鲁一区二区小说 | 日韩成人在线播放 | 日韩中文字幕在线 | a级片播放| 美日韩免费视频 | 国产日韩欧美精品一区二区 | 天天色综 | 久久精品国产一区 | 亚洲成人免费在线观看 | 日韩精品一区二 | 国产a区 | 91av免费看| 99热国产免费| 91国产视频在线观看 | 久久精品电影 | 欧美视频二区 | 成人超碰在线 | 欧美日韩精品一区二区三区四区 | 伊人网在线播放 | 亚洲成人av| 中文字幕在线观看一区二区 | 日本免费一区二区三区 | 久久九九99 | 国产欧美日韩综合精品一区二区 | 日韩精品在线看 | 中文字幕日韩欧美 | 亚洲社区在线 | 久久精品小视频 | 岛国精品 | 一区二区三区视频 | 又黑又粗又长的欧美一区 | 99视频免费在线 | 午夜激情影院 | 久久一级免费视频 | 午夜精品福利视频 | 色爱区综合 | 日韩精品免费视频 | 国产精品18久久久久久白浆动漫 | 男女羞羞视频在线 |