网关服务

  • 1、在parent父工程中创建一个空的Maven项目infrastructure
  • 2、在infrastructure模块下创建api_gateway模块
  • 3、编写application.properties配置文件
  • 4、编写启动类
  • 5、网关相关配置
    • 1、网关解决跨域问题
    • 2、 启动测试
    • 3、 随便测试一个服务的功能接口

1、在parent父工程中创建一个空的Maven项目infrastructure

同样删除src全部

2、在infrastructure模块下创建api_gateway模块

注意:路径不能搞错了

注意:修改pom.xml文件

修改后pom.xml

3、编写application.properties配置文件

# 服务端口
server.port=9999
# 服务名
spring.application.name=service-gateway
# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848#Gateway 网关配置
#使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true#设置路由id (建议服务的名称)
spring.cloud.gateway.routes[0].id=service-file
#设置路由的uri (nacos注册服务名称)
spring.cloud.gateway.routes[0].uri=lb://service-file
#设置路由断言
spring.cloud.gateway.routes[0].predicates= Path=/fileservice/**#配置service-user服务
spring.cloud.gateway.routes[1].id=service-user
spring.cloud.gateway.routes[1].uri=lb://service-user
spring.cloud.gateway.routes[1].predicates= Path=/eduservice/**

4、编写启动类

在java目录下,先创建包com.itydf.gateway
ApiGatewayApplication.java启动类

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

5、网关相关配置

1、网关解决跨域问题

com.itydf.gateway包下面创建config包,再在下面创建CorsConfig跨越配置类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;@Configuration
public class CorsConfig {@Beanpublic CorsWebFilter corsFilter() {CorsConfiguration config = new CorsConfiguration();config.addAllowedMethod("*");config.addAllowedOrigin("*");config.addAllowedHeader("*");UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());source.registerCorsConfiguration("/**", config);return new CorsWebFilter(source);}
}

2、 启动测试

先启动api_gateway,控制台打印输出,启动网关模块服务成功

再启动另外两个service_file和service_user模块服务,另外查看Nacos我们的三个服务都被注册进来了

3、 随便测试一个服务的功能接口

以service_user的查询全部用户信息接口为列子:
浏览器输入接口地址:http://localhost:9901/eduservice/crm-user/list,能正常访问到。

注意:此时我们把9901端口改为我们配置的网关服务统一接口
浏览器输入接口地址:http://localhost:9999/eduservice/crm-user/list,也能正常访问到。

查看api_gateway服务控制台输出,有这样一段日志输出:

是不是成功了,这样就成功解决了我们的跨越问题,解决了上一篇我们抛出的问题。

Spring Cloud微服务之网关服务创建(十四)完结篇相关推荐

  1. Spring Cloud Netfilx Zuul : API网关服务

    Spring Cloud Zuul 是Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的API网关使用,支持动态路由与过滤功能,本文将对其用法进行详细介绍. 1.Z ...

  2. Spring Cloud微服务之Gateway网关(十三)

    Gateway网关 一.网关基本概念 1.API网关介绍 2.Spring Cloud Gateway 3.Spring Cloud Gateway核心概念 4.我们在没有网关下,怎么解决客户端直接与 ...

  3. Spring Cloud 微服务网关Gateway组件

    一.网关介绍 大家都知道在微服务架构中,一个系统会被拆分为多个微服务,那么作为客户端如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去用. 这样的架构会存 ...

  4. spring cloud微服务分布式云架构-Gateway入门

    Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gatew ...

  5. Spring Cloud 微服务架构

    一.分布式服务框架的发展 1.1 第一代服务框架 代表:Dubbo(Java).Orleans(.Net)等 特点:和语言绑定紧密 1.2 第二代服务框架 代表:Spring Cloud等 现状:适合 ...

  6. Spring Cloud微服务之Feign——声明式服务间调用

    目录 写在前面 服务间调用常见的方案 方案一:HttpClient 方案二:RestTemplate 方案三:Feign 框架版本问题及可能遇到的坑 搭建服务注册中心 搭建服务1--service-a ...

  7. 《Spring Cloud 微服务架构进阶》读书笔记

    前页 随着 DevOps 和以 Docker 为主的容器技术的发展,云原生应用架构和微服 务变得流行起来. 云原生包含的内容很多,如 DevOps.持续交付.微服务.敏捷等 第一章,微服务架构介绍 架 ...

  8. Spring Cloud 微服务项目操作实战流程(完结)

    Spring Cloud入门项目操作实战流程 Day01~02 〇.Service - 业务服务结构 商品服务 item service,端口 8001 用户服务 user service,端口 81 ...

  9. Spring Boot+Eureka+Spring Cloud微服务快速上手项目实战

    说明 我看了一些教程要么写的太入门.要么就是写的太抽象.真正好的文章应该是快速使人受益的而不是浪费时间.本文通过一个包括组织.部门.员工等服务交互的案例让刚接触spring cloud微服务的朋友快速 ...

  10. Java之 Spring Cloud 微服务的 SpringCloud Config 配置中心(第四个阶段)【二】【SpringBoot项目实现商品服务器端调用】

    SpringCloud学习目录点击跳转对应的文章 Java之 Spring Cloud 微服务搭建(第一个阶段)[一][SpringBoot项目实现商品服务器端是调用] Java之 Spring Cl ...

最新文章

  1. Scrum Master角色可能消失吗?
  2. 深入浅出详细介绍Java异常,让你茅塞顿开般的感觉
  3. c语言常用绘图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  4. UVA 12266 Stock prices --优先队列
  5. LeetCode Restore IP Addresses(回溯法)
  6. spring aop搭建(2) :基于代码的实现
  7. PHP 设计模式之原型模式
  8. [libGDX游戏开发教程]使用libGDX进行游戏开发(12)-Action动画
  9. 珍惜时间, 珍惜生命
  10. 一周随笔--15.10.06
  11. Vmware vSphere 5.0存储的连接
  12. Friendster,linkedin,orkut,liring对SNS的求索
  13. Visio 直角连接线增加直角拐弯的方法, 取消自动附着,取消自动捕捉
  14. win7计算器功能详解
  15. Java虚拟机——Parallel Scavenge收集器
  16. Linux设备树特殊节点(aliases、chosen)介绍
  17. 你不得不知道的这6款可免费试用的JavaScript插件
  18. matlab-基础 复数 实部、虚部、模、共轭、辐角
  19. 【渗透笔记】友情检测朋友公司并拿下shell过程
  20. 滑雪与时间胶囊 题解 BZOJ2753

热门文章

  1. 升级php7_Drupal 8.8.0 正式发布,升级须知
  2. 信息学奥赛一本通(1126:矩阵转置)
  3. 常用技巧 —— 位运算 —— 异或运算实现两个数的交换
  4. 理论基础 —— 排序 —— 原始冒泡排序
  5. 信息学奥赛一本通C++语言——1112:最大值和最小值的差
  6. MATLAB图片的保存与导出
  7. C++:拷贝构造函数与深/浅拷贝
  8. node后台截图 box-shadow无效-解决
  9. [C++] 哈希计数
  10. 普朗克黑体辐射定律python代码实现