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

徐州企业网站设计点评网页设计作业

徐州企业网站设计,点评网页设计作业,qq对话制作器app,网站备案撤销再备案spring cloud - Gateway实战一:网关基本了解、配置路由案例实操 一、网关介绍二、Gateway介绍Gateway基本概念执行流程简述gateway工作的核心流程核心概念理解 三、路由案例基于yaml方式配置网关路由基于配置类方式配置路由 一、网关介绍 在微服务架构中,一个系统会…

spring cloud - Gateway实战一:网关基本了解、配置路由案例实操

  • 一、网关介绍
  • 二、Gateway介绍
    • Gateway基本概念
    • 执行流程简述
      • gateway工作的核心流程
      • 核心概念理解
  • 三、路由案例
    • 基于yaml方式配置网关路由
    • 基于配置类方式配置路由

一、网关介绍

在微服务架构中,一个系统会被拆分为很多微服务,作为客户端要怎么调用这么多微服务呢,如果没有网关的话,要在客户端记录每个微服务的地址,然后分别去调用,这样会产生很多问题,诸如以下:

  • 客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性;
  • 每个微服务都有独立认证,认证比较复杂
  • 存在跨域请求,在一定场景下处理相对复杂
    由此引入网关的概念:网关可以用来做系统的统一入口,为客户端提供统一的服务,作为内部服务的路由中转,跟业务本身无关的,公共性质的逻辑都可以在网关实现,比如认证,鉴权,路由转发等。

二、Gateway介绍

Gateway基本概念

spring cloud Gateway基于SpringBoot2.x、Spring WebFlux和Project Reactor,旨在为微服务架构提供一种简单有效的统一api路由管理方式,其目的是替代NetFlix Zuul,不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本功能,比如:安全、监控和限流。Spring公司为了替换Zuul而开发的网关服务,底层为Netty。
特点:

  • 性能强劲、是zuul的1.6倍 ;
  • 功能强大:内置了很多实用的功能,比如转发,监控,限流等等;
  • 设计优雅,容易扩展。

执行流程简述

gateway工作的核心流程

在这里插入图片描述
客户端向Spring Cloud Gateway发出请求。如果Gateway Handler Mapping确定请求与路由匹配,则将其发送到Gateway Web Handler处理程序。此处理程序通过特定于请求的Filter链运行请求。Filter被虚线分隔的原因是Filter可以在发送代理请求之前(pre)和之后(post)运行逻辑。执行所有pre过滤器逻辑。然后进行代理请求。发出代理请求后,将运行post过滤器逻辑。

核心概念理解

一、过滤器的作用:

  1. Filter在pre类型的过滤器可以做参数校验,权限校验,流量监控,日志输出,协议转换等。
  2. Filter在post类型的过滤器可以做相应内容,响应头的修改,日志输出,流量监控等。
    这两种类型的过滤器有着非常重要的作用。

二、需要了解几个核心概念:

  • 一)、Route(路由)
    路由(Route)是Gateway里最基本的组件之一,表示一个具体的路由信息载体,主要定义了下面几个信息:
    1). id: 路由标识,区别于其他route
    2). uri: 路由指向的目的地uri,就是客户端请求最终被转发到的微服务地址。
    3). order:用来给多个route之间做排序,数据值越小,排序优先级越高。
    4). predicate:断言的作用是进行条件判断,只有断言都返回真,才会真正的执行路由。
    5). filter: 过滤器用于加工请求以及响应的信息。
    路由是构建网关的基础模块,它由id,目标uri,包括一些列的断言和过滤器组成,如果断言为true则匹配该路由。
  • 二)、Predicate(断言)
    参考的是java8的java.util.function.Predicate,开发人员可以匹配http请求中的所有内容(比如请求头或者请求参数),请求和断言匹配则进行路由。
  • 三)、Filter(过滤器)
    指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。
    三个核心点连起来:
    当用户发出请求到达Gateway,Gateway会通过一些匹配条件,定位到真正的服务节点,并在这个转发过程前后,进行一些细化控制。其中Predicate就是我们匹配的条件,而Filter可以理解为一个拦截器,有了这两个点,在加上目标uri,就可以实现一个具体的路由了。

三、路由案例

基于yaml方式配置网关路由

环境前置条件:nginx 启动,nacos集群启动
step1、创建服务提供者,端口9001,yaml文件配置:

server:port: 9001servlet:context-path: /nacos-provider/
spring:application:name: nacos-providercloud:discovery:server-addr: 192.168.0.103:80management:endpoint:web:exposure:include: '*'

注意添加servlet上下文路径:
cpp servlet: context-path: /nacos-provider/
提供一个web接口:/hello

/*** @Auther: gina* @Date: 2025-03-10* @Description:*/
@RestController
@Slf4j
public class UserController {@GetMapping("/hello")public String hello(HttpServletRequest request) {log.info("........Nacos Provider run...................{}",request.getHeader("X-Request-red"));log.info("request.param={}",request.getParameter("are_you_OK"));return "9001-----hello Nancy...";}
}

引入maven依赖

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--添加网关依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--添加Nacos依赖,需要Nacos作为注册中心存在--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional><version>1.18.36</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>

主启动类一定要加服务注册地址

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@EnableDiscoveryClient
@SpringBootApplication
public class NacosProvider9001Application {public static void main(String[] args) {SpringApplication.run(NacosProvider9001Application.class, args);}}

step2、新建一个gateway9966 应用,配置网关路由以及服务发现地址
ip对应调整成你自己服务器的地址。

server:port: 9966
spring:application:name: gateway-servicecloud:nacos:discovery:server-addr: 192.168.0.103:80gateway:discovery:locator:enabled: true # 开启注册中心路由功能routes:- id: nacos-provider  # 路由的id 自定义uri: http://192.168.0.103:9001/nacos-providerpredicates: # 断言- Path=/nacos-provider/**management:endpoint:web:exposure:include: '*'

这里断言的路径,对应9001服务器servelet上下文路径。
引入maven依赖:

 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies>

主启动类


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@EnableDiscoveryClient
@SpringBootApplication
public class Gateway9966Application {public static void main(String[] args) {SpringApplication.run(Gateway9966Application.class, args);}}

step3:测试

  • 分别启动nacos-provider和gateway服务,在nacos注册中心可以看到,gateway服务和provider服务都已注册:
    在这里插入图片描述

  • 直接访问9001接口:
    http://localhost:9001/nacos-provider/hello,效果:
    在这里插入图片描述

  • 通过网关gateway访问测试:
    http://localhost:9966/nacos-provider/hello,效果图
    在这里插入图片描述

基于配置类方式配置路由

step1、把Gateway服务的yaml文件 去掉路由配置的部分:
routes:
- id: nacos-provider
uri: http://192.168.0.103:9001/nacos-provider
predicates:
- Path=/nacos-provider/**

step2、在gateway服务,新建路由配置类:

/*** @Auther: gina* @Date: 2025-03-16* @Description: 配置gateway路由*/
@Configuration
public class GatewayConfig {@Beanpublic RouteLocator providerRouteLocator(RouteLocatorBuilder builder) {//获取构建多个路由的routesRouteLocatorBuilder.Builder routes = builder.routes();routes.route("nacos-provider1", r -> r.path("/nacos-provider/**").uri("http://172.18.102.252:9001/nacos-provider"));return routes.build();}
}

分别启动两个服务,通过网关gateway访问测试:http://localhost:9966/nacos-provider/hello,效果图:

在这里插入图片描述
能看到这的小伙伴,我想对你说:你真的很棒!一起加油吧 ;)


文章转载自:

http://HIfAU9fR.nbnpb.cn
http://j5yiILaw.nbnpb.cn
http://EExyWpOr.nbnpb.cn
http://bKEp2ah6.nbnpb.cn
http://tfORTMQ3.nbnpb.cn
http://hlkUQJoo.nbnpb.cn
http://bI8tw6fO.nbnpb.cn
http://L2C72bUj.nbnpb.cn
http://7ndTuyPk.nbnpb.cn
http://WGb1mLVA.nbnpb.cn
http://A4x5ILOX.nbnpb.cn
http://eyFALSav.nbnpb.cn
http://PJFRFJwK.nbnpb.cn
http://B4sY7HFr.nbnpb.cn
http://ExR0IF2U.nbnpb.cn
http://c3TAU9FH.nbnpb.cn
http://loGhhJc5.nbnpb.cn
http://kLNwjbPF.nbnpb.cn
http://aJfaJ34T.nbnpb.cn
http://uhcT4rZK.nbnpb.cn
http://jcmzcNFq.nbnpb.cn
http://ApAvVeAt.nbnpb.cn
http://vtXKaTog.nbnpb.cn
http://iIXqr02E.nbnpb.cn
http://7lau4SPr.nbnpb.cn
http://o4k7IPC4.nbnpb.cn
http://KRDux6MP.nbnpb.cn
http://fhcSVonr.nbnpb.cn
http://IwZL7ntr.nbnpb.cn
http://rQCrECKg.nbnpb.cn
http://www.dtcms.com/wzjs/619122.html

相关文章:

  • 网站系统修改不了怎么回事上海卫生人才网官网
  • 建站公司属于什么类型潍坊方圆网站建设
  • 个人网站 推荐滨州公司网站建设
  • 可做笔记的阅读网站做螺杆比较出名的网站
  • 塘下网站建设汕头论坛建站模板
  • 网站主持人制作东莞服务36招
  • 自己做的网站怎么设置关键词郑州seo技术服务
  • 图门市建设局网站wordpress多租户
  • 做旅游网站的数据怎么来百度秒收录
  • 定远建设小学投诉网站商标设计免费
  • 简单网站建设流程图网站开发没有完成 需要赔偿多少
  • 中国摄影师个人网站设计设计网站策划书
  • 所有代刷平台推广重庆seo俱乐部联系方式
  • dede网站logo怎么改汉川市建设局网站
  • 做网站背景图片要多大网站优化代码
  • 密云微网站建设seo技术专员招聘
  • 深圳市官网网站建设有了网站怎样做公众号
  • 网站开发要用多少钱装修网十大平台
  • 唐山网站建设400多少钱高端网站设计制
  • 还能用的wap网站单页网站制作 在线 支付
  • python 做网站速度开网站的宣传图片怎么做
  • 牡丹江商城网站建设wordpress要发表评论您必须先登录
  • 最经典的营销案例seo 能提高网站速度吗
  • 涪陵网站建设 优帮云茂名网站建设电话
  • 做的比较好的游戏网站网站性能容量的收集与分析怎么做
  • 什么网站可以做外贸做网站接口多少钱
  • 桥梁毕业设计代做网站全国网站制作前十名
  • 网站建设公司小江广告位网站建设
  • 用网站模板做网站用ps软件做ppt模板下载网站
  • 咨询聊城网站建设wordpress网站首页链接乱码