使用Spring Cloud Gateway时微服务IP不同请求会不会失败

发布时间:2021-06-23 10:16:57 作者:chen
来源:亿速云 阅读:158

这篇文章主要讲解了“使用Spring Cloud Gateway时微服务IP不同请求会不会失败”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用Spring Cloud Gateway时微服务IP不同请求会不会失败”吧!

问题产生背景

在使用Spring Cloud Gateway过程中,希望配置多Routes映射不同的微服务,因为Gateway 和Zuul的访问路径不同(zuul 会带有服务service Id),造成错误。

现象表现

使用Spring Cloud Gateway时微服务IP不同请求会不会失败

问题定位

  1. 认为是配置Predicate问题。

      routes:
        - id: after_route
          uri: lb://user-center
          predicates:
            # 当当前时间晚于设置时间之后,才能访问
            # 否则得到404错误
            #- After=2010-01-01T18:00:00.789-07:00[America/Denver]
            # 当Host属于**.geekplus.com.cn或**.life-runner.com时
            # http://localhost:9999/** -> user-center/**
            # eg. http://localhost:9999/users/1 -> user-center/users/1
            #- Host=**.geekplus.com.cn,**.life-runner.com
            - TimeBetween=上午6:00,下午11:00
            - Path=/users/**
          filters:
            - AddRequestHeader=CompanyKey,123456
            - AddResponseHeader=Success,Isaac
            - PreLog=CustomLogKey,CustomLogValue
        - id: content_route
          uri: lb://shared-center
            - After=2010-01-01T18:00:00.789-07:00[America/Denver]
            - Path=/share/**
          filters:
            - AddRequestHeader=CompanyKey,123456
            - AddResponseHeader=Success,Isaac
            - PreLog=CustomLogKey,CustomLogValue
  1. 认为是顺序问题

      routes:
        - id: content_route
          uri: lb://shared-center
          predicates:
            - Path=/share/**
        - id: after_route
          uri: lb://user-center
          predicates:
            # 当当前时间晚于设置时间之后,才能访问
            - TimeBetween=上午6:00,下午11:00
            - Path=/users/**
          filters:
            - AddRequestHeader=CompanyKey,123456
            - AddResponseHeader=Success,Isaac
            - PreLog=CustomLogKey,CustomLogValue
  1. 以为自己写错了。 > 四处寻求帮助,无奈,Gateway的资料网上真的很少。还是自食其力吧,根据错误信息,查看Nacos中元数据,发现异常!

问题结论

  1. gateway 和 user-center 都进行过重启,因为重启后,服务Ip发生了变更,在服务注册中心这两个ip相同,因此可以访问。 2,shared-center 我长时间没有重启,注册在发现中心的ip 是老的Ip,和gateway/user-center的IP不同,造成请求失败。 具体如下: shared-center: 172.16.33.167 user-center & gateway : 172.16.29.0

解决方法,重启shared-center,重新获取实例Ip,结果恢复正常!

Tips > 我使用的是Spring Cloud Alibaba Nacos作为服务发现中心,在重启内容服务之后,发现中心的失败IPservice并没有被刷新,需要手动处理一下,否则依旧会调用到老的IP。

感谢各位的阅读,以上就是“使用Spring Cloud Gateway时微服务IP不同请求会不会失败”的内容了,经过本文的学习后,相信大家对使用Spring Cloud Gateway时微服务IP不同请求会不会失败这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 微服务网关实战——Spring Cloud Gateway
  2. Spring Cloud Gateway 内置的路由谓词工厂

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring

上一篇:面向对象中的开闭原则是什么

下一篇:nginx代理webSocket HTTP 426怎么解决

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》