Asp.Net Core Ocelot
2022/4/8 20:49:16
本文主要是介绍Asp.Net Core Ocelot,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Asp.Net Core Ocelot
1.1 Ocelot简介
Ocelot是一个用.NET Core实现并且开源的API网关技术,它的功能包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器、Service Fabric、Skywalking等的集成。而且这些功能都只需要简单的配置即可完成。
(1)配置说明
- Routes - 告诉Ocelot如何处理上游的请求
- GlobalConfiguration - 全局配置,此节点的配置允许覆盖Routes里面的配置,你可以在这里进行通用的一些配置信息
- Downstream - 下游服务配置
- UpStream - 上游服务配置
- Aggregates - 服务聚合配置
- ServiceName, LoadBalancer, UseServiceDiscovery - 配置服务发现
- AuthenticationOptions - 配置服务认证
- RouteClaimsRequirement - 配置Claims鉴权
- RateLimitOptions - 限流配置
- FileCacheOptions - 缓存配置
- QosOptions - 服务质量与熔断
- DownstreamHeaderTransform - 头信息转发
1.2 Asp.Net Core使用Ocelot
(1)新建Peng.Core.ApiGateWay,Install-Package Ocelot
这里还是使用Apollo远程配置
<ItemGroup> <PackageReference Include="Ocelot" Version="18.0.0" /> <PackageReference Include="Com.Ctrip.Framework.Apollo.Configuration" Version="2.6.2" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" /> </ItemGroup>
(2)注入Ocelot,这里还需要添加Cors
builder.Services.AddOcelot(_configuration); app.UseOcelot().Wait();
(3)配置网关,服务A,服务B启动的IP
(4)配置Apollo
新建一个NameSpace
ocelotconfig.json
{ "GlobalConfiguration": { "BaseUrl": "https://localhost:9000/" }, "Routes": [ { "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": "9001" } ], "UpstreamPathTemplate": "/api/a/v1/{controller}", "DownstreamPathTemplate": "/api/a/v1/{controller}", "UpstreamHttpMethod": [ "GET", "POST", "DELETE", "PUT", "OPTIONS" ], "UseServiceDiscovery": false, "LoadBalancerOptions": { "Type": "RoundRobin" } }, { "DownstreamScheme": "https", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": "9002" } ], "UpstreamPathTemplate": "/api/b/v1/{controller}", "DownstreamPathTemplate": "/api/b/v1/{controller}", "UpstreamHttpMethod": [ "GET", "POST", "DELETE", "PUT", "OPTIONS" ], "UseServiceDiscovery": false, "LoadBalancerOptions": { "Type": "RoundRobin" } } ] }
appsetting.json配置Apollo,这里三个服务配置都一样
{ "Apollo": { "AppId": "Peng.Core.Service", "Env": "DEV", "Namespaces": [ "Shared.json", "ocelotconfig.json" ], "MetaServer": "http://192.168.188.180:8080", "ConfigServer": [ "http://192.168.188.180:8080/" ] } }
(5)通过网关的IP访问接口
这篇关于Asp.Net Core Ocelot的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#