Ocelot网关统一查看多个微服务asp.net core项目的swagger API接口

简介: 文章来源于阿里云 MVP郭联钰。

0、前言

整体架构目录:ASP.NET Core分布式项目实战-目录


一、准备




前提需要下载安装consul,项目需要懂添加swagger


统一在网关中配置多个微服务的swagger,需要用到服务注册和发现,当然ocelot里面以及拥有了服务发现,因此需要把asp.net core项目先注册到consul中。


楼主的项目是用到consul。下面的案例的我都是放在window系统上面弄的,正式环境需要把项目都部署到自己的服务器上面。


1、讲解:什么叫服务注册和发现


微服务的框架体系中,服务发现是不能不提的一个模块。我相信了解或者熟悉微服务的童鞋应该都知道它的重要性。这里我只是简单的提一下,毕竟这不是我们的重点。我们看下面的一幅图片:



图中,客户端的一个接口,需要调用服务A-N。客户端必须要知道所有服务的网络位置的,以往的做法是配置是配置文件中,或者有些配置在数据库中。这里就带出几个问题:
  需要配置N个服务的网络位置,加大配置的复杂性
  服务的网络位置变化,都需要改变每个调用者的配置
  集群的情况下,难以做负载(反向代理的方式除外)



总结起来一句话:服务多了,配置很麻烦,问题多多


既然有这些问题,那么服务发现就是解决这些问题的。话说,怎么解决呢?我们再看一张图



与之前一张不同的是,加了个服务发现模块。图比较简单,这边文字描述下。服务A-N把当前自己的网络位置注册到服务发现模块(这里注册的意思就是告诉),服务发现就以K-V的方式记录下,K一般是服务名,V就是IP:PORT。服务发现模块定时的轮询查看这些服务能不能访问的了(这就是健康检查)。客户端在调用服务A-N的时候,就跑去服务发现模块问下它们的网络位置,然后再调用它们的服务。这样的方式是不是就可以解决上面的问题了呢?客户端完全不需要记录这些服务网络位置,客户端和服务端完全解耦!
这个过程大体是这样,当然服务发现模块没这么简单。里面包含的东西还很多。这样表述只是方便理解。
图中的服务发现模块基本上就是微服务架构中服务发现的作用了。



二、开始部署




首先先创建一个asp.net core web api 项目,我已经创建好了。然后添加nugut包 consul。


1、在项目里面的 Startup.cs 文件里面写上我们的服务注册,我把注册的信息放在了appsetting.json 文件里头了。




然后在ConfigureServices写上服务注册

Configure方法 写上服务注册。



ConsulApp方法:


注册服务 RegisterService



至此,consul注册已经OK。

2、配置swagger具体内容


我把swagger的微服务信息放在appsetting.json 里面了。


所以在startup.cs中的数据是从这里面获取的

ConfigureServices方法总填写如下:


其中里面的【】中的内容是可以替换的。


Configure 方法中填写以下内容:


至此,swagger配置完成。

3、接下来就要部署Ocelot网关里面的内容啦。


apigateway项目也是创建一个asp.net core web api 项目,然后添加swaggernuget包。


然后在 ConfigureServices方法中写上

然后在Configure 方法中写上:

路由表里面写的内容为:

自此配置完成。

1、先运行consul



打开浏览器url地址:consul运行成功。


2、运行userapi项目和apigateway项目。

在consul中发现多了一个userapi的服务注册


然后打开apigateway的swagger项目,可以看到userapi的接口,至此完成配置。

具体swagger怎么配置,可以参考我之前的文章(努力编写中)

参考网址:

http://www.cnblogs.com/focus-lei/p/9047410.html

文章转载自阿里云 MVP郭联钰,查看原文

目录
相关文章
|
10月前
|
人工智能 安全 API
Agent 工程师绕不开的必修课:API 网关 vs API 管理
本文探讨了“API管理”与“API网关”的起源、发展及差异,二者分别服务于API生命周期的不同阶段。API网关从流量网关演进至AI网关,承担运行时请求控制;API管理则从接口文档化发展到商业化平台,关注全生命周期治理。两者在实际应用中协同工作,通过分层架构和策略联动实现高效运营。未来,随着大模型应用的兴起,AI网关和MCP Server管理将成为新趋势,推动API技术迈入智能化和服务化的新阶段。
Agent 工程师绕不开的必修课:API 网关 vs API 管理
|
监控 Cloud Native 安全
基于 API 网关践行 API First 开发实践
API First 开发模式的核心在于:以 API 为先,将其视为“头等公民”,在构建应用、服务及集成之前,应优先定义并设计 API 及其配套。API First 作为一种相对较新的开发模式,它已逐渐流行并获得业内的广泛认可。
697 150
|
人工智能 监控 负载均衡
一文详述:AI 网关与 API 网关到底有什么区别?
近年来,AI发展迅猛,大模型成为推动业务创新的关键力量。企业面临如何安全管理和部署AI应用的挑战,需设计既能满足当前需求又可适应未来发展的基础架构。AI网关应运而生,在集成、管理和优化AI应用中扮演重要角色。本文探讨AI网关与API网关的区别,分析AI系统为何需要专门网关,并提供选择合适AI网关的建议。AI网关不仅支持多种模型,还具备高级安全性和性能优化功能,有助于企业在复杂环境中灵活应用AI技术。
916 2
|
负载均衡 监控 API
dotnet微服务之API网关Ocelot
Ocelot 是一个基于 .NET 的 API 网关,适用于微服务架构。本文介绍了如何创建一个 Web API 项目并使用 Ocelot 进行 API 请求路由、负载均衡等。通过配置 `ocelot.json` 和修改 `Program.cs`,实现对 `GoodApi` 和 `OrderApi` 两个项目的路由管理。最终,通过访问 `https://localhost:7122/good/Hello` 和 `https://localhost:7122/order/Hello` 验证配置成功。
354 1
dotnet微服务之API网关Ocelot
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
466 3
|
缓存 负载均衡 监控
微服务架构下的接口性能优化策略####
在当今快速迭代的软件开发领域,微服务架构以其灵活性和可扩展性成为众多企业的首选。然而,随着系统复杂性的增加,接口性能问题日益凸显,成为制约用户体验与系统稳定性的关键因素。本文旨在探讨微服务架构下接口性能优化的有效策略,通过具体案例分析,揭示从代码层面到系统架构层面的全方位优化路径,为开发者提供实战指南。 ####
|
安全 API
【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
253 0
|
6月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
6月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南