8.API网关的意义

1.API网关

  1. 避免将背部信息泄露给外部
  2. 为微服务添加额外的安全层
    • 意义
  3. 集合多个API
  4. 统一API入口(天气预报只要依赖网关就好了,不需要关心什么城市数据API和天气数据API):Pc就请求Web应用API(数据量大),移动就请求移动API

2.使用api网关的利与弊

  1. 好处:降低构建微服务的复杂性;微服务模拟与虚拟化
  2. 弊端:在架构上需要额外考虑更多编排与管理;路由逻辑配置要进行统一的管理

3.常见api网关的实现方式

  1. Nginx作为API网关
  2. Zuul,也是netflix公司开发的,SpringCloud封装好了,认证、鉴权、负载均衡、弹性路由等
  3. Kong

4.集成Zuul

  1. mico-weather-eureka-client-zuul新建copy,导入spring-cloud-starter-netflix-zuul
  2. 修改application添加@EnableZuulProxy
  3. 修改properties
  4. 访问:http://localhost:8080/hi/hello,这个就是代理过的

5.API网关设计与实现

  1. 集成zuul:天气采集,数据,城市,天气预报;只修改msa-weather-report-eureka-feign-gateway
  2. 本来天气预报依赖数据与城市,现在只要依赖zuul会好了,进行如下配置
spring.application.name=msa-weather-eureka-client-zuul
#启动后就会找这个服务器,并把自己注册进去
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

zuul.routes.city.path=/city/**
zuul.routes.hi.serviceId=msa-weather-city-eureka

zuul.routes.data.path=/data/**
zuul.routes.data.serviceId=msa-weather-data-eureka
  1. msa-weather-eureka-client-zuul

6.天气预报微服务重构,改为依赖网关

  1. 修改DataClient

8.运行测试重构后的系统

  1. 运行eureka-server8761等
  2. 访问:http://localhost:8087/report/cityId/101282002
  3. 期间网关的一个问题导致city客户端访问不到:properties中zuul.routes.city.serviceId=,city写成了hi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值