91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET CORE微服務中的網關使用與配置是怎樣的

發布時間:2022-01-14 21:27:02 來源:億速云 閱讀:362 作者:柒染 欄目:大數據

這篇文章給大家介紹.NET CORE微服務中的網關使用與配置是怎樣的,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

簡介

  微服務的系統應用中,網關系統使用的是ocelot,ocelot目前已經比較成熟了

  ocelot就不做介紹了,等整體介紹完后再進行各類擴展介紹,ocelot源碼地址:https://github.com/ThreeMammals/Ocelot

  ocelot目前由很多功能組件組成,每個組件都可以根據自己的實際情況進行擴展(暫時不做過多介紹)

  下面主要介紹ocelot網關使用中個人認為應該最先處理的東西

健康檢查

  在實際的應用中網關項目都會部署多臺,然后通過nginx進行軟負載,在更新部署網關項目的過程中服務肯定是無法使用,這個時候我們就需要利用nginx的健康檢查機制進行控制

  網關需要給nginx提供一個健康檢查地址,ocelot使用的url path地址進行路由匹配,當匹配不到時會返回404,所以我們需要單獨處理一個健康檢查地址

  Ocelot提供了一個中間件配置替換的方法OcelotPipelineConfiguration,我們對OcelotPipelineConfiguration的PreErrorResponderMiddleware中間件方法進行擴展,代碼如下:

.NET CORE微服務中的網關使用與配置是怎樣的

網關和路由配置

  網關的配置包含四個部分,ReRoutes、DynamicReRoutes、Aggregates、GlobalConfiguration,

  ocelot配置的獲取默認是使用配置文件的方式,上面已經說了網關一般都會部署多臺,使用文件配置還是存在一定弊端

  ocelot的配置獲取方法是IFileConfigurationRepository接口,所以如果我們實現了此接口就可以滿足配置存儲方式的擴展,目前已擴展mysqlredis,代碼如下

  redis:

.NET CORE微服務中的網關使用與配置是怎樣的

mysql:

.NET CORE微服務中的網關使用與配置是怎樣的

.NET CORE微服務中的網關使用與配置是怎樣的

可以看到四項配置里并不是全部都進行可配置化,如果有需求可以自行增加字段實現

redis的存儲是大json方式,而mysql是一條一條的,因為配置的管理是以mysql為主,然后同步到其他存儲介質中的

網關配置的更新

 有加載就有更新,在ocelot中配置的更新是使用自己的實現來完成配置的熱更新,方式如下

 1、配置文件方式是通過配置文件的IOptionsMonitor的OnChange方式重新加載配置信息

 2、第三方存儲方式是通過默認實現的FileConfigurationPoller方法定時(默認1s)取獲取配置信息的

 所以我們擴展的獲取配置形式,在注冊的時候要把FileConfigurationPoller HostedService一同注入進去,代碼如下

.NET CORE微服務中的網關使用與配置是怎樣的

其中涉及到Bucket.DbContext和Bucket.Redis組件很簡單,也可自行實現

配置的管理

  其實最開始的時候,使用的是consul存儲配置,然后通過網關自帶的配置接口進行配置的管理,但是在ocelot的一次升級的時候出現了一個問題(配置信息丟失),雖然當時修改了ocelot的源碼解決了,后來還是決定擴展存儲方式,所以上面的獲取配置接口的set方法都不實現了

  上面已經說了是已mysql進行配置存儲然后同步到其他介質上,所以我們只要維護好mysql數據庫就可以了

關于.NET CORE微服務中的網關使用與配置是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

射洪县| 中方县| 隆安县| 恩平市| 水富县| 榆林市| 八宿县| 湘阴县| 闻喜县| 堆龙德庆县| 彩票| 邓州市| 肇州县| 万盛区| 达拉特旗| 普兰县| 邢台县| 石台县| 汉寿县| 敦煌市| 沙田区| 博湖县| 保德县| 农安县| 和龙市| 集安市| 大宁县| 武安市| 民和| 朝阳市| 巴林左旗| 保亭| 全南县| 阳高县| 田东县| 麻城市| 永清县| 清镇市| 开鲁县| 灵川县| 色达县|