美文网首页
Api-Gateway(网关)

Api-Gateway(网关)

作者: 你值得拥有更好的12138 | 来源:发表于2019-06-21 16:00 被阅读0次

    以下概念性的语言均为本人理解,欢迎大佬指出错误,小白希望深入理解请到官网
    Github源码参考:https://github.com/HanJuly/SpringCloudDemo

    什么是API网关

    网络层面的网关指网关(Gateway)又称网间连接器、协议转换器。
    在这里我们指的网关是一个软件高层的概念,它是一个对所有微服务进行集中管理的系统,可以具有分流,鉴权,过滤规则等功能的系统。

    为什么需要网关

    1.在实际的生产中,我们不能把后面的所有服务都暴露给前端,那将是很危险的。

    2.我们也需要在网关做一些路由的工作,比如对同样的实例进行划分域,10台在开发域,20台在生产域。这时就需要路由避免开发人员与运维人员或者测试人员相互干扰
    https://blog.csdn.net/forezp/article/details/83792388
    3.如果鉴权系统或者一些共同的过滤规则在网关,那么我们就可以统一修改,不必每个服务维护一份。

    搭建:

    pom.xml配置

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

    路由功能

    不需要在SpringBoot中加注解,直接在yaml中配置:

    spring:
      cloud:
          gateway:
            discovery:
              locator:
                enabled: true #开启默认路由
                lowerCaseServiceId: true  #允许服务名小写
            routes
            - id: path_route  #路由的名字
              uri: lb://HELLO-PROVIDE  #路由终点,lb表示用负载均衡的方式发送
              predicates:
                - Path=/gatewy/**   #凡是这样形式的url都会被路由,后面的通配符与Ant类似
              filters:
                - StripPrefix=1  #发送时去掉前缀
    

    使用postman验证,它将调用到Hello-provide这服务:


    网关服务通过负载均衡转发的日志


    image.png

    过滤器链

    相关文章

      网友评论

          本文标题:Api-Gateway(网关)

          本文链接:https://www.haomeiwen.com/subject/ecaeqctx.html