Ocelot Consul ACL
Ocelot允许您指定服务发现提供程序,并使用它来查找Ocelot正在将请求转发给下游服务的主机和端口。目前,这仅在GlobalConfiguration部分中受支持,这意味着所有ReRoute将使用相同的服务发现提供程序,以便在ReRoute级别指定ServiceName。
Consul
GlobalConfiguration中需要以下内容。 提供者是必需的,如果你没有指定主机和端口,默认使用Consul。
"ServiceDiscoveryProvider": {
"Host": "localhost",
"Port": 9500
}
将来我们可以添加一个功能,允许ReRoute配置服务发现提供程序。
为了告诉Ocelot一个ReRoute需要使用服务发现提供程序来发现下游主机和端口,您必须在下游请求配置中添加ServiceName,UseServiceDiscovery和LoadBalancer。 目前Ocelot有RoundRobin(轮询)和LeastConnection(最少连接)两个负载均衡的算法。 如果没有指定负载均衡器,Ocelot将不会均衡请求。
{
"DownstreamPathTemplate": "/api/posts/{postId}",
"DownstreamScheme": "https",
"UpstreamPathTemplate": "/posts/{postId}",
"UpstreamHttpMethod": [ "Put" ],
"ServiceName": "product",
"LoadBalancer": "LeastConnection",
"UseServiceDiscovery": true
}
如此设置之后,Ocelot将从服务发现提供程序查找下游主机和端口,并通过可用服务平衡请求。
ACL Token
如果您使用Consul的ACL,Ocelot也支持添加X-Consul-Token头。 为了实现ACL访问,您必须添加下面的附加属性Token。
"ServiceDiscoveryProvider": {
"Host": "localhost",
"Port": 9500,
"Token": "footoken"
}
Ocelot会将这个令牌添加到用来发出请求的consul客户端,然后用于后续的每个请求。
Eureka
这个功能是作为问题 262的一部分被提出。为Netflix的Eureka服务发现提供程序添加支持。 主要原因是它是Steeltoe的一个关键部分,Steeltoe又与Pivotal有关! 反正背景很牛逼。
为了使Eureka工作,需要在 ocelot.json中添加如下配置..
"ServiceDiscoveryProvider": {
"Type": "Eureka"
}
遵循这里的指导,您可能还需要添加一些内容到appsettings.json。 例如,下面的json告诉steeltoe/关键服务在哪里寻找服务发现服务器,以及服务是否应该向其注册。
"eureka": {
"client": {
"serviceUrl": "http://localhost:8761/eureka/",
"shouldRegisterWithEureka": false,
"shouldFetchRegistry": true
}
}
我被告知,如果shouldRegisterWithEureka是false,那么shouldFetchRegistry将会默认为true,所以你不需要显式地将它留在这里。
现在Ocelot将在启动时注册所有必要的服务,并且如果配置有上述json,则会将其注册到Eureka。其中一项服务每30秒(默认)轮询一次Eureka获取最新的服务状态并将其保留在内存中。当Ocelot要求提供给定的服务时,它会从内存中检索出来,因此性能不是一个大问题。注意,此代码由Pivotal.Discovery.Client 的NuGet包提供,所以非常感谢他们的辛勤工作。
作者:loogn
链接:https://www.jianshu.com/p/1c431ac7d281
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Ocelot Consul ACL的更多相关文章
- 【微服务No.4】 API网关组件Ocelot+Consul
介绍: Ocelot是一个.NET API网关.该项目针对的是使用.NET运行微服务/面向服务架构的人员,他们需要一个统一的入口进入他们的系统.然而,它可以处理任何说HTTP并在ASP.NET Cor ...
- .net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡
大神张善友 分享过一篇 <.NET Core 在腾讯财付通的企业级应用开发实践>里面就是用.net core 和 Ocelot搭建的可扩展的高性能Api网关. Ocelot(http:// ...
- 负载均衡之Ocelot+Consul(配置文件注册服务)
继上篇 Ocellot 做负载均衡之后,本篇将记录 Ocelot + Consul 试验如何做服务发现和服务注册. 服务发现和服务注册的背景知识,一搜满街都是. 在此,我还是写下自己对这个术语的理解吧 ...
- 负载均衡之Ocelot+Consul(WebAPI注册服务)
上一篇 负载均衡之Ocelot+Consul(文件配置注册服务),介绍了如何通过json文件注册服务,本篇将学习如何通过web api 注册服务. 在展开学习过程之前,且先总结一下 consul服 ...
- Consul+Ocelot+Polly在.NetCore中使用(.NET5)-网关Ocelot+Consul
相关文章 Consul+Ocelot+Polly在.NetCore中使用(.NET5)-Consul服务注册,服务发现 Consul+Ocelot+Polly在.NetCore中使用(.NET5)-网 ...
- Ocelot+Consul 集群搭建实践
博客园已经有很多大神写过consul集群搭建了.大家都在玩,那我也不能托后退呢 不过自己研究下还是好的.毕竟每个人遇到的问题的不同 研究过才能说自己玩过consul,文章有部分名词解释是收集网络 Co ...
- Ocelot + Consul + Registrator 基于Docker 实现服务发现、服务自动注册
目录 1. Consul集群搭建 1.1 F&Q Consul官方推荐的host网络模式运行 2. Registrator服务注册工具 2.1 F&Q Registrator悬挂服务 ...
- 【3分钟就会系列】使用Ocelot+Consul搭建微服务吧!
一.什么Ocelot? API网关是一个服务器,是系统的唯一入口.API 网关一般放到微服务的最前端,并且要让API 网关变成由应用所发起的每个请求的入口.这样就可以明显的简化客户端实现和微服务应用程 ...
- Ocelot + Consul实践
关于Consul(https://www.consul.io)是一个分布式,高可用,支持多数据中心的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla ...
随机推荐
- 一个简单的语义分析算法:单步算法——Python实现
以前 曾经有一个人教会我一件事 要学会相信一些看似不可能的事 当你真的相信的时候 或许 没有什么事情是不可能的 ——<秦时明月•与子同归> 在编译原理的众多书籍中,陈述了很多生成语法树 ...
- 跟我学算法-tensorflow 实现神经网络
神经网络主要是存在一个前向传播的过程,我们的目的也是使得代价函数值最小化 采用的数据是minist数据,训练集为50000*28*28 测试集为10000*28*28 lable 为50000*10, ...
- 从邮件原理来看 postfix和docecot
好早好早以前计算机网络老师就教了说,邮件嘛,就三个协议smtp,imap,pop3. smtp 用来发邮件,imap,pop3用来收邮件.噢?是么.难道没有发现这句话有非常多的漏洞,根本就不能说清楚这 ...
- spring与IOC,ioc与di的关系
- php-yii-form标签
yii 标签用法(模板) (2013-08-14 17:28:19) 转载▼ 标签: it 分类: yii yii模板中的label标签 <?php echo $form->labelEx ...
- JS中深拷贝数组、对象、对象数组方法(转载)
我们在JS程序中需要进行频繁的变量赋值运算,对于字符串.布尔值等可直接使用赋值运算符 “=” 即可,但是对于数组.对象.对象数组的拷贝,我们需要理解更多的内容. 首先,我们需要了解JS的浅拷贝与深拷贝 ...
- 143. Reorder List(List)
Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do th ...
- unity在安卓中横屏闪退
竖屏没问题,横屏闪退 配置文件的AndoridManifest.xml横竖屏设置要和UNITY设置的一致,否则就会强退 UNITY横竖屏设置
- DNS处理模块dnspython
一.介绍 官网:http://www.dnspython.org/ https://pypi.org/project/dnspython/ dnspython是Python的DNS工具包.它支持几乎所 ...
- SpringBoot自定义拦截器实现
1.编写拦截器实现类,此类必须实现接口 HandlerInterceptor,然后重写里面需要的三个比较常用的方法,实现自己的业务逻辑代码 如:OneInterceptor package com ...