美文网首页
判断微服务中的http请求来源

判断微服务中的http请求来源

作者: 向上生长之路 | 来源:发表于2021-11-20 10:01 被阅读0次

    使用SpringCloud做微服务开发,有时需要判断微服务中的http请求来源,判断请求是来自微服务网关转发还是来自其它的微服务调用等情况,以便于根据不同的请求来源做不同的逻辑处理,这时如何才能区分请求来源呢?

    本文给大家分享一种通过http请求头来判断微服务中的http请求来源方法~

    • SpringCloud版本 Greenwich.SR2
    • SpringBoot版本 2.1.7.RELEASE

    工作原理

    下面以我的示例工程来给大家演示,大家可以将仓库克隆下来方便测试:https://github.com/netbuffer/spring-cloud-demo
    1.在微服中添加返回http请求头的映射方法,来观察请求头信息


    2.启动相应的微服务注册中心、微服务、微服务网关组件

    3.通过直接访问微服务的headers接口与通过网关转发访问headers接口来做比较

    4.通过观察响应结果可以看到,经过网关转发后会携带额外的请求头信息,例如,我测试工程中使用的zuul网关,会携带x-forwarded-prefix来标识当前微服务的路径前缀,猜测在其它的微服务网关中如Spring Cloud Gateway等,也会携带相应的请求头来标识经过网关的转发信息,就可以以此请求头信息为依据来判断请求的来源了

    使用方式

    了解了工作原理,我们就可以在微服务中,通过检测Http请求中相关的请求头来判断请求来源啦



    另外,在zuul中,可以通过实现自定义的过滤器,来注入自定义的header请求头




    那么在微服务中就可以顺理成章的检测自定义的header值,来判断请求来源啦~

    相关文章

      网友评论

          本文标题:判断微服务中的http请求来源

          本文链接:https://www.haomeiwen.com/subject/pfzqtrtx.html