如下組件須要提早安裝好,本地跑的話建議用docker跑。css
一、redismysql
用於緩存數據nginx
二、zookeepergit
用於在分佈式系統中同步數據github
三、mysqlweb
用於存儲網類的配置數據,好比分流規則,RPC協議轉換等數據。redis
如下組件是基於應用層面的應用軟件,更好的處理業務中的問題。sql
一、緩存docker
引入了jetcache作爲項目中緩存組件,支持多級緩存數據庫
二、限流
引入了sentinel處理限流、熔斷
後臺系統也能夠理解成一個配置系統,針對不一樣的網關插件作不一樣的數據配置。實戰版本中有預發環境以及生產環境,但本地跑起來能夠只選用預發環境就能夠。
後臺系統的代碼70%來自於開源項目[soul],咱們在此基礎上作了一些擴展性的功能,好比:預發環境下生產環境;RPC協議插件配置;分佈系統數據同步等。
一、建立數據庫:diablo_pre
二、執行diabol-admin項目中scripts目錄下的diablo_pre.sql,建立表結果以及初始化數據
三、修改application.yml,按實際狀況修改對應的mysql,redis,zookeeper等配置
四、指定預發環境標識
啓動參數中配置diablo.admin.apollo.cluster=pre;此處的key名稱後續會更改。
五、啓動項目
啓動成功後,瀏覽器輸入:http://127.0.0.1:8887 便可看到後臺登陸頁面
六、配置分流插件
配置流量選擇器,實戰中咱們是以域名作爲維護,有點相似nginx中監聽的域名;分流插件第一步是在預發環境中配置,測試經過後同步到線上,同步後若是有問題提供了回滾功能。
配置流量選擇器後面的分流規則,有點相似nginx中的location配置;具體的分流規則能夠將線上的請求跑由到後端的作任意服務上。
上圖中有一欄是路由主機選擇,好比將/order開頭的請求路由到order-api服務,咱們能夠經過接口形式將order-api後端服務器列表數據同步過來。
因爲咱們主要是與分流插件爲側,就須要啓動一個後端的用於測試的api項目,好比提供這樣的接口:http://127.0.0.1:8898/hi?name=123456
diablo-web啓動比較簡單,與通常的web項目沒有大的差別。
一、配置application.yum;
二、啓動網關係統;
三、測試轉發能力
輸入http://127.0.0.1:8899/hi?name=123,如能看到以下輸入就說明分流插件運轉正常。
以上內容基於業務網關的一個小模塊,詳細請看這裏:diablo在這裏