前面提到微服务方案,介绍了该东西,推荐一篇介绍博文https://www.cnblogs.com/jesse2013/p/net-core-apigateway-ocelot-docs.html

我要说的是Ocelot服务发现方案,其自身已经集成了Consul,Eureka服务发现,其项目名称分别是Ocelot.Provider.Consul,Ocelot.Provider.Eureka。

配置使用方法:

GlobalConfiguration中需要以下内容。提供程序是必需的,如果您未指定主机和端口,则将使用Consul默认值。

  1. "ServiceDiscoveryProvider": {
  2. "Host": "localhost",
  3. "Port": 8500,
  4. "Type": "Consul"
  5. }

由于一些原因,我是不建议使用的,但是不得不说这2个是成熟稳定的,对于一般的中小项目推荐使用etcd.Ocelot并没有直接集成它,但是完全可以按照Ocelot.Provider.Consul集成,Git上面已经存在了https://github.com/BuiltCloud/Ocelot.Provider.Etcd.git

对应的

GlobalConfiguration中需要以下内容。提供程序是必需的,如果您未指定主机和端口,则将使用默认值。

  1. "ServiceDiscoveryProvider": {
  2. "Host": "localhost",
  3. "Port": 8500,
  4. "Type": "Etcd"
  5. }

类型这里还可以设置PollEtcd,这样内部会定时刷新服务列表,因为Ocelot注册单例,每次获取只是获取的服务列表

由于etcd是底层建设,所以我扩展了项目,提供了etcd对服务注册和发现。

Ocelot.Provider.Etcd项目采用了Consul的方法,当前服务发现是基于单节点的,配置的是IP和端口。

所以我再此扩展了Ocelot.Provider.Etcd,里面重写了服务发现提供类,并且扩展IOcelotBuilder。可以通过单节点启动后,内部定时间隔刷新集群的地址,一旦该单节点失效,内部将根据获取的集群节点,立即重新建立一个连接。

etcd服务注册发现项目:https://github.com/jinyuttt/etcd.Provider.Service.git

Ocelot.Provider.Etcd项目扩展:https://github.com/jinyuttt/Ocelot.Provider.Etcd.Extensions

上面项目都已经上传nuget

完美!!!!!!!!!哈哈哈

c# 微服务Ocelot网关服务发现的更多相关文章

  1. .Net Core with 微服务 - Ocelot 网关

    上一次我们通过一张架构图(.Net Core with 微服务 - 架构图)来讲述了微服务的结构,分层等内容.从现在开始我们开始慢慢搭建一个最简单的微服务架构.这次我们先用几个简单的 web api ...

  2. Spring Cloud微服务中网关服务是如何实现的?(Zuul篇)

    导读 我们知道在基于Spring Cloud的微服务体系中,各个微服务除了在内部提供服务外,有些服务接口还需要直接提供给客户端,如Andirod.IOS.H5等等. 而一个很尴尬的境地是,如果直接将提 ...

  3. 庐山真面目之六微服务架构Consul集群、Ocelot网关集群和Nginx版本实现

    庐山真面目之六微服务架构Consul集群.Ocelot网关集群和Nginx版本实现 一.简介      在上一篇文章<庐山真面目之五微服务架构Consul集群.Ocelot网关和Nginx版本实 ...

  4. 庐山真面目之七微服务架构Consul集群、Ocelot网关集群和IdentityServer4版本实现

    庐山真面目之七微服务架构Consul集群.Ocelot网关集群和IdentityServer4版本实现 一.简介      在上一篇文章<庐山真面目之六微服务架构Consul集群.Ocelot网 ...

  5. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

  6. asp.net core系列 60 Ocelot 构建服务认证示例

    一.概述 在Ocelot中,为了保护下游api资源,用户访问时需要进行认证鉴权,这需要在Ocelot 网关中添加认证服务.添加认证后,ReRoutes路由会进行身份验证,并使用Ocelot的基于声明的 ...

  7. 网关服务Kong和konga介绍安装使用教程

    介绍 Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用.易扩展的,由Mashape公司开源的API Gateway项目.Kong是基于NGINX和Apache Cassa ...

  8. Ocelot网关+IdentityServer4实现API权限认证

    Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...

  9. .NET Core微服务之基于Ocelot实现API网关服务

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.啥是API网关? API 网关一般放到微服务的最前端,并且要让API 网关变成由应用所发起的每个请求的入口.这样就可以明显的简化客户端 ...

随机推荐

  1. resolver - 解析器(resolver) 配置文件

    总览 (SYNOPSIS) /etc/resolv.conf 描述 (DESCRIPTION) 解析器(resolver) 是 C 函数库 中 的 一组 例程, 用于 访问 Internet 域名系统 ...

  2. 2019CCPC网络预选赛 1003 K-th occurrence 后缀自动机 + 二分 + 主席树

    题意:给你一个长度为n的字符串,有m次询问,每次询问l到r的子串在原串中第k次出现的位置,如果没有输出-1.n, m均为1e5级别. 思路:后悔没学后缀数组QAQ,其实只要学过后缀数组这个题还是比较好 ...

  3. VMware Tool的新手简单安装

    1.打开工具栏的虚拟机,点击安装VMware tool2.打开根目录的media文件夹,打开用户名命名的文件夹,复制VMxxx.tar.gz的压缩包3.粘贴到Home,4.在终端输入tar -zxvf ...

  4. 08.@Scheduled定时任务、整合jdbcTemplate、mybatis区分多数据源

    @Scheduled注解执行定时任务 import org.springframework.scheduling.annotation.Scheduled; import org.springfram ...

  5. postman自动化接口测试

    背景描述 有一个项目要使用postman进行接口测试,接口所需参数有: appid: 应用标识: sign:请求签名,需要使用HMACSHA1加密算法计算,签名串是:{appid}${url}${st ...

  6. Vue-cli 项目设置每个页面标题

    页面标题 在vue-router页面配置中添加meta的title信息,配合vue-router的beforeEach注册一个前置守卫用户获取到页面配置的title const title = '移动 ...

  7. python环境变量

    下载并升级更新pip python -m pip install -U pip 变量名:PY_HOME   变量值:python路径 path:win10加在最后(记得用;号隔开):win7加在前面记 ...

  8. Debug模式自定义NSlog

    #ifdef DEBUG # define DLog(fmt, ...) NSLog((@"[文件名:%s]\n" "[函数名:%s]\n" "[行号 ...

  9. iOS 常用代码之 UICollectionView

    记一下 不用每次都从0开始写,人生苦短 ,省点时间给自己 之前必须完成相关注册: . cell . 头部和尾部 [self.hotAndHistoryCollectionV registerNib:[ ...

  10. 4412 i2c驱动

    1.Linux主机驱动和外设驱动分离思想 外设驱动→API→主机驱动→板机逻辑--具体的i2c设备(camera,ts,eeprom等等) 2.主机驱动 根据控制器硬件手册,操作具体的寄存器,产生波形 ...