千家信息网

.Net Core微服务网关Ocelot基础知识有哪些

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容介绍了".Net Core微服务网关Ocelot基础知识有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读
千家信息网最后更新 2025年02月23日.Net Core微服务网关Ocelot基础知识有哪些

本篇内容介绍了".Net Core微服务网关Ocelot基础知识有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

网关是什么

简单来说,网关就是暴露给外部的请求入口。就和门卫一样,外面的人想要进来,必须要经过门卫。当然,网关并不一定是必须的,后端服务通过http也可以很好的向客户端提供服务。但是对于业务复杂、规模庞大的项目来说,使用网关有很多无法舍弃的好处,比如可以进行统一的请求聚合来节省流量、降低耦合度,可以赋予项目熔断限流的能力提高可用性等等。

ocelot是什么

ocelot是.net core实现的开源的api网关项目,开源地址:https://github.com/ThreeMammals/Ocelot

ocelot除了十分契合.net开发者以外,功能强大,包含:路由、认证、请求聚合、限流熔断、服务发现、鉴权,还有内置负载均衡器、Consul集成等等。

当然了,api网关不止这一款,市面上还有kong之类的,随自己喜好就好。

ocelot集成

首先明确一点,网关应该作为独立进程存在。那么我们先新建一个.net core3.1项目,然后添加nuget包:

关于版本,选择当前所能支持的最新版即可。

添加好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也提供了很多集成中间件的库,就像这些:

现在,想要让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();                });

配置文件:

{  "Routes": [    {      "DownstreamPathTemplate": "/{url}", //服务地址--url变量      "DownstreamScheme": "http",      "DownstreamHostAndPorts": [        {          "Host": "123.123.123.123",          "Port": 5050 //服务端口        }      ],      "UpstreamPathTemplate": "/MJ/{url}", //网关地址--url变量      "UpstreamHttpMethod": [ "Get", "Post" ]    }  ]}

这是一份简单的转发配置,Downstream和Upstream开头的配置项就是下游、上游相关项。这里要说一句,在微服务架构中,客户端——服务端通常理解为上游——下游,这里自行替换一下。

上面的配置文件做了一件事,接收上游请求时,把请求路径中含有【/MJ/所有】的请求转发到IP【http://123.123.123.123:5050/所有】并回传结果,支持http的get、post方法,其实这就是最基本的路由。

来测试一下,启动项目并写好请求路径:

可以看到,ocelot成功把本地请求按照路由规则转发给远程服务器,并回发了结果。一个网关最基本的功能有了。

截图中所请求的远程服务,是我前几篇文章基于consul搭建起来的项目,有兴趣可以去看看。

".Net Core微服务网关Ocelot基础知识有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

网关 服务 项目 配置 知识 文件 地址 就是 路由 基础 基础知识 成功 中间件 内容 功能 变量 客户 客户端 更多 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 热议网络安全法 松江区技术软件开发收费标准 通讯中什么叫客户端和服务器 直播带货服务器选择 网络安全员演示支付宝被修改 数据库100个字段怎么设计 计算网络技术是什么意思 服务器时间到了显示未开机 暗黑2登录无法连接到服务器 数据营销和数据库营销 ssh登陆数据库 破坏网络安全的方式 肠道菌群生理分析数据库 劳帼龄网络安全 网络安全岗位的意识 数据库建设的技术路线 网络安全设计与实施图 河北三维土地资产管理软件开发 小学生网络安全 教案 网络技术是找上海百首网络 华为手机有网怎么连接不了服务器 联合国网络安全条约 中国基建网络安全 一网科技网络技术有限公司 数据库中的学生选修课的关系表 深圳手机游戏软件开发工程师月薪 工业互联网北京科技大学 阿里云平台数据库微服务 三国杀服务器控制胜率 无法连接到api服务器
0