SpringCloud的常见问题

问题1:eureka连接服务报错:Connection refused: connect

如下图:

SpringCloud的常见问题_第1张图片

解决方案:

1.如果是eureka服务的报错,直接重启服务解决,如重启服务还是出现Connection refused: connect,需检查配置文件中的eureka: client: service-url的写法是否正确,如下是正确的写法

SpringCloud的常见问题_第2张图片

2.如果是其他注册服务,无需理会,不会影响程序的运行(续约还未完成,等待几秒或去注册中心刷新看到此服务即可)。

问题2.服务调用feign传参问题:

使用feign传参,接口传输参数时,字符串需要用@RequestParam注解标注,对象需要用@RequestBody注解标注,且如果有几个参数需传递(传输会变成POST方法传输),服务提供者不可用@GetMapping注解获取请求路径,要用@RequestMapping获取请求你路径。如下图:

SpringCloud的常见问题_第3张图片

 问题3.Gateway跨域配置

一般网关都是所有微服务的统一入口,必然在被调用的时候会出现跨域问题。
跨域:在 js 请求访问中,如果访问的地址与当前服务器的域名、 ip 或者端口号不一致则称为跨域请求。若不解决则 不能获取到对应地址的返回结果。
如:从在 http://localhost:9090 中的 js 访问 http://localhost:9000 的数据,因为端口不同,所以也是跨域请求。
在访问 Spring Cloud Gateway 网关服务器的时候,出现跨域问题的话;可以在网关服务器中通过配置解决,允许哪些服务是可以跨域请求的;具体配置如下
server:
  port: 10010

spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      routes:
        #路由Ip,可以任意设置
        - id: user-service-route
          #代理的服务地址
          #uri: http://127.0.0.1:9091
          uri: lb://billManager-service
          #断言
          predicates:
            - Path=/**
       #跨域配置:允许https://docs12.spring.io的请求通过
      globalcors:
        cors-configurations:
          '[/**]':
            allowedOrigins:
              - "https://docs12.spring.io"
            allowedMethods:
              - GET

你可能感兴趣的:(java,spring,cloud,eureka,spring)