springcloud-配置网关(Zuul)
1. 为什么需要API Gateway
Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,
Spring Cloud Config服务集群配置中心,似乎一个微服务框架已经完成了。我们还是少考虑了一个问题,
外部的应用如何来访问内部各种各样的微服务呢?
在微服务架构中,后端服务往往不直接开放给调用端而是通过一个API网关根据请求的url,路由到相应的服务。当添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端。所以就有了Spring Cloud Zuul
2. Spring Cloud Zuul
Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器。
Spring Cloud Zuul路由是微服务架构的不可或缺的一部分,提供动态路由,监控,弹性,安全等的边缘服务。
3. 创建SpringCloud项目(springcloud06)
双注册中心、双消费者,单生产者、单服务网关
这里没有搞熔断器,连接模板是feign
1、创建子模块springboot名称为:gateway
添加与springcloud06的父子关系,并继承pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zking</groupId>
<artifactId>springcloud06</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>gateway</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gateway</name>
<description>子模块-服务网关</description