当前位置: 首页 > news >正文

Spring Cloud Alibaba--gateway微服务详解之网关(二)

1、网关介绍

        上篇对微服务中的nacos注册中心进行集成讲解。nacos主要作用是管理多服务之间复杂关系的组件。微服务是非常庞大且问题突出的架构,HTTP协议具有跨源资源共享 (CORS) Cross- Origin Resource Sharing机制,而处于安全考虑往往前端架构都会对跨域进行拦截,此时前端继续调用微服务中的其它任何一个服务都会被拦截无法访问。虽然可以通过配置的方式处理,但就会出现和微服务一样的问题,配置繁琐且不好管理。

        此时需要gateway的介入将所有HTTP请求通过网关在网络层实现重打包转发的方式下发到对应的微服务接口上去。gateway统一管理所有微服务的访问入口,对于前端来讲只需要暴露网关服务的地址即可,同时网关还兼顾系统安全、认证、过滤、限流等控制策略。

2、项目集成网关

本文使用Spring版本:

        SpringBoot:2.7.5;

        Spring Cloud:2021.0.5;

        Spring Cloud Alibaba:2021.1;

在上一篇创建的项目中继续创建子级工程gateway,添加网关依赖:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

        本文使用的配置文件为bootstrap方式,并未用到Spring默认的application配置,两者区别感兴趣可以问度娘。本项目使用认证中心接口演示网关的接口统一管理下发。

 

 

 

在gateway项目中主配置文件bootstrap.yml中配置网关服务:

spring:application:name: oto-gatewayprofiles:active: dev

在gateway项目中开发环境配置文件bootstrap-dev.yml中配置网关注册信息:

server:port: 9999spring:cloud:nacos:# 注册中心discovery:server-addr: http://localhost:8848# 共享的配置文件config:server-addr: http://localhost:8848file-extension: yamlshared-configs[0]:data-id: oto-common.yamlrefresh: true

在nacos中还有一些网关有关的配置:

 

spring:cloud:gateway:discovery:locator:enabled: true # 启用服务发现lower-case-service-id: trueroutes:- id: 认证中心uri: lb://oto-authpredicates:- Path=/oto-auth/**filters:- StripPrefix=1

        在nacos中配置项目配置信息可以无需可以及时生效,所以基本不变的配置信息可以放在项目中配置,可能发生变动的通通放到nacos中去动态配置。

        由于我们本篇主要讲解演示gateway,所以其它配置信息都被我干掉了,因为太多了怕影响大家阅读。配置文件中的内容啥意思,这里就不再一个一个讲了非常简单随便百度都有解释。

在网关启动类中添加nacos服务发现与注册注解:

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

至此网关部分代码完成,超级简单。 

 我们启动的网关端口为9999,认证中心端口为8000。

现在我们可以打开postman来测试端口是否可以调用。

        从测试结果来看我们直接访问认证中心localhost:8000/ras/publicKey,获取公钥的接口可以成功拿到公钥。接下来我们通过网关来获取公钥。

 

         可以看到我们通过在nacos配置的网关转发地址为/oto-auth/**,通过访问localhost:9999/oto-auth/rsa/publicKey同样成功的获取到了公钥。证明网关配置成功。

        本篇只演示讲解关于网关的集成和配置使用,等后续讲到认证中心的时候在认证中心讲网关的认证、鉴权功能。

http://www.lryc.cn/news/8902.html

相关文章:

  • Zynq非VDMA方案实现视频3帧缓存输出,无需SDK配置,提供工程源码和技术支持
  • 血液透析过滤芯气密性检测装置中的高精度多段压力控制解决方案
  • PDF加密如何批量解除?快来了解下这个方法
  • C++——哈希4|布隆过滤器
  • python冒号的用法总结
  • 面试题整理
  • C语言深度解剖-关键字(7)
  • 利用JavaScript编写Python内置函数查询工具
  • 【MySQL进阶】SQL优化
  • 最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境
  • csv文件完整操作总结
  • 时间序列预测--基于CNN的股价预测(Matlab代码实现)
  • Dubbo与Spring Cloud优缺点分析(文档学习个人理解)
  • 单元测试工具——JUnit的使用
  • Linux_基本权限
  • 3、JavaScript面试题
  • YUV图像
  • .net6API使用AutoMapper和DTO
  • IO知识整理
  • 【正点原子FPGA连载】第十三章QSPI Flash读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
  • 深入理解mysql的内核查询成本计算
  • LeetCode 141. 环形链表
  • git提交
  • Java中常见的编码集问题
  • 数据结构与算法(Java版) | 就让我们来看看几个实际编程中遇到的问题吧!
  • 【C++算法】dfs深度优先搜索(上) ——【全面深度剖析+经典例题展示】
  • 总结高频率Vue面试题
  • IP协议详解
  • webpack5 基础配置
  • IDEA入门安装使用教程