.Netcore 2.0 Ocelot Api网关教程(番外篇)- Ocelot v13.x升级

由于Ocelot系列博客好久没更新(差不多有10个月的时间了),在此先说声抱歉,Ocelot系列会继续更新下去。
在写上一篇配置管理的时候发现官方文档已经和以前的不一样,而Ocelot也从5.0版本更新到了13.x版本,进行了很多的修改与feature新增。
本篇文章就来介绍一下从5.0版本升级到13.0版本需要注意的事项。

1、Ocelot的两次重大更新

在Ocelot的release页面可以看到在6.0和11.0版本分别进行了一次断层更新,具体来看一下有哪些变化。

Ocelot 6.0 release:

640?wx_fmt=other

本次更新修改了负载均衡配置,同时添加了一个新的基于cookie的负载类型。

Ocelot 11.0 release

640?wx_fmt=other

本次更新修改了服务发现的添加方式,需要手动引用 

Ocelot.Provider.Consul

 包(如果使用Consul作为负载均衡器),或者 

Ocelot.Provider.Eureka

 包(如果使用Eureka作为负载均衡器),同时在路由配置中不再需要 

UseServiceDiscovery

 配置,只需要一个 

ServiceName

 配置即可。

2、开工,改代码

1、首先升级Ocelot版本之13.x

640?wx_fmt=other

选择Ocelot包,然后选择想要升级的版本(此处为13.0)点击升级即可。

 2、引入

Ocelot.Administration

 包(如果有用到配置管理)。

640?wx_fmt=other

选择包,点击引入既可。

 3、引入 

Ocelot.Provider.Consul

 包


640?wx_fmt=other

选择包,点击引入即可。

 4、修改Startup中的ConfigureServices如下

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();

void options(IdentityServerAuthenticationOptions o)
{
o.Authority = "http://localhost:6000";
o.RequireHttpsMetadata = false;
o.ApiName = "api1";
}

services
.AddOcelot(new ConfigurationBuilder()
.AddJsonFile("configuration.json")
.Build())
.AddConsul()
.AddAdministration("/administration", "secret");

services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication("TestKey", options);
}

5、修改试用服务发现的配置如下

{
"DownstreamPathTemplate": "/api/Counter/Count",
"DownstreamScheme": "http",
"UpstreamPathTemplate": "/count",
"UpstreamHttpMethod": [ "Get" ],
"ServiceName": "Count",
"LoadBalancerOptions": {
"Type": "RoundRobin"
}
}

其中Type为要使用的负载均衡类型。
最后放一张此次升级的git change log截图

640?wx_fmt=other

源码参见:

https://github.com/Weidaicheng/OcelotTutorial/tree/ocelotV13upgrade 

原文地址:https://www.jianshu.com/p/154ad3e244b2

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF765F Souvenirs(暴力、线段树)

解析 比较神奇的一道题。 考虑一个常规套路:把询问离线,移动右端点,维护左端点答案。 考虑暴力维护,对于当前的 aixa_ixai​x,左侧如图所示的这两条线上的点都可以产生新的可能答案。 容易构造使得单次产生的新点是…

Hard Disk Drive HDU - 4788

Hard Disk Drive HDU - 4788 题意: 通常制造商认为1“kilo”等于1000,但操作系统会认为是1024。 因此,当你购买了一个100MB的硬盘,电脑却只显示大约有95MB,这缺失了大约5MB。 对于硬盘的大小,有多种单位描…

ASP.NET Core 沉思录 - 环境的思考

我的博客换新家啦,新的地址为:https://clrdaily.com :-D今天我们来一起思考一下如何在不同的环境应用不同的配置。这里的配置不仅仅指 IConfiguration 还包含 IWebHostBuilder 的创建过程和 Startup 的初始化过程。0 太长不读环境造成的差异在架构中基本…

深度:从 Office 365 新图标来看微软背后的设计新理念

开始表演请关注我的公众号“寒树Office”来获取一些新鲜而有趣的新闻与知识,最近又有两家俱乐部上线了(东莞与长沙),俱乐部的活动告一段落,接下来的日子里我将持续与大家分享 Office 365 的精彩内容,这次很…

NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统

前言当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的。比如如下场景分析的问题:从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点上一个一…

.NET 中创建支持集合初始化器的类型

对象初始化器和集合初始化器只是语法糖,但是能让你的代码看起来更加清晰。至少能让对象初始化的代码和其他业务执行的代码分开,可读性会好一些。本文将编写一个类型,可以使用集合初始化器构造这个类型。不只是添加元素的集合初始化器&#xf…

【无码专区8】三角形二维数点——计数有多少个给定点落在三角形区域内

因为只有std,没有自我实现,所以是无码专区 主要是为了训练思维能力 solution才是dls正解,但是因为只有潦草几句,所以大部分会有我自己基于正解上面的算法实现过程,可能选择的算法跟std中dls的实现不太一样。 std可能…

为什么我的会话状态在ASP.NET Core中不工作了?

原文:Why isnt my session state working in ASP.NET Core? Session state, GDPR, and non-essential cookies作者:Andrew Lock译文:https://www.cnblogs.com/lwqlun/p/10526380.html译者:Lamond Lu在本篇博客中,我将…

现身说法:实际业务出发分析百亿数据量下的多表查询优化

今天给大家带来的讨论主题是通过实战经验来对百亿数据量下的多表数据查询进行优化,俗话说的好,一切脱离业务的架构都是耍流氓,接下来我就整理一下今天早上微信群里石头哥给大家分享的百亿数据量多表查询架构以及优化思路。由于本文内容整理自…

Help Jimmy POJ - 1661

Help Jimmy POJ - 1661 题意: 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时&#xff0c…

ASP.NET Core 沉思录 - ServiceProvider 的二度出生

ASP.NET Core 终于将几乎所有的对象创建工作都和依赖注入框架集成了起来。并对大部分的日常工作进行了抽象。使得整个框架扩展更加方便。各个部分的集成也更加容易。今天我们要思考的部分仍然是从一段每一个工程中都大同小异的代码开始的。IWebHostBuilder CreateWebHostBuilde…

Acwing 216. Rainbow的信号

Acwing 216. Rainbow的信号 题意: 给你n个数,在这n个数中,等概率地选取两个数l,r,如果l>r,则交换l,r 把信号中的第 l 个数到第 r 个数取出来,构成一个数列 P。 A 部分对话的密码是数列 P 的 xor 和的…

合肥.NET技术社区首次线下聚会全程回顾【多图】

2019年3月16日对于合肥.NET来说是一个特别的日子,因为这是合肥.NET技术社区首次非正式线下聚会!这次聚会受场地限制(毕竟是聚餐的形式),即使换成了小椅子后,最多也只能容纳24个人,所以还有一些小…

SignalR第一节-在5分钟内完成通信连接和消息发送

前言首先声明,这又是一个小白从入门到进阶系列。 SignalR 这个项目我关注了很长时间,中间好像还看到过微软即将放弃该项目的消息,然后我也就没有持续关注了,目前的我项目中使用的是自己搭建的 WebSocket ,连接管理和消…

【学习笔记】信息学竞赛中的概率与期望小结

信息竞赛——概率与期望事件事件的蕴含、包含事件的互斥事件的对立事件的和(并)事件的积(交)事件的差概率事件的独立性全概率公式贝叶斯公式概率DP(竞赛中的考察)期望(竞赛中的考察)…

尝试:Script Lab,快速 O365 开发工具//SL01)

《前言》Script Lab 我希望有一个系列(连载),可是我挺担心没偿没有能力去驾驭它。虽然早年前己经接触过,但一直未有下决心开始 Office 365 的开发之旅,虽然一直被光标老师所鼓舞,但是我心有旁骛还没有真正做…

Keiichi Tsuchiya the Drift King

Keiichi Tsuchiya the Drift King 题意: 给定一辆小车长宽分别为 b,a,轨道的圆弧部分半径为 r,圆弧对应的角度为 d,求出小车能通过轨道的最小轨道宽度 w。 题解: 我们考虑小车处于什么状态会使弯道最宽…

AspNet Core 下利用普罗米修斯+Grafana构建Metrics和服务器性能的监控

概述Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。该项目有非常活跃的社区和开发人员,目前是独立的开源项目,现在最常见的Kubernetes容器管理系统中,通常也会搭配Prometheus进行监控。prome…

软件工程真的是一门什么用都没有的学科么?

软件工程真的是一门什么用都没有的学科么?-----读《构建之法》有感楔子我很惭愧,构建之法这本书已经出版四五年了,我之前却未曾涉猎,还是在通过组织长沙.net技术社区之后,才因为因缘际遇有幸认识邹欣邹老师之后&#x…

Ball Dropping

Ball Dropping 题意&#xff1a; 求&#xff1f;的具体长度 题解&#xff1a; 算一算就出来了 代码&#xff1a; #include<bits/stdc.h> using namespace std; int main(){double r,a,b,h;cin>>r>>a>>b>>h;if(2*r<b&&2*r<…