這篇文章給大家介紹.NET CORE微服務(wù)中的網(wǎng)關(guān)使用與配置是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
張掖網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,張掖網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為張掖近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個(gè)售后服務(wù)好的張掖做網(wǎng)站的公司定做!
微服務(wù)的系統(tǒng)應(yīng)用中,網(wǎng)關(guān)系統(tǒng)使用的是ocelot,ocelot目前已經(jīng)比較成熟了
ocelot就不做介紹了,等整體介紹完后再進(jìn)行各類擴(kuò)展介紹,ocelot源碼地址:https://github.com/ThreeMammals/Ocelot
ocelot目前由很多功能組件組成,每個(gè)組件都可以根據(jù)自己的實(shí)際情況進(jìn)行擴(kuò)展(暫時(shí)不做過多介紹)
下面主要介紹ocelot網(wǎng)關(guān)使用中個(gè)人認(rèn)為應(yīng)該最先處理的東西
在實(shí)際的應(yīng)用中網(wǎng)關(guān)項(xiàng)目都會部署多臺,然后通過nginx進(jìn)行軟負(fù)載,在更新部署網(wǎng)關(guān)項(xiàng)目的過程中服務(wù)肯定是無法使用,這個(gè)時(shí)候我們就需要利用nginx的健康檢查機(jī)制進(jìn)行控制
網(wǎng)關(guān)需要給nginx提供一個(gè)健康檢查地址,ocelot使用的url path地址進(jìn)行路由匹配,當(dāng)匹配不到時(shí)會返回404,所以我們需要單獨(dú)處理一個(gè)健康檢查地址
Ocelot提供了一個(gè)中間件配置替換的方法OcelotPipelineConfiguration,我們對OcelotPipelineConfiguration的PreErrorResponderMiddleware中間件方法進(jìn)行擴(kuò)展,代碼如下:
網(wǎng)關(guān)的配置包含四個(gè)部分,ReRoutes、DynamicReRoutes、Aggregates、GlobalConfiguration,
ocelot配置的獲取默認(rèn)是使用配置文件的方式,上面已經(jīng)說了網(wǎng)關(guān)一般都會部署多臺,使用文件配置還是存在一定弊端
ocelot的配置獲取方法是IFileConfigurationRepository接口,所以如果我們實(shí)現(xiàn)了此接口就可以滿足配置存儲方式的擴(kuò)展,目前已擴(kuò)展MySQL和redis,代碼如下
redis:
mysql:
可以看到四項(xiàng)配置里并不是全部都進(jìn)行可配置化,如果有需求可以自行增加字段實(shí)現(xiàn)
redis的存儲是大json方式,而mysql是一條一條的,因?yàn)榕渲玫墓芾硎且詍ysql為主,然后同步到其他存儲介質(zhì)中的
有加載就有更新,在ocelot中配置的更新是使用自己的實(shí)現(xiàn)來完成配置的熱更新,方式如下
1、配置文件方式是通過配置文件的IOptionsMonitor的OnChange方式重新加載配置信息
2、第三方存儲方式是通過默認(rèn)實(shí)現(xiàn)的FileConfigurationPoller方法定時(shí)(默認(rèn)1s)取獲取配置信息的
所以我們擴(kuò)展的獲取配置形式,在注冊的時(shí)候要把FileConfigurationPoller HostedService一同注入進(jìn)去,代碼如下
其中涉及到Bucket.DbContext和Bucket.Redis組件很簡單,也可自行實(shí)現(xiàn)
其實(shí)最開始的時(shí)候,使用的是consul存儲配置,然后通過網(wǎng)關(guān)自帶的配置接口進(jìn)行配置的管理,但是在ocelot的一次升級的時(shí)候出現(xiàn)了一個(gè)問題(配置信息丟失),雖然當(dāng)時(shí)修改了ocelot的源碼解決了,后來還是決定擴(kuò)展存儲方式,所以上面的獲取配置接口的set方法都不實(shí)現(xiàn)了
上面已經(jīng)說了是已mysql進(jìn)行配置存儲然后同步到其他介質(zhì)上,所以我們只要維護(hù)好mysql數(shù)據(jù)庫就可以了
關(guān)于.NET CORE微服務(wù)中的網(wǎng)關(guān)使用與配置是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁名稱:.NETCORE微服務(wù)中的網(wǎng)關(guān)使用與配置是怎樣的
網(wǎng)址分享:http://www.rwnh.cn/article8/jeship.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、網(wǎng)頁設(shè)計(jì)公司、面包屑導(dǎo)航、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)