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

溫馨提示×

溫馨提示×

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

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

.Net?Core微服務網關Ocelot基礎知識有哪些

發布時間:2022-01-05 13:30:18 來源:億速云 閱讀:157 作者:iii 欄目:開發技術

本篇內容介紹了“.Net Core微服務網關Ocelot基礎知識有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

網關是什么

簡單來說,網關就是暴露給外部的請求入口。就和門衛一樣,外面的人想要進來,必須要經過門衛。當然,網關并不一定是必須的,后端服務通過http也可以很好的向客戶端提供服務。但是對于業務復雜、規模龐大的項目來說,使用網關有很多無法舍棄的好處,比如可以進行統一的請求聚合來節省流量、降低耦合度,可以賦予項目熔斷限流的能力提高可用性等等。

ocelot是什么

ocelot是.net core實現的開源的api網關項目,開源地址:https://github.com/ThreeMammals/Ocelot

ocelot除了十分契合.net開發者以外,功能強大,包含:路由、認證、請求聚合、限流熔斷、服務發現、鑒權,還有內置負載均衡器、Consul集成等等。

當然了,api網關不止這一款,市面上還有kong之類的,隨自己喜好就好。

ocelot集成

首先明確一點,網關應該作為獨立進程存在。那么我們先新建一個.net core3.1項目,然后添加nuget包:

.Net?Core微服務網關Ocelot基礎知識有哪些

關于版本,選擇當前所能支持的最新版即可。

添加好nuget包以后,需要修改StartUp:

// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOcelot();
            //services.AddControllers();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseOcelot().Wait();

            //if (env.IsDevelopment())
            //{
            //    app.UseDeveloperExceptionPage();
            //}

            //app.UseHttpsRedirection();

            //app.UseRouting();

            //app.UseAuthorization();

            //app.UseEndpoints(endpoints =>
            //{
            //    endpoints.MapControllers();
            //});
        }

這里不要驚訝,因為走了網關就不會再走默認的管道了。UseOcelot().Wait() 表示設置ocelot所有的中間件,而ocelot也提供了很多集成中間件的庫,就像這些:

.Net?Core微服務網關Ocelot基礎知識有哪些

現在,想要讓ocelot成功運行,還需要新增配置文件,并在Program新增配置文件的引用:

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureAppConfiguration(config =>
                {
                    config.AddJsonFile("ocelotConfig.json", optional: false, reloadOnChange: true);
                })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

配置文件:

{
  "Routes": [
    {
      "DownstreamPathTemplate": "/{url}", //服務地址--url變量
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "123.123.123.123",
          "Port": 5050 //服務端口
        }
      ],
      "UpstreamPathTemplate": "/MJ/{url}", //網關地址--url變量
      "UpstreamHttpMethod": [ "Get", "Post" ]
    }
  ]
}

這是一份簡單的轉發配置,Downstream和Upstream開頭的配置項就是下游、上游相關項。這里要說一句,在微服務架構中,客戶端&mdash;&mdash;服務端通常理解為上游&mdash;&mdash;下游,這里自行替換一下。

上面的配置文件做了一件事,接收上游請求時,把請求路徑中含有【/MJ/所有】的請求轉發到IP【http://123.123.123.123:5050/所有】并回傳結果,支持http的get、post方法,其實這就是最基本的路由。

來測試一下,啟動項目并寫好請求路徑:

.Net?Core微服務網關Ocelot基礎知識有哪些

可以看到,ocelot成功把本地請求按照路由規則轉發給遠程服務器,并回發了結果。一個網關最基本的功能有了。

截圖中所請求的遠程服務,是我前幾篇文章基于consul搭建起來的項目,有興趣可以去看看。

“.Net Core微服務網關Ocelot基礎知識有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

桂阳县| 饶河县| 五指山市| 那曲县| 德令哈市| 仁寿县| 鄄城县| 凌海市| 股票| 怀化市| 巴彦淖尔市| 合作市| 江西省| 陇川县| 白城市| 定兴县| 天门市| 涪陵区| 精河县| 佳木斯市| 腾冲县| 富锦市| 三明市| 阳春市| 岗巴县| 高清| 板桥市| 岫岩| 北海市| 烟台市| 安庆市| 突泉县| 柯坪县| 青川县| 阳信县| 宿州市| 丰宁| 巩义市| 元氏县| 贵港市| 双鸭山市|