作用


(1)统一入口

​ 为全部微服务提供唯一入口点,网关起到内部和外部隔离,保障了后台服务的安全性。

(2)鉴权校验

识别每个请求的 权限,拒绝不符合要求的请求。

(3)动态路由

动态的将请求 路由 到不同的后端集群中。

(4)降低耦合度

减少客户端与服务的 耦合 ,服务可以独立发展。通过网关层来做映射。

搭建


1、添加依赖

创建一个Spring Boot项目,然后添加以下依赖。
ps:以下依赖适用于spring boot 2.x

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>

2、添加注解

在启动类中添加 @EnableZuulProxy 注解。

4、配置eureka

# eureka 配置
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.instance.prefer-ip-address=true

4、使用方式

网关的作用是为全部微服务提供唯一的入口,那么其他服务是怎样通过网关的呢?

采用的是 IP:端口/服务名称/请求地址 的方式。例如:

http://127.0.0.1:9000/ebook.product.core/product/list

其中 127.0.0.1 对应IP,9000 对应端口,自然不用说。

ebook.product.core 对应的是服务名称,也就是服务的 application.properties 配置文件中的 spring.application.name=ebook.product.core配置。

如果服务原本的url是 http://127.0.0.1:8020/product/list,那么上边的 product/list,就与此时的对应。

5、7种常用路由指定方式

## 1 ###################### 路由指定:URL指定  #############################
## URL匹配关键字,如果包含关键字就跳转到指定的URL中
#zuul.routes.book-product.path=/book-product/**
#zuul.routes.book-product.url=http://127.0.0.1:8020/## 2 ###################### 路由指定:服务指定1  #############################
##将路径的/book-product/引到 eureka的e-book-product服务上
##规则:zuul.routes.路径名.path
##规则:zuul.routes.路径名.serviceId=eureka的服务名
##http://127.0.0.1:9010/book-product/product/list
##等同于
##http://127.0.0.1:9010/e-book-product/product/list
#zuul.routes.book-product.path=/book-product/**
#zuul.routes.book-product.serviceId=ebook-product-core## 3 ###################### 路由指定:服务指定1   #############################
#zuul.routes后面跟着的是服务名,服务名后面跟着的是路径规则,这种配置方式更简单。
#zuul.routes.ebook-product-core.path=/book-product/**## 4 ###################### 路由排除:排除某几个服务  #############################
##排除后,这个地址将为空 http://127.0.0.1:9010/e-book-product/product/list
## 多个服务逗号隔开
#zuul.ignored-services=ebook-product-core## 5 ###################### 路由排除:排除所有服务  #############################
#由于服务太多,不可能手工一个个加,故路由排除所有服务,然后针对要路由的服务进行手工加
#zuul.ignored-services=*
#zuul.routes.ebook-consumer-feign-fallback.path=/book-consumer/**## 6 ###################### 路由排除:排除指定关键字的路径  #############################
# 排除所有包括/list/的路径
#zuul.ignored-patterns=/**/list/**
#zuul.routes.ebook-product-core.path=/book-product/**## 7 ###################### 路由添加前缀:为所有路径添加前缀  #############################
##http://127.0.0.1:9010/book-product/product/list
##必须改成
##http://127.0.0.1:9010/api/book-product/product/list
#zuul.prefix=/api
#zuul.routes.ebook-product-core=/book-product/**

微服务中网关的作用及搭建相关推荐

  1. 谈谈微服务中的 API 网关(API Gateway)

    前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉. 那么,在本篇文章中,我们就一起来探 ...

  2. api商品分享源码_谈谈微服务中的 API 网关(API Gateway)

    在本篇文章中,我们就一起来探讨一下 API 网关在整个微服务分布式架构中的一个作用. # 背景我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系, ...

  3. nginx工作笔记005---nginx配置负载均衡_在微服务中实现网关集群_实现TCP传输层协议__http协议的负载均衡

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 我们在微服务中,由于网关的存在,后来,在nginx中都不需要在配置其他服务的地址了,只需要,配置一 ...

  4. API 网关在微服务中的应用

    目录 一.什么是 API 网关? 二.微服务架构对 API 网关的需求 三.API 网关在微服务架构中的工作 四.API网关的实现--问题和解决方案 可扩展性和性能 反应式编程模型 服务调用 服务发现 ...

  5. python 微服务 网关_微服务中的 API 网关(API Gateway)

    我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api ...

  6. java api gateway_微服务中的 API 网关(API Gateway)

    背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest ...

  7. 微服务架构-服务网关(Gateway)-服务网关在微服务中的应用

    服务网关在微服务中的应用 我们将目光转向Spring Cloud应用的外围,讨论微服务架构下的各个模块如何对外提供服务. 1.对外服务的难题 微服务架构下的应用系统体系很庞大,光是需要独立部零的基础组 ...

  8. 使用微服务/ API网关(如Solo Gloo)公开在AWS EKS中运行的微服务

    因此,您决定在AWS中运行Kubernetes工作负载. 正如我们在设置AWS EKS 之前所看到的,需要很多耐心和头痛. 您也许可以使其正常运行. 对于其他用户,您应该从Weaveworks中 ek ...

  9. gloo pytorch_使用Solo Gloo等微服务/ API网关公开在AWS EKS中运行的微服务

    gloo pytorch 因此,您决定在AWS中运行Kubernetes工作负载. 正如我们在设置AWS EKS 之前所看到的,需要很多耐心和头痛. 您可能可以使其正常运行. 对于其他用户,您应该从W ...

最新文章

  1. 使用memcache做web缓存
  2. idea不区分大小写设置_我的 IntelliJ IDEA 一直都是这么设置的,效果很棒!
  3. CF919D Substring (dag dp)
  4. Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框
  5. Python学习笔记:数据库2
  6. Codeforces Gym 100286I iSharp 水题
  7. oracle无法重建em,ORACLE 11g, EM 无法启动的问题和重建
  8. Phonegap + JqueryMobile常见问题
  9. 【hihocoder - offer编程练习赛60 C】路径包含问题(LCA,树上倍增)
  10. scrapy爬取汽车之家宝马5系图片
  11. 现实世界的Windows Azure:与iQmetrix的市场营销副总裁Anne Weiler对话
  12. 跨越『时空』的难样本挖掘!
  13. Android报错: Caused by: java.lang.ClassCastException: com.github.mikephil.charting.charts.PieChart can
  14. 4和2大于号小于号箭头那边_小于号是哪个方向
  15. 初中计算机ps教程,初中信息技术《Photoshop 初探——基本操作》教学设计
  16. 致我们终将逝去的高考
  17. liquibase报错 waiting for changelog lock
  18. java读取pdf总结
  19. 腾讯安全月报丨发布安心计划、携手上汽共建安全实验室、多项产品入选国际研报……
  20. FRED应用:激光空间滤波器的模拟

热门文章

  1. 正则匹配数组全部是数字
  2. (专升本)Excel(相同/不同工作簿下的工作表移动或复制)
  3. 最新VLC命令行参数大全(一)
  4. 01【托业口语】- PART1 Read a text aloud
  5. vsto c#取消隐藏sheet所有列
  6. ios--时间格式化--NSDateFormatter
  7. python loadlibrary_Python ctypes cdll.LoadLibrary,实例化一个对象,执...
  8. 百度站内搜索对网站的影响
  9. 2014台州学院ACM集训队寒假练习赛1
  10. 杭电OJ 1056 float 和double 相等以及大小的比较