一篇入门GateWay做为微服务的网关的使用


点击上方蓝色字体,关注咱们git


什么是路由网关?它存在乎义又何在?


        在微服务中,咱们会有不少个微服务,可是客户端只有一个,它有调用咱们远程接口的时候,就要使用不一样的地址,好比下边三个微服务(也是本项目中出现的用到的三个微服务,获取代码地址见文末)web

服务名 项目名 示例接口调用地址
商品模块 gateway-goods-7001 http://localhost:7001/goods/main
订单模块 gateway-order-8001 http://localhost:8001/order/main
用户中心模块 gateway-user-9001 http://localhost:9001/user/main

这样,客户端在调用的时候,还要使用不一样的地址(主机名和端口),能不能就直接使用一个地址能够调用呢?就相似于咱们以前写的一个war包那种项目?好比:spring

http://localhost:80/goods/main 商品模块
http://localhost:80/order/main 订单模块
http://localhost:80/user/main 用户中心模块
GateWay的入门操做
  • 引入依赖pom.xml后端

  • 配置application.yml浏览器

  • 主启动类微信

好了,而后直接启动那三个微服务和这个项目,在浏览器中,就能够直接使用http://localhost:80/goods/main这样的地址访问各个服务了。网络

GateWay的三大组件

路由(Route)app

    这个在上边的入门操做中已经演示过了,配置spring.cloud.gateway.routes来进行路由匹配。前后端分离

     可是,在上边咱们配置的uri是网络地址(固然,能够直接经过咱们的localhost配置到网络上其余的地址的,如baidu.com)。在微服务中,咱们确定是不能直接写死的,并且一个微服务也可能会有多个地址,因此,咱们必定要配置成注册中心的微服务名。修改的配置内容以下:ide

        除了上述的application.yml外,还有一种方式配置路由(我猜你确定不要说是applicatin.properties吧)。那就是经过注入SpringBean的方式,这里就不说,有兴趣的能够去官网看一下。可是建议你使用配置文件配置,由于能够集成Nacos进行动态配置,要比写进代码里更加灵活。

断言(Predicates)

在上边的配置文件中,routes中的predicates就是一系列的断言,意思就是说,只有知足这样的条件就能够怎么怎么地。上边到了Path这一个属性,除此以外,还有

path是根据路径匹配,经常使用的还有Method(请求方法)、Host(请求的地址)等。这几个断言是“且”的关系,也就是说,若是你配置了多个predicates就要同时知足才能进行路由转发。详细参考GateWay

过滤器(Filter)

就是在web应用中使用的Filter,它有什么用呢?最多见的用处就是在先后端分离项目中,咱们能够在网关层进行Token等受权的验证(明天给大家来个实例)。


获取本项目代码及更多学习

    关注后,在后台回复 SpringCloud 获取 




扫描二维码

获取更多精彩

小鱼与Java





SpringCloud超简单的入门!!!


使用Nacos做为注册中心和配置中心,不错


求转发,求好看


本文分享自微信公众号 - 小鱼与Java(Fish_Java)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索