开发者社区 > 云原生 > 微服务 > 正文

MSE微服务引擎里流量来时,自定义插件和路由哪个先生效?

请教一下,流量来时,自定义插件和路由哪个先生效,我想通过自定义插件生成某个header然后再走路由规则(根据header值路由),这个可行吗?

展开
收起
饭也太好吃了 2023-06-20 14:51:39 117 0
11 条回答
写回答
取消 提交回答
  • 在MSE微服务引擎中,对于流量的处理顺序是:
    自定义插件 -> 路由规则
    即流量首先会经过自定义插件的处理,然后再根据路由规则进行转发。
    image.png

    因此,如果要在路由之前添加自定义header,可以通过在自定义插件中实现:

    1. 自定义一个插件,实现AbstractGatewayFilterFactory
    2. 在apply方法中,对请求添加自定义header
      java
      @Override
      public GatewayFilter apply(Config config) {
      return (exchange, chain) -> {
      exchange.getRequest().getHeaders().add("customHeader", "value");
      return chain.filter(exchange);
      }
      }
    3. 在路由规则的filter中引用该自定义插件
      yaml
    • id: add_header
      uri: /somePath
      filters:
      • AddCustomHeader
    1. 然后在该路由的predicates中根据自定义header路由
      yaml
    • id: route_custom
      uri: /somePath
      predicates:
      • Header=customHeader, value
        filters:
      • AddCustomHeader
        通过这种方式,可以先通过自定义插件处理请求,再根据修改后的请求选择不同路由。
        所以自定义插件和路由顺序是可以实现自定义header控制路由的方案。
    2023-10-25 17:39:20
    赞同 展开评论 打赏
  • 阿里云MSE微服务引擎中,使用自定义插件是可行的,插件是在路由前生效的。

    若有多个自定义插件,也可以设置这些插件的优先级。
    image.png
    因此,如果您想通过自定义插件生成某个header并根据该header值进行路由,先创建自定义插件即可。是可行的

    ——来自于阿里云售后支持

    2023-10-23 02:52:31
    赞同 展开评论 打赏
  • MSE微服务引擎中的自定义插件和路由的生效顺序并没有固定的先后关系,具体生效顺序取决于具体的实现方式和配置。

    通常情况下,自定义插件和路由可以通过配置文件或代码实现的方式添加到MSE微服务引擎中。它们的生效顺序通常取决于配置和注册顺序。

    如果自定义插件和路由都在同一个配置文件中进行配置,那么它们的生效顺序可能受配置文件的加载顺序影响。如果自定义插件和路由在不同的配置文件中进行配置,那么它们的生效顺序可能受配置文件的加载顺序以及配置中的优先级设置影响。

    另外,如果自定义插件和路由都是通过代码实现并注册到MSE微服务引擎中,那么它们的生效顺序可能受代码执行顺序和注册顺序的影响。

    总之,具体生效顺序取决于具体的实现方式和配置,您需要查阅具体的文档或参考代码实现来确定生效顺序。image.png

    2023-10-18 14:30:08
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在 MSE 微服务引擎中,当流量进入引擎时,会首先经过路由模块进行路由匹配,根据路由规则确定请求应该被转发到哪个服务上。如果请求匹配到多个路由规则,则根据权重等因素进行选择。
    在路由模块之后,请求会进入插件模块。在这里,你可以编写自定义插件来处理请求和响应。在插件中,你可以通过修改请求头、响应头等方式来影响请求的路由和处理。
    因此,如果你想通过自定义插件生成某个 header 然后再走路由规则,这是可行的。你可以在自定义插件中添加相应的代码来生成 header,然后在路由模块中根据 header 值进行路由。不过,要注意的是,如果在插件中修改了请求头,需要确保路由模块能够正确识别并使用这些修改后的请求头。

    2023-10-17 21:22:52
    赞同 展开评论 打赏
  • 在MSE(微服务引擎)中,自定义插件和路由的执行顺序是自定义插件先生效,然后再执行路由规则。

    当流量进入MSE时,它会首先经过自定义插件的处理,您可以在自定义插件中对请求进行预处理、添加自定义逻辑、修改请求头等操作。然后,根据路由规则进行路由匹配,将请求转发到相应的后端服务。

    因此,您可以在自定义插件中生成特定的请求头或执行其他自定义逻辑,然后在路由规则中根据请求头的值进行进一步的路由操作。

    2023-10-17 21:04:27
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    登录MSE网关管理控制台。

    在左侧导航栏,选择云原生网关 > 网关列表。

    在顶部菜单栏选择地域。

    在网关列表页面,单击目标网关名称。
    在网关详情页面,选择左侧导航栏插件市场。
    在插件市场列表中单击需要启用的插件卡片。
    在插件详情页单击插件配置。
    在插件配置页面,选择应用范围并在插件配置中编辑YAML,打开生效开关并单击确认后插件立即生效。

    2023-10-17 17:06:32
    赞同 展开评论 打赏
  • 在 MSE 微服务引擎中,自定义插件和路由规则是按照特定的顺序进行处理的。一般情况下,先会经过自定义插件,然后再根据路由规则进行请求转发。

    所以,您可以通过自定义插件来生成某个 header,并在之后的路由规则中使用该 header 的值来进行路由判断。这样的流程是可行的。

    以下是一个示例流程:

    1. 流量到达微服务引擎的网关组件。
    2. 自定义插件对进入的请求进行处理,生成特定的 header。
    3. 路由规则根据请求中的 header 值进行判断,决定将请求转发给哪个目标服务。
    4. 请求被转发给目标服务并得到响应。
    5. 响应返回给网关组件,可以在此处再次经过自定义插件进行处理(如修改、添加响应头等)。
    6. 最终响应被发送给客户端。

    请注意,确保您在自定义插件和路由规则中正确配置和使用相关变量、条件语句或标签等,以实现您的需求。具体的实现方式可能会因您使用的 MSE 版本、网关组件和插件而有所不同,建议查阅相关文档以获取更详细的指导。

    2023-10-15 15:40:54
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    自定义插件和路由的执行顺序取决于您在MSE微服务引擎中配置的插件和路由的优先级。如果自定义插件的优先级高于路由,那么自定义插件会在路由之前执行。如果路由的优先级高于自定义插件,那么路由会在自定义插件之前执行。
    如果您想通过自定义插件生成某个header然后再走路由规则(根据header值路由),那么您需要确保自定义插件的优先级高于路由,以确保自定义插件在路由之前执行。这样,自定义插件就可以生成header值,然后路由可以根据header值进行路由。
    需要注意的是,MSE微服务引擎的插件和路由的优先级可以通过MSE的配置文件进行配置。在配置文件中,您可以为每个插件和路由设置一个优先级,然后MSE会根据这些优先级来决定插件和路由的执行顺序。

    2023-10-15 15:02:52
    赞同 展开评论 打赏
  • MSE微服务引擎中流量来时,自定义插件和路由的优先级是不确定的,具体取决于您的插件和路由的配置。

    2023-10-14 20:01:41
    赞同 展开评论 打赏
  • 根据阿里云EDAS/MSE微服务的官方文档,自定义插件和路由的优先级是由配置文件中的order属性决定的。如果自定义插件和路由的order值相同,则插件的优先级会更高。因此,如果您希望自定义插件生成某个header然后再走路由规则,您需要确保自定义插件的order值小于路由的order值,这样自定义插件就会先执行,生成的header值就可以被路由规则使用。

    2023-10-13 14:55:13
    赞同 展开评论 打赏
  • 在MSE微服务引擎中,自定义插件和路由规则的执行顺序是先执行自定义插件,然后再根据路由规则进行路由。因此,你可以通过自定义插件生成某个header,然后根据该header的值进行路由。

    2023-10-12 22:46:49
    赞同 展开评论 打赏
滑动查看更多

为微服务建设降本增效,为微服务落地保驾护航。

相关产品

  • 微服务引擎
  • 相关电子书

    更多
    微服务治理技术白皮书 立即下载
    微服务与Serverless 立即下载
    EDAS4.0 助力企业一站实现微服务架构转型与 K8s 容器化升级 立即下载