微服務路由表自動更新 @Arthur

       現在平臺涉及的微服務的路由信息都寫在網關服務的配置文件中了,這樣導致開發某個微服務時,不能隨便改服務名。因爲改了服務名,網關就找不到該服務了,所以必須在本地將網關服務和要調試的服務程序一同啓動,這樣可以在本地網關服務的配置文件中將新服務名加進去,很麻煩。

       今天我調試平臺管理系統中的區域監測數據模塊,就遇到了這個麻煩,所以將網關服務中增加路由信息自動更新的邏輯。

       1、網關服務啓動時,保留配置文件的路由信息的基礎上,同時從服務中心讀取上面註冊的全部服務。按照如下規則加入到路由表中。規則和以前的配置保持一致,形式如下:

        path=/government/**
        serviceId=government

        這個government就是從服務中心讀取的名稱。

        主要程序見網關係統裏的CustomRouteLocator.java

        2、因爲服務中心將應用名都是大寫,爲了寫url方便,我們在添加路由信息時,將服務名都改成了大寫。對應ContextPathConfig裏的applicationName得加上toLowerCase(結果發現了ContextPathConfig的問題,見https://my.oschina.net/u/3756527/blog/1594004)。

         3、有了這個功能,以後使用時,自己的微服務隨便起個名字,就可以通過網關找到了。

       比如我再調平臺管理系統,將sysadminX改成了sysadminX_Arthur,不用修改網關配置,直接可通過網關訪問該程序。

         4、爲了避開權限驗證,大家可以統一個特殊標記,讓名字裏帶上這個標記,就放開了驗證。

       

 

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章