發表文章

目前顯示的是 12月, 2022的文章

.Net Core 使用反向代理-YARP

圖片
前言 在參考Clearn Architecture時,看到的一個有趣的東東 YARP 反向代理套件,用來實作Api Gateway架構(如下圖),將多個微服務集合起來,對外統一端點、負載平載、壓縮、緩存等。 圖片來源:微軟電子書 什麼是YARP   微軟開源的專案,運用 .NET (.NET Core) 建置高效能反向代理,Y特點是容易自訂,用戶可以根據需求,自訂並且調整成來滿足特殊場景的需求。 提供了兩個主要使用和自訂的方向,第一個是作為一個全功能代理;另一種使用方式,則是將 YARP 用於高度自定義的環境,用戶可以直接呼叫 YARP 請求轉送程式,繞過路由和負載平衡等模組。開發者甚至可以在同一個程序中混合兩種方式,根據路由切換。( 參考來源twMVC ) POC實作 本文將新增一個ApiGatewary專案及2個WebAPI專案,由ApiGatewary統一對外存取WebAPI。 1.新增ApiGatewary 專案 加入套件 Install-Package Yarp.ReverseProxy -Version 1.1.1 Program.cs  啟用YARP builder.Services.AddReverseProxy()     .LoadFromConfig(builder.Configuration.GetSection("ReverseProxy")); .. app.MapReverseProxy(); 2.新增 WebAPI專案-Product 回傳產品資訊 https://localhost:7298/api/products/Product     [Route("api/products/[controller]")]     public class ProductController : ControllerBase     {         [HttpGet]         public IEnumerable<Product> Get()         {             List<Product> products = GeTestData();             return products;         } .. ...略 3.