Spring Cloud Kubernetes之实战三网关Gateway

本文介绍了如何在Kubernetes环境中使用Spring Cloud Gateway作为微服务网关,解决客户端直接与微服务通信带来的问题,如复杂性、跨域、认证等。通过配置,展示了创建项目、引入依赖、设置路由规则、处理跨域的方法,并提到了与Netflix ZUUL的区别。
摘要由CSDN通过智能技术生成

微服务化已成为当今主流趋势,但不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:

  1.  客户端会多次请求不同的微服务,增加了客户端的复杂性

  2.  存在跨域请求,在一定场景下处理相对复杂

  3.  认证复杂,每个服务都需要独立认证

  4.  难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施

  5.  某些微服务可能使用了防火墙 / 浏览器不友好的协议,直接访问会有一定的困难 

网关会解决这些问题,可以将服务跟外网进行隔离起到一定的保护作用,同时服务间局域网通信更加快捷。而且在网关中可以做限流、权限校验,使得服务更加专注自身业务。

优点如下:

  1.  安全,只有网关系统对外进行暴露,微服务可以隐藏在内网,通过防火墙保护

  2.  易于监控,可以在网关收集监控数据并将其推送到外部系统进行分析

  3.  易于认证,可以在网关上进行认证,然后再将请求转发到后端的微服务,而无须在每个微服务中进行认证

  4.  减少了客户端与各个微服务之间的交互次数

  5.  易于统一鉴权

  6. 可以用来作LB

接下来codereview

环境:

    ubuntu16.04

    docker18.04

    k8s1.13.x +

    maven3.5.3

    java1.8 +

    springboot 2.1.6

1. 前提

Ubuntu下安装docker18.04 or 其它较高版本,k8s1.13.x及以上,jvm环境等。

2. 创建项目

一如既往,利用eclipse或IDEA创建一个项目,此处略了。

创建好项目之后,首先引入依赖:

<!-- 不要依赖spring-boot-starter-web,会和spring-cloud-starter-gateway冲突,启动时异常 -->

        <dependency>

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值