import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class ServiceRegistryApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceRegistryApplication.class, args);
}
}
server:
port: 8761
eureka:
client:
fetch-registry: false
register-with-eureka: false
网关主类
:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
和application.yml
server:
port: 8080
spring:
application:
name: GATEWAY
cloud:
gateway:
routes:
-id: MICROSERVICE
uri: lb://MICROSERVICE
predicates:
- Path: /service/**
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defualtZone: http://localhost:8761/eureka
instance: localhost
微服务主类
:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
public class MicroserviceApplication {
public static void main(String[] args) {
SpringApplication.run(MicroserviceApplication.class, args);
}
}
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping
@RestController
public class HelloController {
@GetMapping("/test")
public String getWelcomed() {
return "Welcome to Microservice !";
}
}
server:
port: 8099
spring:
application:
name: MICROSERVICE
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defualtZone: http://localhost:8761/eureka
instance: localhost
根据我找到的一些建议,我尝试从我的eureka服务器中隐藏网关,但问题仍然存在,将其添加到网关中的application.yml
中:
eureka:
client:
register-with-eureka: false
fetch-registry: false
控制器应
@RestController
@RequestMapping("/service")
public class HelloController
和URL:http://localhost:8080/service/test
或者您可以在控制器中保留@requestmapping()
并使网关使用以下路径:
predicates:
-Path=/**
我使用Spring创建微服务。我使用Eureka进行服务发现,使用Zuul进行路由。现在我想切换到Spring Cloud Gateway(因为它的非阻塞特性),但是我没有找到自动路由到每个Eureka服务的方法。 例如,如果一个服务'eureka-client'注册到了Eureka,那么Zuul本身就为这个服务提供了类似于localhost:8762/eureka-client的路径。使用Spr
我用Spring靴。我正在处理一个缺陷。当我们通过Zuulendpoint调用帐户服务时,它会发出400个错误请求。帐户服务作为独立的,按预期工作。唯一的问题似乎是当呼叫通过Zuulendpoint路由/通过Zuulendpoint时。现在我正在调试这个。 我在localhost端口8032上启动了帐户服务,添加了调试点,并在POSTMAN中通过本地主机进行调用时验证了它的有效性。所以这一切照常进
我们能在Spring Cloud API网关和没有服务发现的情况下生存吗?
我有一个 Spring 启动应用程序正在运行并使用 Spring 云网关。该应用程序在 kubernetes 上运行(在 EKS 和本地 docker 桌面上尝试过)。我在访问指向另一个命名空间(非默认)中的服务的路由时遇到问题。当我启动 http://localhost:8080/actuator/gateway/routes 时,我看到下面的路线是路线之一 在应用程序中。yml,我添加了以下网
我有一个简单的spring引导的微服务(用户服务)和一个spring引导的网关服务(网关-服务器),使用Zuul设置到Eureka服务器(发现服务)注册。向用户-服务发送请求直接起作用,并且所有服务都成功地注册到eureka服务器。当我向网关服务器发送请求时,我会得到一个转发错误,原因是“com.netflix.client.clientException:Load balancer没有用于客户端
{ "cluster": "...", "route_config_name": "...", "refresh_delay_ms": "..." } cluster (required, string) 承载路由发现服务的上游群集的名称。群集必须实现和运行RDS HTTP API的REST服务。注:这是在群集管理器配置中定义的群集的名称,而不是群集的完整定义,如SDS和CDS的情况