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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

.net core 微服务之API网关 开源中间件 Ocelot 笔记

發(fā)布時(shí)間:2024/4/17 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net core 微服务之API网关 开源中间件 Ocelot 笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?一夫當(dāng)關(guān)萬夫莫開

一:源起:

? ? ? ? 當(dāng)我們的應(yīng)用不再是單體架構(gòu)時(shí),微服務(wù)將原先單體下的功能組件分割后,產(chǎn)生了許多個(gè)微服務(wù),實(shí)際上我們還是以前那樣的操作,訪問服務(wù)接口,達(dá)到我們的目的,而這次不過是換成了http(s)請(qǐng)求的微服務(wù),以前的服務(wù)接口也是有base服務(wù)以便掛載一些通用處理,所以這里分化出去的微服務(wù)也是要一個(gè)統(tǒng)一的入口或者稱之為管家的東西來管理與分發(fā)。那么API網(wǎng)關(guān)這樣一個(gè)概念就呼之欲出了,這里將記錄.net core開源的網(wǎng)關(guān) Ocelot 的使用。

二:搬磚:

? ? ?此處流程只是Ocelot作為網(wǎng)關(guān)轉(zhuǎn)發(fā)請(qǐng)求的簡(jiǎn)單demo,代碼設(shè)置源自網(wǎng)上,部分自己瞎改

? ? ?環(huán)境:

? ? ? ? ?vs2017? ||? ?.net core 2.0 ||?Ocelot 8.0.0

? ? ?1.創(chuàng)建網(wǎng)關(guān)api(nuget或者其他引入Ocelot的依賴),以及2個(gè)微服務(wù)api。

? ? ?2.網(wǎng)關(guān)api這里我省去了原有的(control以及mvc服務(wù))

? ? Ocelot配置文件

{"ReRoutes":?[//微服務(wù)一配置:{"DownstreamPathTemplate":?"/api/get","DownstreamScheme":?"http","DownstreamHostAndPorts":?[{"Host":?"localhost","Port":?60001}],"UpstreamPathTemplate":?"/api/get","UpstreamHttpMethod":?[?"Get"?]},//微服務(wù)二配置:{"DownstreamPathTemplate":?"/api/post","DownstreamScheme":?"http","DownstreamHostAndPorts":?[{"Host":?"localhost","Port":?60002}],"UpstreamPathTemplate":?"/api/post","UpstreamHttpMethod":?[?"Get"?]}],"GlobalConfiguration":?{"BaseUrl":?"localhost:60000"} }

網(wǎng)關(guān)api設(shè)置:

在 Program.cs添加Ocelot的配置文件

????????public?static?IWebHost?BuildWebHost(string[]?args)?=>WebHost.CreateDefaultBuilder(args)//此處添加Ocelot的配置.ConfigureAppConfiguration((hostingContext,?builder)?=>?{builder.SetBasePath(hostingContext.HostingEnvironment.ContentRootPath).AddJsonFile("ocelot.json");}).UseStartup<Startup>().Build();

在Startup.cs添加Ocelot服務(wù)

?public?void?ConfigureServices(IServiceCollection?services){//添加網(wǎng)關(guān)配置services.AddOcelot(Configuration);}public?void?Configure(IApplicationBuilder?app,?IHostingEnvironment?env){if?(env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseOcelot().Wait();}

?2個(gè)微服務(wù)就是普通的設(shè)置:?

namespace?MicroServicePost.Controllers {[Route("api/[controller]")]public?class?PostController?:?Controller{[HttpGet]public?IEnumerable<string>?yishuiPost(){return?new?string[]?{?"易",?"水",?"POST"?};}} }

這里是調(diào)試啟動(dòng)3個(gè)進(jìn)程,且Ocelot的配置需要明確的地址,所以端口要么是看api各自屬性里面設(shè)定的要么就是統(tǒng)一改下占用端口,且調(diào)試啟動(dòng)3個(gè)端口需要到解決方案屬性那里設(shè)定,且這3個(gè)進(jìn)程同屬于一個(gè)解決方案內(nèi),后續(xù)的部署將是啟動(dòng)docker而不是這樣圖方便一個(gè)解決方案啟動(dòng)的方式。

運(yùn)行結(jié)果如下:

當(dāng)往網(wǎng)關(guān)輸入對(duì)應(yīng)的微服務(wù)路由時(shí),你能看到不同服務(wù)的回調(diào),當(dāng)然實(shí)際上微服務(wù)端口還是需要禁止訪問的,對(duì)外面只是暴露80端口這個(gè)就是后話了。


轉(zhuǎn)載于:https://blog.51cto.com/13950217/2168967

總結(jié)

以上是生活随笔為你收集整理的.net core 微服务之API网关 开源中间件 Ocelot 笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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