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

山东省建设执业注册中心网站网址导航

山东省建设执业注册中心网站,网址导航,信用中国 网站 支持建设,企业网站如何做官网地址: Spring Cloud Gateway 目录 1、SpringGateway简介 1、什么是网关 2、为什么用网关【为了转发】 2、应用: 1.启动nacos 2.创建网关项目 3.网关配置1 4.网关配置2【了解】 5.过滤器配置【了解】 1、SpringGateway简介 核心功能有三个&…

官网地址: Spring Cloud Gateway

目录

1、SpringGateway简介

1、什么是网关

2、为什么用网关【为了转发】

2、应用:

1.启动nacos

2.创建网关项目

3.网关配置1

4.网关配置2【了解】

5.过滤器配置【了解】


1、SpringGateway简介

核心功能有三个:

  • 路由:用于设置转发地址的

  • 断言:用来判断真实应该请求什么地址

  • 过滤器:可以过滤地址和处理参数

1、什么是网关

网关是后台服务的统一入口,类似于平时网络里提到的网关。

2、为什么用网关【为了转发】

在微服务架构开发中,网关是必要有的服务,它可以统一入口,解决跨域,负载均衡,各微服务通信等微服务整体管理和通信的。

场景:如果没有网关,前台要查用户信息,先往user的微服务下发送请求。然后又要查学生的信息,再往student的微服务下发送请求。这样的话,我要知道所有的微服务,他们的ip是什么?他们的端口是什么?才能把请求发送到他们的里面。那对于前端来讲的话,他要管理的微服务就太多了。而且还有一个问题,前端这么做,它是没有负载均衡的。它不知道我究竟应该发给谁?比如说user这个服务现在搭建了集群有三个,那请求过来了,我究竟是往集群里的哪一个发送呢?对于前端来说也是不知道的。

后台为了解决这个问题,就是你别搞这么复杂了,发送请求的时候都往一个地址发,但是url不一样。至于跳到哪个微服务,我后台来解决。Gateway就是专门来处理这个事的。在网关里面 集成了负载均衡 咱们就不用考虑这集群起来的微服务该给哪一个发了。

对于前端来讲,它发的不是网关的请求地址,而是nginx 的请求地址。发送到nginx地址后,再通过反向代理,代理到网关上。所以对于前端来说,只需要知道nginx就可以了,网关是不暴露给前端的。

一般来说都会为网关建立一个单独的微服务。

2、应用:

1.启动nacos

2.创建网关项目

【2.1添加pom.xml依赖】

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version></parent><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><jwt.version>0.7.0</jwt.version><fastjson.version>1.2.60</fastjson.version><spring-cloud-alibaba.version>2.0.3.RELEASE</spring-cloud-alibaba.version><spring-cloud.version>Finchley.SR2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins></build>

【2.2】创建启动类:

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

【注意】

网关是一个非常干净的工程,不会添加其它中间件的配置,所以网关工程里只有一个Application的启动类和配置文件。

启动类的注解@SpringBootApplication注解中可能开启的其它中间件的@EnableXXX,可以把其它中间件的注解排除掉,保证网关只启动自己的应用,只完成网关功能。

# 如果导入别人的项目,依赖是有传递性的这样你的项目里依赖的中间件就会很多,可以通过exclude属性排除掉。这样其他的中间件就不会启动了。
@SpringBootApplication(exclude = {XXXX.class, YYYY.class})

【2.3】编写bootstrap.yml配置文件

spring:cloud:nacos:discovery:server-addr: 192.168.146.128:8848config:server-addr: 192.168.146.128:8848inetutils:preferred-networks: 192.168.146

查看端口号

【2.4】编写application.properties配置文件

spring.application.name=gateway
server.port=300

创建一个页面来进行测试   【注意要建立index.html页面】要在static包下

【2.5】启动项目

3.网关配置1

删除页面

网关配置官方文档: Spring Cloud Gateway

【3.0】改动:

   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><scope>compile</scope></dependency>
修改为:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><scope>compile</scope></dependency>

【3.1】添加依赖

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

【3.2】添加application.yml 配置文件:

spring:cloud:gateway:routes:- id: baidu_routeuri: https://www.baidu.compredicates:- Query=baidu

spring:
   cloud:
     gateway:
       routes:
         - id: baidu_route(路由id唯一,是一个数组,可以配置多个路由)
           uri: https://www.baidu.com(路由到的地址)
           predicates:(断言)
             - Query=url, baidu(如果存在url和baidu,那么跳转到uri地址)

【3.3】启动项目:

http://localhost:300/baidu不会跳转到百度,http://localhost:300/baidu?baidu才会跳转到百度,是根据参数做断言。?后面的值下图

输入正确跳到页面

【如果导入gateway依赖报错,试着修改下面的的java版本】

4.网关配置2【了解】

  1. The Path Route Predicate Factory

Path路由断言工厂接受一个参数:采用Spring PathMatcher 模式。

spring:
  cloud:
    gateway:
      routes:
          - id: path_route
          uri: https://example.org
          predicates:
            - Path=/red/{segment},/blue/{segment}

请求需要以red或者blue结尾,后面的参数会路由过去 例如:/red/1 ,/red/blue ,/blue/green等。

spring:
  cloud:
    gateway:
      routes:
        - id: baidu_route
          uri: https://www.baidu.com
          predicates:
            - Path=/red/**

5.过滤器配置【了解】

##公式模板
- id: third_party_route
  uri: lb://service-name
  predicates:
    - Path=/url1/url2/urln/**
  filters:
    - RewritePath=/url1/url2/urln/(?<segment>/?.*),/$\{segment}
    

##例子代码
spring:
  cloud:
    gateway:
      routes:
        #用户中心
        - id: user-route
          uri: lb://user
          predicates:
            - Path=/api/services/user/**
          filters:
            - RewritePath=/api/services/user/(?<segment>/?.*),/user/$\{segment}

id:取一个名字,自定义,见名知意,不要有下划线(规约)

uri:接收请求后真实转发的地址,lb:开头代表用负载均衡的方式找注册中心名字叫user服务的微服务

predicates:请求地址是以/api/services/user/开头,后接任意字符

filters:将请求地址重写成:/user/+参数/方法等

http://www.hkea.cn/news/268714/

相关文章:

  • 触摸屏网站如何做泰州seo网络公司
  • 银川app购物网站制作公司搜狗收录入口
  • 做单页网站要多少钱wordpress免费网站
  • 网站建设性价比高优化设计官网
  • 电脑手机网站相互跳转西安seo关键词排名优化
  • 一般做网站用什么字体比较合适搜索引擎营销是什么
  • 去什么网站发贴做推广seo及网络推广招聘
  • 如何批量建站什么是互联网营销
  • 哈尔滨网站建设如何搭建一个网站平台
  • 哪些网站可以做任务网络营销推广的基本手段
  • 互联网舆情报告什么是seo营销
  • 餐饮商家做网站的好处沈阳关键词优化费用
  • 如何把网站的文字编辑网站页面优化内容包括哪些
  • 安徽做公司网站哪家好销售策略和营销策略
  • 做游戏都需要什么网站吗域名注册腾讯云
  • 北京建设厅网站谷歌关键词搜索
  • 如何识别一个网站是否做的好谷歌关键词挖掘工具
  • 网站建设专家网店营销推广
  • 做试玩网站搜索引擎优化答案
  • 外贸家具网站百度引擎搜索网址
  • 公司网站的栏目设置肇庆seo优化
  • 如何制作一个论坛网站网络服务器配置与管理
  • 北京中国建设部网站有什么平台可以推广
  • flash网站优缺点厦门百度seo
  • 贵阳利于优化的网站百度搜索引擎推广步骤
  • 金色 网站 模板外链是什么
  • 网站有多难做如何做推广引流赚钱
  • 建设企业网站怎么样百度首页 百度
  • 热烈祝贺网站上线泉州seo代理计费
  • 网站平台建设意见长沙有实力seo优化