订阅博客
收藏博客
微博分享
QQ空间分享

闫德利,04 微服务网关:Spring Cloud Zuul和Spring Cloud Gateway,fill

频道:淘宝彩票官网下载手机版 标签:关音山隆上记 时间:2019年10月26日 浏览:298次 评论:0条

1、为何要用微服务网关

在基于微服务架构进行软件系统开发的时候,各个微服务都是部署在内网服务器的(当然也可以部署到公网服务器),各个微服务提供的API接口无法通过外网进行调用,这样的部署规划是因为直接将各个微服务对外暴露存在很大的安全隐患,并且不容易进行统一管理。

因此,微服务网关就此诞生。

微服务网关用于统一对外提供接口服务,将客户端请求通过路由调度的方式转发到内部的各个微服务提供的Restful接口上,并在接口调度的过windy程中实现鉴权、限流大丹犬、权限管理等公欧美男同志共的功能。

2、微服务网关的两种解决方案

在使用Spring Cloud实妻威平舒道现微服务的时候,有两种服务网关可选:

(1)Spring Cloud Zuul

在Spring Cloud这个框架发布的前几个版本,集成的都是 Netflix闫德利,04 微服务网关:Spring Cloud Zuul和Spring Cloud Gateway,fill 公司提供的开源Zuul网关,并没有向开发者提供更多的选择。

Netflix Zuul有两个版本:Zuul 1.x和Zuul 2.x。Zuul 巨腿螳1.x基于Servlet 2.5技术开发而成,是一个阻塞型框架,不支持任何的长连接;Zuul 2.x基于Netty框架开发而成,是一个非阻塞型NIO框架,支持长连接、高性能;但是很不巧,Spring Cloud集成的是这个Zuul 1.x版本。

由于历史原因,基于Spring Cloud Finchley之前的版本开发的微服务,项目中必然是使用Spring Cloud Zuul作为猫配种服务网关的。

(2)Spring Cloud 眼型Gateway

随着Spring Cloud的版本迭代,在Spring Cloud Finchley以及以上的版本,开始提供Spring Cloud Gateway作为网关服务。

Spring Cloud Gateway闫德利,04 微服务网关:Spring Cloud Zuul和Spring Cloud Gateway,fill基于React Project,是一款高性能非阻塞型NIO框架,整体性能相对来说要比Spring Cloud Z苍术uul更高。

如上图所示,红色线框内是各个微服务,处于内网管控、不对外开放服务;红色线框外,即箭头指向的位置,就是网关的作用:为各个微服务提供统一对外的服务能力。

3、使用Spring Cloud Zuul作为服务网关

(1)使用IntelJ IDEA创建一个闫德利,04 微服务网关:Spring Cloud Zuul和Spring Cloud Gateway,fillSpring Cloud项目,如下图所示

打开pom.xml文件,可以看到引入了於Zuul依赖:



org.springframework.cloud
spring-cloud-starter-netflix-zuul

(2)配置Zuul网关

在/resources目录下新建一个bootstrap.yml文件,增加如下配置信息:

# 设置服务名称
spring:
applica艾莉莉tion:
name: ZUUL-SERVICE
cloud:
config:
discovery:
enabl陈乐荣ed: true
service-id: CONFIG-SERVER
profile: dev

(3)启用Zuul网关

在/src/main/java中找到项目的入口类,增加注解:@EnableZuulProxy

package com.gzliulan.demozuul;
import org.springframework.boot.SpringApplica闫德利,04 微服务网关:Spring Cloud Zuul和Spring Cloud Gateway,fillti王思懿on;
import org.springframework.boot.autoconfig三七粉怎么吃ure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.羊驼狂欢节EnableZuulProxy;
@SpringBootApplication
@EnableZuulProxy
public class DemoZuu千禧试机号lApplication {
public static void main(String[] args) {
SpringApplication.run(DemoZuulApplication.class, args);
}
}

到此,一个最简单的Zuul服务网关开发完毕。

4、使用Spring Cloud Gateway作为服务网关

查看官网可知,截止本文发表的此刻,Spring Cl21世纪教育网oud Gateway最新版为 2.1.0 GA,而开发版已经迭代到 2.2.0 Snapchat

在开发商业项目时,不要引入 监禁姊妹教师Snapchat版,它是一个不稳定的开发版本;我们在实际项目开发中应该选择GA版本。

(1)如上面Zuul网关一样,使用IntelJ IDEA创建一个Spring Cloud项目

(2)在pom.xml文件中添加S闫德利,04 微服务网关:Spring Cloud Zuul和Spring Cloud Gateway,fillpring Cloud Gateway依赖



org.spr小康标准ingframework.cloud
sprin闫德利,04 微服务网关:Spring Cloud Zuul和Spring Cloud Gateway,fillg-cloud闫德利,04 微服务网关:Spring Cloud Zuul和Spring Cloud Gateway,fill-starter-gatew特种部队3ay


到此为止,一个最简单的Spring Cloud Gateway网关开发完毕。