avatar
文章
7
标签
2
分类
6
首页
归档
标签
分类
相册
关于
LogoSpeakEase Blog
搜索
首页
归档
标签
分类
相册
关于

SpeakEase Blog

YARP + Nacos 动态服务发现与负载均衡实现
发表于2025-07-29|C#微服务ASP.NET Core| 条评论
YARP + Nacos 动态服务发现与负载均衡实现前言在微服务架构中,服务发现和负载均衡是核心组件。本文介绍如何结合 YARP (Yet Another Reverse Proxy) 和 Nacos 实现动态服务发现与负载均衡。 经过调研,发现 Nacos 官方库提供了 YARP + Nacos 的扩展,其核心是通过后台任务 BackgroundService 轮询 Nacos 服务列表来动态更新自定义的 IProxyConfigProvider。但这种方式过于复杂繁琐。 实际上,Nacos SDK 本身提供了服务订阅机制,通过 Timer 轮询 Nacos 服务列表并通知服务更改,具体可查看 ServiceInfoHolder、InstancesChangeNotifier、IEventListener 等核心类。本文将基于这种更简洁的方式实现。 环境准备Nacos 服务搭建本文使用 r-nacos,这是一个基于 Rust 编写的更轻量、性能更高的 Nacos 服务实现。 docker-compose.yml 配置: 123456789101112131415161718# ...
基于channel的异步事件总线
发表于2023-09-19|C#ASP.NET Core| 条评论
生成者/消费者概念编程模型通道是生成者/使用者概念编程模型的实现。 在此编程模型中,生成者异步生成数据,使用者异步使用该数据。 换句话说,此模型将数据从一方移交给另一方。 尝试将通道视为任何其他常见的泛型集合类型,例如 List。 主要区别在于,此集合管理同步,并通过工厂创建选项提供各种消耗模型。 这些选项控制通道的行为,例如允许它们存储的元素数,以及达到该限制时会发生什么情况,或者通道是由多个生成者还是多个使用者同时访问 channel简介channel提供了用于在生成者和使用者之间以异步方式传递数据的一组同步数据结构。 channel(管道)提供了有界通道和无界通道 无界通道该通道可以同时供任意数量的读取器和编写器使用。 或者,可以通过提供 UnboundedChannelOptions 实例在创建无限制通道时指定非默认行为。 该通道的容量不受限制,并且所有写入均以同步方式执行 有界通道 创建有界通道时,该通道将绑定到最大容量。 达到边界时,默认行为是通道异步阻止生成者,直到空间可用。 可以通过在创建通道时指定选项来配置此行为。 可以使用任何大于零的容量值...
.net core 自定义异常中间件
发表于2023-03-24|C#ASP.NET Core| 条评论
前言在程序设计中,我们会遇到各种各样的异常问题,一个好的异常处理解决方案能够帮助开发者快速的定位问题,也能够给用户更好的用户体验。 异常处理的几种方式1、通过异常过滤器捕获异常进行处理 2、自定义异常处理中间件 在这里我选择自定义异常处理中间件,中间件依托于请求管道运行,并且中间件的执行是有序的,与业务隔离开的,将中间件放置在请求管道开始能够捕获到全局异常。 异常中间件定义我们先新建一个类来保存结果信息 123456789101112public abstract class AjaxResponseBase { public string TargetUrl { get; set; } public bool Success { get; set; } public ErrorInfo Error { get; set; } public bool UnAuthorizedRequest { get; set; } public string Sta...
.net core 自定义授权策略提供程序进行权限验证
发表于2023-03-23|C#ASP.NET Core| 条评论
.net core 自定义授权策略提供程序进行权限验证在这之前先了解一下鉴权和授权的概念; 鉴权鉴权可以说是身份验证,身份验证是确定用户身份的过程; 在ASP.NET Core 中身份验证是由身份验证服务IAuthenticationService负责的,它被身份验证中间件使用, 身份验证服务会使用已注册的身份验证处理程序来完成与身份验证相关的操作。身份验证相关的操作包括:对用户身份进行验证,对未经身份验证的用户进行资源访问时做出响应。 身份验证处理程序及其配置选项身份验证处理程序包括CookieAuthenticationHandler 和 JwtBearerHandler,身份验证处理程序的注册 是在调用AddAuthentication之后扩展方法AddJwtBearer 和 AddCookie 提供的 身份验证处理程序会由实现IAuthenticationService 接口的AuthenticationService 的AuthenticateAsync 方法去调用 授权授权是确定用户是否有权访问资源的过程,这里先简单带过一下后面接着讲 授权方案授权方案包括 基于角色...
.net core 中 WebApiClientCore的使用
发表于2022-12-09|C#ASP.NET CoreWebApiClient.NET| 条评论
WebApiClient接口注册与选项1 配置文件中配置HttpApiOptions选项 配置示例 123456789"IUserApi": { "HttpHost": "http://www.webappiclient.com/", "UseParameterPropertyValidate": false, "UseReturnValuePropertyValidate": false, "JsonSerializeOptions": { "IgnoreNullValues": true, "WriteIndented": false } } 2 Service注册 示例 1234567services .ConfigureHttpApi<IUserApi>(Configuration.GetSection(nameof(I...
关于c#多线程中的几个信号量
发表于2022-05-29|C#ASP.NET CoreWebApiClient| 条评论
先言信号量在c#多线程通信中主要用来向阻塞的线程传达信号从而使得阻塞线程继续执行 多线程信号(线程交互):通常是指线程必须等待一个线程或者多个线程通知交互(释放信号)才可以继续执行 在c#中信号量主要有这几个 AutoResetEvent,ManualResetEvent,CountdownEvent,EventWaitHandle,Semaphore 信号量信号量状态,有信号状态即不会阻塞线程、无信号状态会去阻塞线程。wainOne方法会阻塞线程,当waitOne方法具有阻塞时间量的时候则无需等待信号量的释放,等时间到了会去自动执行waitOne方法后的语句 AutoResetEvent AutoResetEvent 在释放信号量后,会默认设置为无信号状态。AutoResetEvent 构造函数会传递一个initialState boolean 类型的参数,参数为false 时 需要主动去传递信号量,传递信号量之后将重新设置为无信号状态。参数为ture 时会自动设置为有信号状态,大体意思就是,会默认执行阻塞线程,不需要阻塞线程收到信号量才会执 行(不会阻塞调用线程)。在参数为...
Expression表达式树--无聊写了个表达式树的小轮子用于日常使用
发表于2021-10-23|C#| 条评论
在刚开始敲代码的时候遇到过这样的事:查询条件多,查询条件不唯一,这个时候需要我们去写非常多的if-else 以及在where写冗长的lamada式 这时候我们可以通过Expression构建动态表达式树来生成所谓的lamada表达式 附上教程;https://ldqk.xyz/1795?kw=%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%A0%91 public class Student { [Expression(Wheretype.Equal,Logictype.And)] public string Banji { get; set; } [Expression(Wheretype.Equal, Logictype.And)] public string id { get; set; } [Expression(Wheretype.Like, Logictype.And)] public string name { get; set; } [Expres...
avatar
SpeakEase
热爱生活与技术的博主
文章
7
标签
2
分类
6
Follow Me
公告
欢迎来到我的博客!记录生活的小确幸 ✨
最新文章
YARP + Nacos 动态服务发现与负载均衡实现2025-07-29
基于channel的异步事件总线2023-09-19
.net core 自定义异常中间件2023-03-24
.net core 自定义授权策略提供程序进行权限验证2023-03-23
.net core 中 WebApiClientCore的使用2022-12-09
分类
  • C#7
    • ASP.NET Core5
      • WebApiClient2
        • .NET1
    • 微服务1
      • ASP.NET Core1
标签
.NET 技术
归档
  • 七月 2025 1
  • 九月 2023 1
  • 三月 2023 2
  • 十二月 2022 1
  • 五月 2022 1
  • 十月 2021 1
网站信息
文章数目 :
7
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By SpeakEase
友情链接:Butterfly
搜索
数据加载中