首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Dubbo 源码分析 - 集群容错之 Router

上一篇文章分析了集群容错的第一部分 -- 服务目录 Directory。服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由。上一篇文章关于服务路由相关逻辑没有细致分析,一笔带过了,本篇文章将对此进行详细的分析。首先,先来介绍一下服务目录是什么。服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。Dubbo 目前提供了三种服务路由实现,分别为条件路由 ConditionRouter、脚本路由 ScriptRouter 和标签路由 TagRouter。其中条件路由是我们最常使用的,标签路由暂未在我所分析的 2.6.4 版本中提供,该实现会在 2.7.0 版本中提供。本篇文章将分析条件路由相关源码,脚本路由和标签路由这里就不分析了。下面进入正题。

01

ASP.NET Core路由中间件[1]: 终结点与URL的映射

借助路由系统提供的请求URL模式与对应终结点(Endpoint)之间的映射关系,我们可以将具有相同URL模式的请求分发给应用的终结点进行处理。ASP.NET Core的路由是通过EndpointRoutingMiddleware和EndpointMiddleware这两个中间件协作完成的,它们在ASP.NET Core平台上具有举足轻重的地位,因为ASP.NET Core MVC框架就建立在这个中间件之上。可以将一个ASP.NET Core应用视为一组终结点的组合,所谓的终结点可以理解为能够通过HTTP请求的形式访问的远程服务。每个终结点通过RequestDelegate对象来处理路由过来的请求。ASP.NET Core的路由是通过EndpointRoutingMiddleware和EndpointMiddleware这两个中间件来实现的,这两个中间件类型都定义在NuGet包“Microsoft.AspNetCore.Routing”中。为了使读者对实现在RouterMiddleware的路由功能有一个大体的认识,下面先演示几个简单的实例。

03
领券