一、前言
环境:
Spring Cloud版本 | Spring Boot版本 | JAVA | IDE |
Greenwich.SR1 | 2.1.6.RELEASE | 1.8 | IDEA |
为模拟实际开发,本篇教程除alh-tms外,所有的参数均从远程配置中心读取,若是不用远程配置中心,请在本地应用直接写各项参数即可。
涉及项目:
alh-config-server(6001): 保持启动状态,本篇不涉及修改
alh-eureka-server(6000):保持启动状态,本篇不涉及修改
alh-tms(8001):保持8001实例启动状态,本篇不涉及修改
alh-gateway(7000)
完整教程全部章节目录:https://blog.youkuaiyun.com/tuoyun6647/article/details/93501029
二、介绍
首先先提出几个问题:
Q1:微服务架构中,我们会有很多服务,比如访问服务1的时候,可以直接去访问服务1,访问2的时候直接去2,但是如果在我们的服务如果部署在“容器”中,容器内部是个“局域网”环境,内部可以相互调用,但是对外只能映射一个端口,只能提供一个入口怎么办?
Q2:为了避免接口“裸奔” ,服务被调用时需要做权限验证,如果我们有50个微服务,如果每个服务都做权限认证,当需要改变认证方式技术实现时,我们需要去改50个微服务,此时我们怎么保证效率?怎么保证准确性?怎么保证不失控?
Q3:如果需要一个界面,监控所有的API流量,或者统一采集接口调用日志信息,要怎么做?
Q4:如果要进行统一限流,统一熔断要在哪里做,怎么做?
为了实现以上几个需求,于是就有了微服务体系中的网关,网关是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,微服务网关具备以下几个基本功能:
(1)路由转发
(2)统一权限认证
(3)统一监控
(4)限流、熔断
准备工作:
1、启动远程配置中心alh-config-server(6001)
2、启动注册中心alh-eureka-server(6000)
3、启动服务alh-tms(8001)
三、Gateway网关(整合Eureka)
3.1 增加配置文件
本章需创建alh-gateway项目,远程配置中心alh-config-server先增加alh-gateway的配置文件,提交至git