Consul+Ocelot+.Net Core Api+IdentityServer4(三)

ASP.NET Core微服务框架Ocelot+Consul+IdentityServer4实战演练 一、背景介绍 API网关的流行源于最近几年移动应用与企业间接口对接的兴起,使得原来单一的PC客户端,变化到PC客户端、各种浏览器、手机移动端及智能终端等。同时系统之间大部分都不是单独运行,经常会涉及与其他系统对接、共享数据的需求。随着微服务架构概念的提出,API网关成为了微服务架构的一个标配组件。随着业务快速发展,面向手机移动应用业务越来越多,为了减少客户端与服务的耦合,节约后端微服务的开发成... 阅读详情

服务项目建立

新建一个 Asp.net core Web Api 项目,取名为 ApiA (ApiB的配置与此相同)
在这里插入图片描述
引入 Consul Nuget 包
在这里插入图片描述

Consul 注册及健康检查

修改 appsettings.json,添加相关配置节点

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "urls": "http://localhost:6001", //当前服务的网址,根据项目属性中配置的进行修改
  "consul_urls": "http://localhost:8500", //Consul服务的地址
  "service_id": "1", //当前服务的ID
  "service_name": "ApiA" //当前服务的名称ApiA或ApiB
}

添加公共帮助类

新建一个类 PublicHelper.cs,内容如下

public class PublicHelper
{
    /// <summary>
    /// 向Consule服务注册
    /// </summary>
    /// <param name="configuration"></param>
    public static void RegSerToConsul(IConfiguration configuration)
    {
        string urls = configuration["urls"].Trim('/'); // 当前服务的网址
        string jconsulUrls = configuration["consul_urls"]; // Consul服务的网址
        string serviceId = configuration["service_id"]; // 当前服务的ID
        string serviceName = configuration["service_name"]; //当前服务的名称

        //健康检查连接资料
        var client = new ConsulClient(_ => _.Address = new Uri(jconsulUrls));
        var checkAgent = new AgentServiceCheck()
        {
            DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5), // 启动后5秒开始向Consul服务注册
            Interval = TimeSpan.FromSeconds(20), // 间隔20秒健康检查一次当前服务是否健康
            HTTP = $"{urls}/api/Health", //健康检查的接口
            Timeout = TimeSpan.FromSeconds(10) //超时时间
        };

        string[] urlArr = urls.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
        int port = 80;
        if (urlArr.Length > 2)
        {
            port = int.Parse(urlArr[2]);
        }
        string address = urlArr[1].TrimStart("//".ToArray());

        //当前服务的相关连接信息
        AgentServiceRegistration registration = new AgentServiceRegistration()
        {
            Checks = new[] { checkAgent },
            ID = $"{serviceName}-{serviceId}",
            Name = serviceName,
            Address = address,
            Port = port
        };
        client.Agent.ServiceRegister(registration).Wait();
    }
}

修改 Startup.cs ,进行服务注册

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseHttpsRedirection();

    app.UseRouting();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
    
    //调用公共帮助类的注册方法
    PublicHelper.RegSerToConsul(Configuration);
}

添加健康检查接口

新建一个Api控制器,命名HealthConroller

namespace ApiA.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class HealthController : ControllerBase
    {
        public string Get() => "ok";
    }
}

添加测试接口

新建一个Api控制器,命名为 UserInfoController

namespace ApiA.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class UserInfoController : ControllerBase
    {
        public JsonResult Post()
        {
            return new JsonResult(new
            {
                user_no = "AdminA",
                user_name = "管理员A",
                sex = "男",
                tel = "13000000000"
            });
        }
    }
}

至此项目配置完成,已可以通过Ocelot网关进行访问。

验证测试

  1. 同时启动 OcelotService、ApiA、ApiB,查看Consul-ui http://localhost:8500 是否注册成功
    Consul注册
    可以看到ApiA和ApiB已注册成功
  2. 通过Ocelot网关访问ApiA的接口UserInfo
    Ocelot网关访问
    通过上图,可以看到能过Ocelot网关访问ApiA项目的接口UserInfo成功
ASP.NET Core微服务架构之Ocelot从基础入门到实战 一、课程介绍 微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 随着.NET Core的关注度持续上升, 微服务及云原生应用开发上采用.NET Core也越来越多,... 阅读详情

相关推荐

微服务》》NetCore Consul动态伸缩+Ocelot 网关 缓存 自定义缓存 + 限流、熔断、超时 等服务治理 + ids4鉴权

【代码】NetCore Consul动态伸缩+Ocelot 网关。

Kaizen的博客 759

Consul+Ocelot+.Net Core Api+IdentityServer4(四)

IdentityServer4配置服务项目建立修改配置文件读取IdentityServer4配置信息修改Startup.cs类,启动IdentityServer4及向Consul注册修改ConfigureServices方法Configure方法

redmethod的博客 564

ASP.NET-Core-5-with-IdentityServer4-JWT:使用Identity Server 4和.NET Core 5以及通过JWT保护API服务器来开发令牌服务器

保护MicroService API:具有IdentityServer4 JWT的ASP.NET Core 5 使用Identity Server 4和.NET Core 5以及带有JWT的Protecting API服务器来开发令牌服务器。 实施的技术: ASP.NET Core 5.0 身份服务器4 JwtBearer 招摇UI 政策和数据保护: 在IDENTITYSERVER4中扩展身份以管理ASP.NET CORE中的用户 ASP.NET CORE中使用IDENTITYSERVER4的授权策略和数据保护 这些策略是在资源服务器(API服务器)上配置的,并且ASP.NET Core IdentityServer4将用户角色配置为与这些角色匹配。

.NET Core + Ocelot + IdentityServer4 + Consul 基础架构实现

先决条件 关于 Ocelot 针对使用 .NET 开发微服务架构或者面向服务架构提供一个统一访问系统的组件。 参考 本文将使用 Ocelot 构建统一入口的 Gateway。 关于 IdentityServer4 IdentityServer4 是一个 OpenID Connect 和 OAuth 2.0 框架用于 ASP.NET Core 。IdentityServer4 在你的应用程序...

weixin_30908103的博客 889

DBeaver连接ClickHouse保姆级教程:从安装到成功测试(附驱动下载问题解决)

本文提供了一份详细的DBeaver连接ClickHouse实战指南,重点解决了驱动下载失败等常见问题。文章从环境准备、DBeaver安装讲起,详细阐述了手动配置ClickHouse驱动的可靠方案,并逐步指导完成连接配置与测试,最后介绍了基础操作与查询优化技巧,旨在帮助用户高效完成连接并快速上手使用。

pink的博客 879

HDLBits答案汇总

前言 该博客为本人做HDLBits习题时的心得记录总结,欢迎大家一起交流进步。 HDLBits网站链接 Verilog Language Basics Vectors Modules:Hierarchy Procedures More Verilog Features Circuits Combinational Logic Basic gates Multiplexers Arithmetic Circuits Karnaugh Map to Circuit Sequential Logic Latche

谦豫 9万+

.net core学习微服务之ocelot集成IdentityServer4

注意:AddIdentityServerAuthentication方法第一个参数要和ocelot中的AuthenticationProviderKey一致,options.ApiName要和id4服务config定义的ApiResources的Name一致。具体属性参考官网,默认会新增alice和bob两个测试用户,这里客户端我就写了一个,使用的授权码模式,简单来说就是用户授权通过后就可以获取到access_token,然后根据access_token去访问受保护的资源。

qq_44994764的博客 1210

【超简单】一文入门在Ubuntu系统使用GitHub

Github是基于git的代码仓库,对于开发项目的科研者或者工程师,代码仓库都是不可多得的版本控制与多端编程工具,今天这篇文章带你轻松Github入门,简单的项目本文的操作足矣。

a13337649640的博客 5236

Ocelot+Consul之负载均衡的健康检查

Ocelot+Consul之负载均衡的健康检查

wjj1991的博客 520

中小公司无线组网实战:用一台H3C AC和普通三层交换,实现办公网AP统一管理

本文详细介绍了中小型企业如何利用H3C AC控制器与普通三层交换机实现无线AP统一管理的实战方案。通过VLAN规划、DHCP配置和AC控制器设置,构建经济高效的办公网络,解决信号覆盖和连接稳定性问题,特别适合50-200人规模的企业部署。

weixin_42531516的博客 382

用R来做一个临床研究亚组分析的森林图

在编程语言里R语言最强大的功能是做图功能,我们知道在做Meta分析的时候会需要做森林图,实际上我们在很多临床研究中也经常看到森林图,主要是亚组分析的森林图,比如下面这篇文章里的一个森林图: 今天就教教大家怎么用R语言来做上面这种亚组分析的森林图 1. 在Excel里编辑好数据,按照下面的格式整理,保存为csv格式 2. 下载安装R跟Rstudio R软件的下载地址: https://mirrors.tuna.tsinghua.edu.cn/CRAN/ Rstudio下

Mrrunsen的博客 5340

在.NET微服务架构中实现服务发现与网关:Consul与Ocelot的简单集成实践

在微服务架构中,客户端通常通过网关访问服务。为了提高系统的可用性和扩展性,网关需要实现动态路由和负载均衡。本文将介绍如何使用Consul、Ocelot、.NET和Docker这四种技术来实现这一目标。

洪剑峰的博客 2673

为YOLOv11引入加权双向特征金字塔(BiFPN)

本文介绍了将BiFPN应用于YOLOv11模型以提升边缘设备上小目标检测精度的实践。针对传统FPN在特征融合时的信息丢失问题,采用带可学习权重的BiFPN结构进行改造,实现了不同层级特征的动态融合。重点阐述了WeightedFeatureFusion模块的实现细节、neck结构改造方法及训练部署注意事项。实验表明,该改进使小目标AP提升3.1%,参数量仅增加5%,在精度和效率间取得良好平衡。文章还分享了权重初始化、归一化处理等实用技巧,并强调需根据数据特性评估改进效果,重新计算anchor等关键点。

as1225120794的博客 349

NET Core + Ocelot + IdentityServer4 + Consul

NET Core + Ocelot + IdentityServer4 + Consul 原文:NET Core + Ocelot + IdentityServer4 + Consul.NET Core + Ocelot + IdentityServer4 + Consul 基础架构实现 先决条件 关于 Ocelot 针对使...

weixin_30879833的博客 203

《RT-Thread入门与实战》第1章:RT-Thread概述与核心优势

2006年由熊谱翔发起2017年成立上海睿赛德电子科技公司2021年成为国内首个通过ISO 26262 ASIL-D认证的RTOS。

2301_79143213的博客 986

Unity零基础到入门 ☀️| 近万字教程 对 Unity 中的 动画系统基础 全面解析+实战演练,你确定要错过吗?

Unity动画系统,Animation,Animator。 本文对Unity中的动画系统基础做了一个全面解析,还包括实战演练。近万字教程让你对Unity的动画系统有一个系统的了解,敬请品尝!

努力前行,总会成为自己心中的那道光 9万+

集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo的入门级微服务开发框架

Github源代码地址 https://github.com/PeyShine/Demo.MicroServer Apollo配置中心 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 由于各个项目配置都需要读取基础的配置信息,这边在内网的Centos(101)上部署了Apollo的环境,并为项目添加了一些基础配置信息,配置如图 Consul C.

Peyshine 1265

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

.NET CORE 微服务架构--网关篇(Ocelot)

Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成,下面我们会对这些功能的配置一一进行说明。 介绍 简单的来说Ocelot是一堆的asp.net coremiddleware组成的一个管道。当它拿到请求之后会用一个request builder来构造一个HttpRequestMessage发到下游.

落花流水 6862

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【转】.NET Core + Ocelot + IdentityServer4 + Consul 基础架构实现

作者:Zhang_Xiang 原文地址:.NET Core + Ocelot + IdentityServer4 + Consul 基础架构实现 先决条件 关于 Ocelot 针对使用 .NET 开发微服务架构或者面向服务架构提供一个统一访问系统的组件。参考 本文将使用 Ocelot 构建统一入口的 Gateway。 关于 IdentityServer4 ...

weixin_30687587的博客 175

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

.NET Core + Ocelot + IdentityServer4 + Consul 基础架构实现 ...

.NET Core + Ocelot + IdentityServer4 + Consul 基础架构实现 先决条件 关于 Ocelot 针对使用 .NET 开发微服务架构或者面向服务架构提供一个统一访问系统的组件。参考 本文将使用 Ocelot 构建统一入口的 Gateway。 关于 IdentityServer4 IdentityServ...

测试0901-1 399

Consul+Ocelot+.Net Core Api+IdentityServer4(二)

Ocelot 配置

redmethod的博客 355

[Hei-Ocelot-Gateway ].Net Core Api网关Ocelot的开箱即用版本

写在前面很多neter都有在用Ocelot做Api网关,但是Ocelot又不像kong或者其他网关一样,开箱即用。它需要你单独开一个web项目来部署,这样很多同学都在做重复的事了。这里...

dotNET跨平台 467

如何快速上手Ocelot:.NET API网关完整安装与使用指南

Ocelot是一个专为ASP.NET设计的开源API网关,支持.NET 6.0、7.0和8.0框架。它能够帮助开发者轻松实现路由、负载均衡、认证授权等功能,是构建微服务架构的理想选择。本文将带你快速掌握Ocelot的安装配置与基础使用方法。 ## 🚀 准备工作:环境要求 在开始前,请确保你的开发环境满足以下条件: - .NET 6.0/7.0/8.0 SDK - ASP.NET Core运行

gitblog_00490的博客 464
上一篇: Consul+Ocelot+.Net Core Api+IdentityServer4(二)
下一篇: Consul+Ocelot+.Net Core Api+IdentityServer4(四)
redmethod
博客等级 码龄14年 1粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值