首页 > 其他分享 >feign.net 使用consul服务发现 配置

feign.net 使用consul服务发现 配置

时间:2024-04-03 15:15:21浏览次数:18  
标签:builder feign app var Services using net consul

所有依赖

 

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <InvariantGlobalization>true</InvariantGlobalization>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Feign" Version="1.5.2" />
    <PackageReference Include="Feign.DependencyInjection" Version="1.5.2" />
    <PackageReference Include="Feign.Steeltoe" Version="1.5.1" />
    <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.3" />
    <PackageReference Include="Serilog" Version="3.1.1" />
    <PackageReference Include="Serilog.Sinks.Console" Version="5.0.0" />
    <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
    <PackageReference Include="Steeltoe.Discovery.Consul" Version="3.2.5" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
  </ItemGroup>


</Project>

appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },

  "consul": {
    "host": "127.0.0.1",
    "port": 8500,
    "token":"ca6a320c-f654-5d82-bba7-3df712aee755",
    "discovery": {
      "enabled": false,
      "register": false,
      "port": "5188",
      "ipAddress": "127.0.0.1",
      "preferIpAddress": true
    }
  },
  "AllowedHosts": "*"
}

 

 

// Program.cs

 

using Feign;
using Feign.DependencyInjection;
using Microsoft.AspNetCore.Mvc;
using Project;
using Steeltoe.Discovery.Client;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(); 
// 使用包 Steeltoe.Discovery.Consul 3.2.5
builder.Services.AddDiscoveryClient(builder.Configuration);

IDependencyInjectionFeignBuilder feignBuilder = builder.Services.AddFeignClients();


feignBuilder.AddSteeltoe();
var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    // app.UseSwaggerUI();
}

app.UseHttpsRedirection();


app.MapGet("/paytest", async (  [FromServices] ITestService testService ) =>
    { 
        // 非常好,终于实现
        var res = await  testService.GetByIdAsync();
        return res;
    })

    .WithName("GetWeatherForecast")
    .WithOpenApi();

app.Run();

 

ITestService

using Feign;

namespace Project;
[FeignClient("weightService")]
[NonFeignClient]
public interface ITestParentService<TModel>
{
    /// <summary>
    /// async get
    /// </summary>
    /// <returns></returns>
    [RequestMapping("", Method = "GET")]
    [MethodId("GetAsync")]
    Task<TModel> GetByIdAsync();
}
[RequestMapping("")]
public interface ITestService:ITestParentService<string>
{
}

 

标签:builder,feign,app,var,Services,using,net,consul
From: https://www.cnblogs.com/liliyou/p/18112717

相关文章

  • .NET 代理模式(二) 动态代理-DynamicProxy
    前言我们都知道,在.NET中实现动态代理AOP有多种方案,也有很多框架支持,但大多框架的实现原理都是通过Emit配合Activator一起使用,从IL级别上实现动态代理。其实在.NET中有一个更为简单的方案可以实现动态代理,那就是DispatchProxy类。DispatchProxy类DispatchProxy类是.NETCor......
  • .NET Aspire 外部参数 (External parameters)
    .NETAspire外部参数(Externalparameters)https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/external-parameters环境提供应用运行的上下文。Parameter提供了在应用运行中请求外部值的功能。当应用本地运行的时候,Parameter可以为应用提供值,或者在应用部署的......
  • 基于donetcore/CAP实现分布式事务一致性
    官网:https://cap.dotnetcore.xyz相关介绍CAP是一个EventBus,同时也是一个在微服务或者SOA系统中解决分布式事务问题的一个框架。它有助于创建可扩展,可靠并且易于更改的微服务系统。在微软的 eShop 微服务示例项目中,推荐使用CAP作为生产环境可用的EventBus。什么是Event......
  • 入门 .NET Aspire: 使用 .NET 简化云原生应用开发
    入门.NETAspire:使用.NET简化云原生应用开发https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8/经历多个版本之后,我们一直在朝着我们正在进行的理想目标之一取得进展。使.NET成为全球构建云原生应用......
  • ENet——实时语义分割的深度神经网络架构与代码实现
    概述在移动设备上执行实时像素级分割任务具有重要意义。现有的基于分割的深度神经网络需要大量的浮点运算,并且通常需要较长时间才能投入使用。本文提出的ENet架构旨在减少潜在的计算负担。ENet在保持或提高分割精度的同时,相比现有的分割网络,速度提升了18倍,参数量减少了79倍......
  • 记录一次解决跨域问题解决过程。 strict-origin-when-cross-origin,net::ERR_FAILED, No
    事情是这样的,vue项目本地启动可以正常连接后端端口访问,部署到nginx上只有就无法访问,显示跨域问题  于是查看后端日志 啥都没有,觉得肯定是nginx的问题,怎么配置都没用, location/{ roothtml; indexindex.htmlindex.htm; add_header'Access-Control-Allow-O......
  • 在stable diffusion中如何分辨lora、大模型、controlnet
     LoRA(LowRankAdaptation)StableDiffusionLoRA是微软的研究人员为了解决大语言模型微调而开发的一项技术,它是一个多模态语言-图像模型,LORA可以学习将其语言表征迁移到图像modal中从而获得跨模态语义一致的表示。LoRA模型是Stable-Diffusion中的一个插件,仅需要少......
  • Advanced .Net Debugging 6:程序集加载器
    一、简介这是我的《Advanced.NetDebugging》这个系列的第六篇文章。这篇文章的内容是原书的第二部分的【调试实战】的第四章。这章主要讲的是程序集加载器,比如:CLR加载器简介、简单的程序集加载故障、加载上下文故障、互用性与DllNotFoundException和轻量级代码生成的......
  • .Net单元测试xUnit和集成测试指南(1)
    引言在现代化的软件开发中,单元测试和集成测试是确保代码质量和可靠性的关键部分。ASP.NETCore社区内提供了强大的单元测试框架,xUnit是其中之一,它提供了简单、清晰和强大的测试功能,编写单元测试有许多优点;有助于回归、提供文档及辅助良好的设计。下面几节我们来深入浅出探讨如......
  • (保姆级)webserver的创建、部署、调用(使用.net core web+.net core Api+Linxu实现)
    ​版本为Vs2022框架.net6一、webserver的创建参考链接:netcore建立webservice项目_.netcorewebservice-CSDN博客该参考链接作者使用的是.net5,这边是.net6在框架上还是有点小区别的1、使用.netcoreweb创建web服务 2、通过NuGet安装SoapCore 3、创建业务服务文......