親測 | 如何更高效的管理原生微服務應用
阿里雲分散式應用服務EDAS 最近釋出了支援原生Dubbo和Spring Cloud應用功能的新版本,此功能是以非侵入方式支援的,且幾乎不需要修改任何程式碼。在此我們體驗了一下如何在EDAS上部署原生Dubbo和Spring Cloud應用。
原生Dubbo應用
自從阿里重啟Dubbo維護以來,其熱度迅速躥升,Github上的星標數已經達到了2.2萬個之多,可謂中國開源軟體界的明星產品。但是作為自家商業化輸出的EDAS產品,卻一直以來只能支援閉源的HSF微服務框架,對使用者而言不能不說是一種遺憾。雖然以前也是可以支援Dubbo應用的,但卻是以一種所謂的Dubbo over HSF來變相實現的,並不是真正無侵入的原生應用。現在這個擔憂終於沒有了,EDAS官方正式開始了商業化支援Dubbo的程序。
閒話少絮,我們先來構建一個簡單的Dubbo應用,並將其部署到EDAS上面。根據這篇文件介紹的方法,我們來實現一個簡單的Echo應用。此應用的能力是客戶端通過HTTP介面獲得一個字串訊息,然後將此訊息傳送給服務端,服務端接收到這個訊息之後,再原封不動的回傳給客戶端,最終客戶端將此回聲資訊打印出來,程式結束。
本文並不是一篇教程類文章,因此不會詳細介紹該如何編寫這樣一個應用,只來關注一些重點內容。首先,除了依賴Dubbo庫之外,還需要依賴一個EDAS提供的擴充套件庫edas-dubbo-extension。該擴充套件庫就是EDAS支援原生Dubbo應用的關鍵所在。
圖1.edas-dubbo-extension依賴
除此之外,我們還需要將Dubbo配置檔案中的registry引數設定為輕量級配置中心的地址。
圖2.registry地址
經過了這樣的修改之後,我們的應用就可以原封不動的部署到EDAS上面了。
實際的部署過程與普通應用無異,應該是EDAS會自動判斷該應用是否為原生Dubbo進而區分對待,因此熟悉EDAS的使用者在這一點上不會碰到任何問題。部署完成以後在Provider和Consumer應用的服務列表裡面,分別可以看到如下內容,說明服務啟動正常。
圖3.釋出的服務
圖4.消費的服務
原生Spring Cloud應用
這篇文章 非常詳細的介紹了原生Spring Cloud應用如何與EDAS整合,在這裡就不再贅述了。同支持原生Dubbo使用的方式一樣,在構建適應EDAS環境的Spring Cloud應用時需要引入額外的ANS元件,這使得在本地輕量級配置中心環境下除錯通過的應用可以無需任何改動就直接部署到EDAS環境上,可謂非常方便。
商業化版本與開源版本的對比
作為商業化產品,其跟開源版本相比還是有不少的差異,且極大的提高了使用者的工作效率、降低了人力投入。
首先,EDAS版本的原生Dubbo和Spring Cloud應用支援共享的服務註冊與發現元件,比起部署開源版本所需的Zookeeper、Redis或Consul而言,節省了系統開銷與運維成本。
其次,開源版本的Dubbo並不天然支援配置管理功能,Spring Cloud有基於Git的配置管理能力,而這一點在EDAS上也是開箱即用的,且支援配置推送能力。
另外,同以往HSF應用一樣,原生Dubbo和Spring Cloud應用同樣支援監控和告警能力,也免去了部署相關開源元件的需要。
隨著版本的繼續迭代升級,相信EDAS對開源版本的相容會越來越好。