如何快速搭建微服務開發測試環境


如何快速搭建微服務開發測試環境

一、背景

作為后端開發一名,在某天下午接到緊急任務,需要根據客戶需求快速搭建一套微服務架構的開發測試環境,以供客戶聯調。但是我們是小公司資源有限,在個人電腦上部署又很難對外提供服務。

經過一番查找,市場上符合開箱即用條件的廠商不多,有一些還是需要公有雲或私有雲部署,能提供開箱即用的SaaS化服務的就更少了。

比如:華為雲提供了軟件開發平台DevCloud,騰訊雲收購CODING后也推出了自己的研發管理平台,但是要使用這些大廠的服務,就要為他們的其他生態工具買單,在前期投入有限的情況下,只能放棄。

二、CODING

我們先來看一下CODING,功能很完善,從文檔管理、項目協同到部署測試,但是部署資源卻需要自己准備,官方只提供有效期為6個小時到示例集群。

三、華為雲

華為雲提供的軟件開發平台DevCloud同樣也有類似的功能,不過這類雲服務運營商,通常只能將應用部署在自家雲服務器上。

四、StarOS

最后在朋友的推薦下,發現有一個名叫StarOS的一站式雲原生在線開發平台,正在進行公開試用,各項服務暫時免費,提供免運維的容器集群,開箱即用的研發設施,非常符合我的需求。

StarOS主要分為:應用工廠、應用商店、雲端編碼三大板塊。

1. 應用工廠

應用工廠顧名思義就是應用生產、發布的地方。StarOS最大的特色就是使用了組件化、可視化、可拖拉拽的應用編排模式,使得整個架構一目了然,非常清晰。

2. 應用商店

在應用商店里是平台內置的應用,可供用戶快速發布自己想要的應用。

3. 雲端編碼

雲端編碼也就是在線IDE,可以在線編輯代碼組件所引用的代碼並推送。

五、搭建微服務架構圖

為了方便其他人員維護,特次記錄一下過程。

首先要做的准備工作:

  1. 確保在代碼中使用環境變量來讀取被調用服務地址,並上傳至GitHub。
  2. 准備好nacos的docker鏡像(nacos/nacos-server:latest)。
  3. 准備好mysql8的docker鏡像(mysql:8)。
  4. 准備好mysql數據的初始化腳本,在mysql數據庫發布后執行(https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql)。

1. 搭建mysql

首先新建一個mysql8的項目,使用鏡像組件發布一個mysql應用,發布成功后使用nacos的sql腳本初始化數據庫。

鏡像組件的使用比較簡單,只需架構圖中拖入一個鏡像組件,並在鏡像地址欄中填寫mysql8的docker鏡像地址就好了。

如下圖。

然后配置mysql8組件的參數,暴露網絡服務端口號3306。

設置環境變量MYSQL_ROOT_PASSWORD為組件參數PASSWORD,組件參數是組件對外提供的可配置選項,參數的值將由用戶在發布組件時錄入,也可以通過組件間連線由其他組件的輸出參數傳入。

再設置mysql的存儲路徑用於數據持久化。

組件設置完成后保存架構圖,點擊發布按鈕就可以發布mysql應用了。

在應用發布界面,mysql的訪問地址和3306端口都會隨機生成,當然也可以自行定義。

填寫好參數PASSWORD的值和mysql數據持久化的數據卷就可以發布了。

發布成功后,就可以通過mysql的訪問域名和端口進行連接了。

可以用navicat連接數據庫,然后用nacos的sql腳本初始化mysql數據庫。

為了讓mysql數據庫在其他項目中被使用,可在發布-運維監控界面點擊組件的更多設置,打開允許項目外調用的開關。

數據庫准備好后,就可以搭建nacos了。

2. 搭建nacos

數據庫搭建好后采用同樣的方法,我們新建一個Spring Cloud項目,采取鏡像組件搭建nacos應用,在配置組件時,暴露的端口號和環境變量設置可參考官方docker部署文件(https://github.com/nacos-group/nacos-docker/blob/master/example/standalone-mysql-8.yaml)。

搭建完nacos后,使用外部組件引入上一步搭建的mysql8數據庫。

外部服務組件是指通過網絡調用的外部服務所形成的組件。其可以引用其他項目中的組件,也可以使用IP或域名,引用系統外的組件。

組件設置完成后,使用連線將這兩個組件連接起來。

注冊配置中心nacos就搭建完成了。

3. 搭建spring boot admin

接下來使用代碼組件搭建服務監控spring boot admin,代碼組件是指用git等源碼服務器地址進行編譯構建的組件。

在架構圖中拖入一個代碼組件,並綁定GitHub賬號,綁定完成后代碼組件就可以拉取到該賬號在GitHub到代碼倉庫了。

我的代碼使用的是spring boot,所以在技術棧選項里選擇SpringBoot@JDK8就好了。

然后配置組件的網絡服務端口,通過環境變量NACOS_HOST引入nacos服務地址。

組件設置完成后,使用連線將組件admin和組件nacos連接起來。

4. 搭建服務producer

參照以上步驟,使用代碼組件搭建服務producer。

根據實際代碼配置組件的網絡服務端口,通過環境變量NACOS_HOST引入nacos服務地址。

組件設置完成后,使用連線將組件producer和組件nacos連接起來。

5. 搭建服務cosumers

參照以上步驟,使用代碼組件搭建服務cosumers。

根據實際代碼配置組件的網絡服務端口,通過環境變量NACOS_HOST引入nacos服務地址。

組件設置完成后,使用連線將組件cosumers和組件nacos連接起來。

6. 搭建服務網關gateway

參照以上步驟,使用代碼組件搭建服務網關gateway。

根據實際代碼配置組件的網絡服務端口,通過環境變量NACOS_HOST引入nacos服務地址。

組件設置完成后,使用連線將組件gateway和組件nacos連接起來。

到這一步,一個spring cloud微服務架構的基礎框架就搭建完成了。

架構圖搭建完畢后,就可以發布應用看看效果了。

7. 發布

在發布界面,系統會自動生成各個服務的隨機域名和端口,當然也可以自定義域名和端口,要注意的是自定義域名和端口時不能重復,否則發布會失敗。

發布成功后可通過相應的域名來訪問服務。

按照以上步驟,就可以在StarOS上快速搭建一個微服務開發測試環境,真的是一鍵達成,非常方便。

后續我會繼續完善這個微服務架構,預計后面會加入鏈路追蹤、消息隊列等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM