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

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 快速学习 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 的服务网关就搭建成功了。

相关文章
|
27天前
|
JSON Java API
利用Spring Cloud Gateway Predicate优化微服务路由策略
Spring Cloud Gateway 的路由配置中,`predicates`​(断言)用于定义哪些请求应该匹配特定的路由规则。 断言是Gateway在进行路由时,根据具体的请求信息如请求路径、请求方法、请求参数等进行匹配的规则。当一个请求的信息符合断言设置的条件时,Gateway就会将该请求路由到对应的服务上。
138 69
利用Spring Cloud Gateway Predicate优化微服务路由策略
|
2月前
|
负载均衡 Java 应用服务中间件
Gateway服务网关
Gateway服务网关
75 1
Gateway服务网关
|
2月前
|
负载均衡 Java API
项目中用的网关Gateway及SpringCloud
Spring Cloud Gateway 是一个功能强大、灵活易用的API网关解决方案。通过配置路由、过滤器、熔断器和限流等功能,可以有效地管理和保护微服务。本文详细介绍了Spring Cloud Gateway的基本概念、配置方法和实际应用,希望能帮助开发者更好地理解和使用这一工具。通过合理使用Spring Cloud Gateway,可以显著提升微服务架构的健壮性和可维护性。
67 0
|
4月前
|
负载均衡 Java 网络架构
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
219 5
|
4月前
|
负载均衡 安全 Java
微服务 Gateway 使用详解
网关(Gateway)是连接不同网络并进行数据转发的关键组件。在互联网中,路由器常作为默认网关;在现代操作系统中,网关指本地网络上转发数据包的设备。Spring Cloud Gateway是一款基于Spring Framework的API网关,具备反向代理、高性能、负载均衡、安全控制、限流熔断、日志监控等功能。通过简单配置即可实现请求路由和转发,适用于微服务架构中的集中控制、解耦客户端与服务、自动服务发现等场景,提升系统安全性与可扩展性。
334 4
|
5月前
|
Java API 微服务
服务网关Gateway
该博客文章详细介绍了Spring Cloud Gateway的使用方法和概念。文章首先阐述了API网关在微服务架构中的重要性,解释了客户端直接与微服务通信可能带来的问题。接着,文章通过具体的示例代码,展示了如何在Spring Cloud Gateway中添加依赖、编写路由规则,并对路由规则中的基本概念如Route、Predicate和Filter进行了详细解释。最后,文章还提供了路由规则的测试方法。
服务网关Gateway
|
6月前
|
JSON 前端开发 Java
SpringCloud怎么搭建GateWay网关&统一登录模块
本文来分享一下,最近我在自己的项目中实现的认证服务,目前比较简单,就是可以提供一个公共的服务,专门来处理登录请求,然后我还在API网关处实现了登录拦截的效果,因为在一个博客系统中,有一些地址是可以不登录的,比方说首页;也有一些是必须登录的,比如发布文章、评论等。所以,在网关处可以支持自定义一些不需要登录的地址,一些需要登录的地址,也可以在网关处进行校验,如果未登录,可以返回JSON格式的出参,前端可以进行相关处理,比如跳转到登录页面等。
178 4
|
5月前
|
安全 API
【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
|
5月前
|
存储 容器
【Azure 事件中心】为应用程序网关(Application Gateway with WAF) 配置诊断日志,发送到事件中心
【Azure 事件中心】为应用程序网关(Application Gateway with WAF) 配置诊断日志,发送到事件中心
|
5月前
|
负载均衡 Java 应用服务中间件
Gateway服务网关
本节针对微服务中另一重要组件:网关 进行了实战性演练,网关作为分布式架构中的重要中间件,不仅承担着路由分发(重点关注Path规则配置),同时可根据自身负载均衡策略,对多个注册服务实例进行均衡调用。本节我们借助GateWay实现的网关只是技术实现的方案之一,后续大家可能会接触像:Zuul、Kong等,其实现细节或有差异,但整体目标是一致的。