日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

使用 Microsoft.Extensions.ServiceDiscovery 進(jìn)行服務(wù)發(fā)現(xiàn)并調(diào)用

freeflydom
2024年9月10日 9:24 本文熱度 996

簡介

在現(xiàn)代微服務(wù)架構(gòu)中,服務(wù)發(fā)現(xiàn)(Service Discovery)是一項(xiàng)關(guān)鍵功能。它允許微服務(wù)動(dòng)態(tài)地找到彼此,而無需依賴硬編碼的地址。以前如果你搜 .NET Service Discovery,大概率會(huì)搜到一大堆 Eureka,Consul 等的文章。現(xiàn)在微軟為我們帶來了一個(gè)官方的包:Microsoft.Extensions.ServiceDiscovery。這個(gè)包出自 Aspire 項(xiàng)目,提供了一個(gè)簡便的方式在 .NET 中實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)。

安裝 Nuget 包

首先,需要安裝 Microsoft 提供的 Service Discovery 包。使用以下命令添加包到你的項(xiàng)目中:

dotnet add package Microsoft.Extensions.ServiceDiscovery

這一步確保你的項(xiàng)目具有使用 Service Discovery 所需的依賴項(xiàng)。

配置和注冊(cè)服務(wù)

接下來,需要在項(xiàng)目中配置和注冊(cè) Service Discovery。打開 Program.cs 或 Startup.cs 文件,并添加以下代碼:

builder.Services.AddServiceDiscovery();

builder.Services.ConfigureHttpClientDefaults(static http =>

{

    http.AddServiceDiscovery();

});

這段代碼將 Service Discovery 注冊(cè)到依賴注入容器中,并配置默認(rèn)的 HTTP 客戶端使用 Service Discovery。

配置服務(wù)端點(diǎn)

為了讓 Service Discovery 知道如何找到其他服務(wù),需要在配置文件(如 appsettings.json)中定義服務(wù)端點(diǎn)。例如:

{

  "Services": {

    "weatherReport": {

      "http": [

        "localhost:5089",

        "127.0.0.1:5089"

      ],

      "https": []

    }

  }

}

在這個(gè)配置中,我們定義了名為 weatherReport 的服務(wù)的 HTTP 端點(diǎn)。Service Discovery 將使用這些信息來查找和訪問該服務(wù)。

使用服務(wù)名進(jìn)行 HTTP 調(diào)用

配置完成后,可以通過服務(wù)名稱進(jìn)行 HTTP 調(diào)用。以下代碼展示了如何使用 IHttpClientFactory 進(jìn)行服務(wù)調(diào)用:

app.MapGet("/report", async (IHttpClientFactory factory) =>

{

    const string serviceName = "weatherReport";

    var client = factory.CreateClient();

    var response = await client.GetAsync($"http://{serviceName}/weatherforecast");

    var content = await response.Content.ReadAsStringAsync();


    return content;

});

這段代碼創(chuàng)建了一個(gè) HTTP 客戶端,通過服務(wù)名 weatherReport 發(fā)起請(qǐng)求,并返回響應(yīng)內(nèi)容。

啟動(dòng)服務(wù)后嘗試進(jìn)行調(diào)用:

通過觀察日志可以看到 http://weatherreport/weatherforecast 被轉(zhuǎn)換成 http://127.0.0.1:5089 或 http://localhost:5089 的 http 調(diào)用。

負(fù)載均衡

如果服務(wù)配置了多個(gè) endpoint 。 那么進(jìn)行服務(wù)調(diào)用的時(shí)候我們往往需要按實(shí)際情況配置 Load-balancing 的策略:

builder.Services.AddHttpClient<CatalogServiceClient>(

    static client => client.BaseAddress = new("http://weatherReport"));

  .AddServiceDiscovery(RandomServiceEndpointSelector.Instance);

  • PickFirstServiceEndpointSelectorProvider.Instance: 總是調(diào)用第一個(gè)

  • RoundRobinServiceEndpointSelectorProvider.Instance: 輪詢調(diào)用

  • RandomServiceEndpointSelectorProvider.Instance: 隨機(jī)調(diào)用

  • PowerOfTwoChoicesServiceEndpointSelectorProvider.Instance: 解釋太長看英文原文吧。Power-of-two-choices, which attempts to pick the least heavily loaded endpoint based on the Power of Two Choices algorithm for distributed load balancing, degrading to randomly selecting an endpoint when either of the provided endpoints do not have the IEndpointLoadFeature

總結(jié)

Service Discovery 是實(shí)現(xiàn)微服務(wù)架構(gòu)的重要組件。在 .NET 中,通過簡單的配置和使用,可以不用 hardcode IP 跟 port 而使用服務(wù)名,可以大大簡化服務(wù)間的調(diào)用。同時(shí)還能配置不同的調(diào)用策略,進(jìn)行負(fù)載均衡。

作者:Agile.Zhou
出處:https://www.cnblogs.com/kklldog/p/18403778/service-discovery
版權(quán):本作品采用「署名-非商業(yè)性使用-相同方式共享 4.0 國際」許可協(xié)議進(jìn)行許可。


該文章在 2024/9/10 9:28:08 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 精品中文字幕一区在线 | 国产乱码一区二区三区免费 | 九九自拍视频 | 好屌色在线 | 亚洲国产中日韩精品综合 | 精品国产一区二区三区不卡在 | 2025最新上映电影 | 亚洲中文在线不卡 | 国产在线精品福利91啪 | 最新亚洲精品国自 | 午夜影院0606免费 | 人人添逼人人摸人人 | 在线播放精品一区二区三区 | 91欧洲在线视精品在亚洲 | 最新免费电影大全 | 超薄肉色丝袜一区二区 | 丰满尤物一区二区三区 | 高清免费国产传媒海量视频 | 97影院午夜午夜伦不卡 | 亚洲一本之道高清在线观看 | 99热在线只有精品 | 污免费网站入口 | 一级一片免费播放 | 国产精品成人一区二区三区电影 | 国产精品成人va在线观看 | 亚洲制服丝袜一区二区三区 | 区三区免费中文字幕 | 欧美亚洲丝袜制服中文 | 日韩精品午夜视频一区二区三区 | 最近日本中文字幕免费完整 | 日韩操穴 | 最新亚洲一区二区在 | 国产中文字幕视频在线播放 | 欧美日韩国产综合在线小说 | 国产日韩久| 欧美巨大德国肥婆 | 乱码高清在线观看 | 欧美黑人又粗又大又爽免费 | 丰满的女房东在线观看6 | 激情综合在线亚洲五月天 | 午夜三级a三级三点窝 |