微服务-Ocelot配合缓存使用
微服务-Ocelot配合缓存使用
一、 介绍:很多时候我们希望对一些数据能够进行缓存,因为这些数据是不会变的,所以没必要频繁的去查询数据,所以就可以在网关层中进行数据缓存。
二、配置:
1. 安装Nuget包

2. 修改program.cs
var builder = WebApplication.CreateBuilder(args); #region 配置文件管理+日志 builder.Configuration.AddJsonFile("configuration.json", optional: false, reloadOnChange: true); #endregion //#region IOC扩展负载均衡策略 Func<IServiceProvider, DownstreamRoute, IServiceDiscoveryProvider, CustomPollingLoadBalancer> loadBalancerFactoryFunc = (serviceProvider, Route, serviceDiscoveryProvider) => new CustomPollingLoadBalancer(serviceDiscoveryProvider.Get); //#endregion builder.Services.AddOcelot() .AddCustomLoadBalancer<CustomPollingLoadBalancer>(loadBalancerFactoryFunc) // 自定义负载均衡 .AddConsul() //使用consul .AddCacheManager(x => { x.WithDictionaryHandle();//开启缓存,默认字典存储 }) ; builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseOcelot();//直接替换了管道模型 //app.UseHttpsRedirection(); //app.UseAuthorization(); //app.MapControllers(); app.Run();
3. 配置文件:
{ "Routes": [ { "DownstreamPathTemplate": "/api/{url}", //�����ַ--url���� "DownstreamScheme": "http", "UpstreamPathTemplate": "/T/{url}", //���ص�ַ--url���� "UpstreamHttpMethod": [ "Get", "Post" ], "UseServiceDiscovery": true, "ServiceName": "UserMinimalAPIService", //consul�������� "LoadBalancerOptions": { "Type": "CustomPollingLoadBalancer" //��ѯ LeastConnection-�����������ķ����� NoLoadBalance�����ؾ��� }, "FileCacheOptions": { "TtlSeconds": 15, //Second "Region": "UserCache" //这是自定义缓存,下面有定义好的缓存,这个节点可以注释掉 } } ], //"GlobalConfiguration": { // "BaseUrl": "http://127.0.0.1:6299", //���ض����ַ // "ServiceDiscoveryProvider": { // "Host": "192.168.3.230", // "Port": 8500, // "Type": "Consul" //��Consul�ṩ������, ÿ������ȥconsul // } "ServiceDiscoveryProvider": { "Host": "192.168.3.230", "Port": 8500, "Type": "PollConsul", //��Consul�ṩ������, "PollingInterval": 1000 //��ѯconsul,设置缓存为1秒 // //"Token": "footoken"//��ҪACL�Ļ� //} } }
谢谢学习!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构