当前位置:   article > 正文

五、SpringCloud之Gateway网关整合Eureka_spring cloud gateway eureka

spring cloud gateway eureka

一、SpringCloud Gateway介绍

该项目提供了一个用于在 Spring WebFlux 之上构建 API 网关的库。Spring Cloud Gateway 旨在提供一种简单而有效的方式来路由到 API 并为它们提供交叉关注点,例如:安全性、监控/指标和弹性。

特征

Spring Cloud Gateway 特性:

基于 Spring Framework 5、Project Reactor 和 Spring Boot 2.0

能够匹配任何请求属性的路由。

谓词和过滤器特定于路由。

断路器集成。

Spring Cloud DiscoveryClient 集成

易于编写谓词和过滤器

请求速率限制

路径重写

二、SpringCloud Gateway搭建

首先我们需要建2个服务,Eureka server、Gateway。

2.1、Eureka Server搭建

新建springboot项目neil-eureka-server。

在pom.xml里面添加Eureka和web的依赖

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

配置文件application.yml

server:
  port: 8989

spring:
  application:
    name: neil-eureka-server

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8989/eureka/
    fetch-registry: true
    register-with-eureka: true
  instance:
    prefer-ip-address: true

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

springboot启动类里面添加@EnableEurekaServer注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@EnableEurekaServer
@SpringBootApplication
@RestController
public class NeilEurekaServerApplication {

	@RequestMapping("/get")
	public String get(){
		return "hello world";
	}

	public static void main(String[] args) {
		SpringApplication.run(NeilEurekaServerApplication.class, args);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

启动neil-eureka-server。

在浏览器地址栏输入机器ip加端口访问Eureka页面
http://127.0.0.1:8989/

请添加图片描述

2.2、gateway搭建

新建springboot项目neil-gateway-server。

在pom.xml里面添加Eureka和gateway的依赖

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-gateway</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

配置文件application.yml

server:
  port: 8990
  servlet:
    context-path: /
spring:
  application:
    name: neil-gateway-server
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true   #开启Eureka服务发现
          lower-case-service-id: true
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8989/eureka/ #Eureka Server地址
  instance:
    prefer-ip-address: true


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

springboot启动类里面添加@EnableEurekaServer注解

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@EnableEurekaClient
@SpringBootApplication
public class NeilGatewayServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(NeilGatewayServerApplication.class, args);
	}

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

启动neil-gateway-server

请添加图片描述

2.3、测试

调用eureka服务上写的接口

http://localhost:8989/get

这个是直接调用eureka服务接口

请添加图片描述

然后通过gateway调用eureka接口

http://localhost:8990/neil-eureka-server/get

请添加图片描述

gateway调用其他服务的方式是

http://localhost:8990/服务名/接口

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/544986
推荐阅读
相关标签
  

闽ICP备14008679号