日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HttpClientFactory与Steeltoe结合来完成服务发现

發(fā)布時間:2023/12/4 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HttpClientFactory与Steeltoe结合来完成服务发现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

上一篇說了一下用HttpClientFactory實現(xiàn)了簡單的熔斷降級。

這篇就來簡單說說用HttpClientFactory來實現(xiàn)服務(wù)發(fā)現(xiàn)。由于標(biāo)題已經(jīng)好明顯的說了Steeltoe

因此這里會要求有Spring Clound的相關(guān)環(huán)境,本文也默認各位對這里有些許了解,所以不會涉及搭建過程的。

下面就開始正文了。

定義Service

這里的Service,其實可以比較簡單的理解成對注冊到Eureka的服務(wù)進行調(diào)用,然后進行后續(xù)處理。

在上面的Service中,都是常規(guī)的不能再常規(guī)的HttpClient的用法!似乎也沒有看到任何和服務(wù)發(fā)現(xiàn)相關(guān)的東西呀。

確實,就上面的代碼,完成不了服務(wù)發(fā)現(xiàn),因為我們的主角,HttpClientFactory還沒有出場!

先定義好這個Service,是因為我們這里要用另一種client方式(Typed Client)。

下面就去Startup進行相關(guān)的配置了。

在Startup進行配置

在進行配置之前,我們要先添加Steeltoe.Discovery.ClientCore的引用。

<PackageReference Include="Steeltoe.Discovery.ClientCore" Version="2.1.0-rc1" />

再按照Steeltoe的配置說明,在appsettings.json中添加下面的配置

最后就是在ConfigureServices方法里面進行操作了。

這里注冊HttpClient,涉及到了兩個點。一個是Typed Client,另一個是outgoing request middleware

Typed Client 主要是AddTypedClient<IMyService, MyService>(),表明注冊的這個HttpClient是給這個類型用的。

DiscoveryHttpMessageHandler表明,使用這個HttpClient的時候,會使用這個Handler.

另外,這里指定的BaseAddress是http://bservicetest/api/values/。

這個是已經(jīng)注冊到Eureka的另外一個測試服務(wù),我們就是要發(fā)現(xiàn)它,然后從這個服務(wù)里面取到結(jié)果。

然后,自然就是控制器了。

Controller和日志使用

Controller就是很簡單的了,不需要多說。

這里還加了一個日志,是為了方便發(fā)布后查看日志,所以添加了NLog來輸出日志。

添加一個nlog.config,內(nèi)容大致如下。

然后在Program添一行使用NLog的代碼。

運行效果

發(fā)布之后,可以看到Eureka上面已經(jīng)成功注冊了我們的這個ClientTest服務(wù)

其中,上圖兩個箭頭的地方就是我們用到的服務(wù),CLIENTTEST就是我們剛才發(fā)布的。BSERVICETEST是另一個測試服務(wù)。

CLIENTTEST就是會調(diào)用BSERVICETEST這個測試服務(wù)拿數(shù)據(jù)。

下面請求看看效果。

從動圖來看,是已經(jīng)達到預(yù)期了,由于BSERVICETEST有兩個實例,所以也可以看到上面的結(jié)果是,兩個實例在隨機返回結(jié)果。

最后看看日志

請求也確實是到了我們的BSERVICETEST,而不是直接通過這個service的直接地址去訪問的。

總結(jié)

Outgoing request middleware這個功能對HttpClientFactoty來說,用途似乎不少,就看各位怎么發(fā)揮了。

Steeltoe團隊似乎也在嘗試將Hystrix以HttpClientFactoty的形式來調(diào)用。對比Polly,就個人而言,還是覺得Polly好用一點。

最后附上本文的示例代碼https://github.com/catcherwong/Demos/tree/master/src/SteeltoeWithHttpClientFactory

原文地址:https://www.cnblogs.com/catcher1994/p/9381735.html

.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結(jié)

以上是生活随笔為你收集整理的HttpClientFactory与Steeltoe结合来完成服务发现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。