MyCat - 环境搭建 - 微服务网关 gateway 搭建 | 学习笔记

简介: 快速学习 MyCat - 环境搭建 - 微服务网关 gateway 搭建

开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 环境搭建 - 微服务网关 gateway 搭建 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/758/detail/13311


MyCat - 环境搭建 - 微服务网关 gateway 搭建

内容简介:

一、初步介绍

二、初步搭建 GateWay 网关

三、引入依赖

四、声明引导类

五、声明 Cors 配置类

 

一、初步介绍

用前端来提供一个统一的入口,所有前端的请求都经过服务网关,通过服务网关将请求录入到后端的微服务,服务网关模块如图所示:

image.png

前端所有的请求都经过这个网关,由服务网关指定这个请求录入到哪个微服务中。

 

二、初步搭建 GateWay 网关

搭建微服务模块的名称设计:

image.png

接下来选择 next,建立 Module 文件成功,这个 v-gateway 就已经搭好了,java和 resources 刚开始的颜色是不对的,我们可以看到 v-gateway 是灰色的,我们就点击图中所示的“+”,

点击 v-gateway 后再点击 pom.xml 这个选项再点击 OK 就可以了,那么这个就搭建好了。

 

三、引入依赖

我们引入的依赖有两个,分别是 gateway 微服务和 eureka 客户端;

依赖可以看到,如图所示:

image.png

任何的微服务都是 eureka 的客户端,都是要连接到 eureka 的,接着在 resources建立一个 application.yml 的文件:

在这个文件中输入如下代码:

Server:

port:8001

eurekat:

alient:

service-url:

defaultzone: http://127.0.0.118161/eureka

inatance:

prefer-ip~address: true

spring:

application:

name: gateway

cloud:

gateway:

Routes:

- id: v_goods_route

uri: lb://goods

predicates:

- Path=/gooda/**

filtera:

- StripPrefix=1

- id: v_order_route

url: lb://order

predicates:

- Path=/order/**

filtors:

- stripPrefix=1

根据代码我们可以看到它的端口配置时 8001,连接 eureka 这边的配置,spring 这一块表示的是服务名称,cloud 这一块表示的是服务网关的配置,这一块主要配置的就是路由这一部分的配置:

image.png

如果大家没有 gateway 这一部分的基础,那么就要留意一下路由的这个配置,微服务的名称叫做 goods,另一个微服务叫做 order,在旁边的项目栏都会有发现,Path=//goods** 的意思是 gateway 接收到的一个请求路线是 goods 打头的,那么他就会把这个请求录入后端的 gateway 微服务,录入后他会把 goods 给它去除掉,如果想去除掉两个头标签,在 filters 后面的设置中设置为 2 就可以了。

 

四、声明引导类

在 java 中新建一个 cn.itcast.gateway.GateWayApplication 的文件,在这个文件中,新建成功后传递一下 GateWayApplication 的表,如图所示:

image.png

再用 psvm 声明慢方法调用 SpringApplication 表然后输入如下代码:

import org.apringframevork.boot.springApplication;

Import org.apringframework.boot.autoconfigure.apringllootApplication;

import org.springframework.cloud.netflix.eureka.Enableturekaclimnt;

@SpringBootApplication

@EnableEurokaClient

public class GateWayApplication {

public static void main (String[] args) }

springApplication.run(GateWayApplication.class,args);

}

}

引导类就声明完毕了。

 

五、声明 Cors 配置类

声明的原因是用来解决跨域问题的,因为前端和微服务是位于不同的服务器的,这时就需要用 Cors 来解决;在上面的 GateWay 网关服务的说明我们可以看到前端和微服务之间都是跨域的。

在 java 中再次建立一个 config 的包在直接打入如下代码:

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 {

@Bean

public

CorswebFilter

corsFilter(){

UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new

PathPatternParser());

source.registerCorsConfiguration("/**",buildconfig()):

return new CorswebFilter(source):

}

可以看到有一个 CorsWebFilter, 这样 GateWay 的服务网关就搭建成功了。

相关文章
|
3月前
|
存储 缓存 负载均衡
Gateway 网关坑我! 被这个404 问题折腾了一年?
小富分享了一个困扰团队一年多的 SpringCloud Gateway 路由 404 问题。通过日志追踪和源码分析,发现是网关在 Nacos 配置更新后未能正确清理旧的路由权重缓存,导致负载均衡时仍使用已删除的路由数据。最终通过监听路由刷新事件并手动更新缓存,成功解决了问题。
780 125
Gateway 网关坑我! 被这个404 问题折腾了一年?
|
2月前
|
机器学习/深度学习 Kubernetes API
【Azure APIM】自建网关(self-host gateway)收集请求的Header和Body内容到日志中的办法
在Azure API Management中,通过配置trace策略可完整记录API请求的Header和Body信息。在Inbound和Outbound策略中分别使用context.Request/Response.Headers和Body.As<string>方法捕获数据,并写入Trace日志,便于排查与审计。
127 7
|
4月前
|
安全 虚拟化
Omnissa Secure Email Gateway 2.33 - 电子邮件网关
Omnissa Secure Email Gateway 2.33 - 电子邮件网关
111 0
|
12月前
|
JSON Java API
利用Spring Cloud Gateway Predicate优化微服务路由策略
Spring Cloud Gateway 的路由配置中,`predicates`​(断言)用于定义哪些请求应该匹配特定的路由规则。 断言是Gateway在进行路由时,根据具体的请求信息如请求路径、请求方法、请求参数等进行匹配的规则。当一个请求的信息符合断言设置的条件时,Gateway就会将该请求路由到对应的服务上。
1072 69
利用Spring Cloud Gateway Predicate优化微服务路由策略
|
负载均衡 Java 应用服务中间件
Gateway服务网关
Gateway服务网关
335 1
Gateway服务网关
|
负载均衡 Java API
项目中用的网关Gateway及SpringCloud
Spring Cloud Gateway 是一个功能强大、灵活易用的API网关解决方案。通过配置路由、过滤器、熔断器和限流等功能,可以有效地管理和保护微服务。本文详细介绍了Spring Cloud Gateway的基本概念、配置方法和实际应用,希望能帮助开发者更好地理解和使用这一工具。通过合理使用Spring Cloud Gateway,可以显著提升微服务架构的健壮性和可维护性。
685 0
|
负载均衡 Java 网络架构
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
821 5
|
负载均衡 安全 Java
微服务 Gateway 使用详解
网关(Gateway)是连接不同网络并进行数据转发的关键组件。在互联网中,路由器常作为默认网关;在现代操作系统中,网关指本地网络上转发数据包的设备。Spring Cloud Gateway是一款基于Spring Framework的API网关,具备反向代理、高性能、负载均衡、安全控制、限流熔断、日志监控等功能。通过简单配置即可实现请求路由和转发,适用于微服务架构中的集中控制、解耦客户端与服务、自动服务发现等场景,提升系统安全性与可扩展性。
1706 4
|
Java API 微服务
服务网关Gateway
该博客文章详细介绍了Spring Cloud Gateway的使用方法和概念。文章首先阐述了API网关在微服务架构中的重要性,解释了客户端直接与微服务通信可能带来的问题。接着,文章通过具体的示例代码,展示了如何在Spring Cloud Gateway中添加依赖、编写路由规则,并对路由规则中的基本概念如Route、Predicate和Filter进行了详细解释。最后,文章还提供了路由规则的测试方法。
服务网关Gateway
|
安全 API
【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
206 0

热门文章

最新文章