熬夜肝了这篇Spring Cloud Gateway的功能及综合使用 (3)

注意此处配置注册中心地址的端口为 8761 也就是上面注册中心工程配置的端口

a-service - controller 前端控制器(提供服务) package com.zwc.a.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /* * @ClassName ASayHelloController * @Desc TODO Say Hello * @Date 2019/5/20 23:24 * @Version 1.0 */ @RestController public class ASayHelloController { /* * @ClassName ASayHelloController * @Desc TODO 读取配置文件中的端口 * @Date 2019/5/20 23:24 * @Version 1.0 */ @Value("${server.port}") private String port; /* * @ClassName ASayHelloController * @Desc TODO Say Hello * @Date 2019/5/20 23:24 * @Version 1.0 */ @RequestMapping("/hello") public String hello(){ return "Hello!I'm a. port:" + port; } /* * @ClassName ASayHelloController * @Desc TODO 接收从网关传入的参数 * @Date 2019/6/23 16:28 * @Version 1.0 */ @RequestMapping("/name") public String name(String name){ return "My name is " + name + ". aaa"; } /* * @ClassName ASayHelloController * @Desc TODO 接收从网关传入的参数 * @Date 2019/6/23 16:52 * @Version 1.0 */ @RequestMapping("/age") public String age(String age){ return "I am " + age + " years old this year. aaa"; } /* * @ClassName ASayHelloController * @Desc TODO 接收从网关传入的参数 * @Date 2019/6/29 22:00 * @Version 1.0 */ @RequestMapping("/routeAll") public String routeAll(String pass) { return "Can I pass? " + pass + "! port:" + port; } }

提供输出字符串服务,供网关调用

a-service - 启动类 package com.zwc; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient public class SpringcloudGatewayAServiceCoreApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudGatewayAServiceCoreApplication.class, args); } }

添加 @EnableEurekaClient 注解表示此工程可以向注册中心提供服务

a-service - 启动项目

刷新 :8761/(注册中心)可以看到服务已经被注册进来了

熬夜肝了这篇Spring Cloud Gateway的功能及综合使用


2. 项目启动成功后访问::9000/hello

输出内容:'Hello!I'm a. port:9000'

同样启动服务工程 B后,刷新 :8761/(注册中心)

熬夜肝了这篇Spring Cloud Gateway的功能及综合使用

项目启动成功后访问::9001/hello

输出内容:'Hello!I'm b. port:9001'

其他接口是下面网关服务启动后转发调用的,也是本博客的重头戏

master-service(网关) master-service - POM 文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "> <modelVersion>4.0.0</modelVersion> <!-- 继承父 --> <parent> <groupId>com.zwc</groupId> <artifactId>springcloud-gateway-service</artifactId> <version>1.0</version> </parent> <!-- 三坐标 --> <groupId>com.zwc</groupId> <artifactId>springcloud-gateway-master-service</artifactId> <version>1.0</version> <!-- 工程名称描述 --> <name>springcloud-gateway-master-service</name> <description>Spring Cloud Gateway 服务网关</description> <!-- 打包方式 --> <packaging>jar</packaging> <!-- 在 properties下声明相应的版本信息,然后在 dependency 下引用的时候用 ${} 就可以引入该版本 jar 包了 --> <properties> <!-- ali json --> <fastjson.version>1.2.47</fastjson.version> </properties> <!-- 加入依赖 --> <dependencies> <!-- 提供者消费者 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!-- gateway --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis-reactive</artifactId> </dependency> <!-- hystrix --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> <!-- ali json依赖 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> </dependencies> <!-- 插件依赖 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

加入spring-cloud-starter-netflix-eureka-client 依赖:提供和注册服务

加入spring-cloud-starter-gateway 依赖:gateway

加入spring-boot-starter-data-redis-reactive 依赖:结合 Redis 限流

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfjff.html