由于服务粒度的不同以及数据包装因端而异的差异需求,我们在之前章节中引入了 BFF 层,调用端可以直接调用 BFF 层,由 BFF 层再将请求分发至不同微服务,进行数据组装。由于很多子服务都需要用户验证、权限验证、流量控制等,真的要在每个子服务中重复编写用户验证的逻辑吗?本章节就带你走近网关,在网关层统一处理这些共性需求。

为什么引入网关

如果没有网关的情况下,服务调用面临的几个直接问题:

  1. 每个服务都需要独立的认证,增加不必要的重复度
  2. 客户端直接与服务对接,后端服务一旦变动,前端也要跟着变动,独立性缺失
  3. 将后端服务直接暴露在外,服务的安全性保障是一个挑战
  4. 某些公共的操作,如日志记录等,需要在每个子服务都实现一次,造成不必要的重复劳动

现有系统的调用结构如下图所示:

直接由前端发起调用,服务间的调用可以 由服务注册中心调配,但前端调用起来就没这么简单了,特别是后端服务以多实例的形态出现时。由于各个子服务都有各自的服务名、端口号等,加之某些共性的东西(如鉴权、日志、服务控制等)重复在各子模块实现,造成不必要的成本浪费。此时,就亟需一个网关,将所有子服务包装后,对外统一提供服务,并在网关层针对所有共性的功能作统一处理,大大提高服务的可维护性、健壮性。

引入网关后,请求的调用结构演变成如下图:

破解服务中共性问题的繁琐处理方式——接入 API 网关相关推荐

  1. 微服务中数据聚合的三种方式

    在微服务暴热的情形下,似乎不弄点微服务,已经是跟不上IT的大潮了. 因此,公司结合本身情况,以及将来的可拓展性,在我的主导下,在新的项目中采用了微服务架构 然而,实施过程中遇到一个挠头的问题,就是数据 ...

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

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

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

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

  4. 从瑞银集团看客户导向型财富管理机构如何从资产配置服务中获利

    http://mp.weixin.qq.com/s/5dEDVIOCbQ1cS2Qvff-w9A 另类金融篇:从瑞银集团看客户导向型财富管理机构如何从资产配置服务中获利 原创 2017-05-14 杜 ...

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

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

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

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

  7. 深入微服务 API 网关之架构实践篇

    以下文章来源方志朋的博客,回复"666"获面试宝典 随着这些年微服务的流行,API网关已经成为微服务架构中不可或缺的一环.一方面它承担着服务对外的唯一门户,一方面它提取了许多应用的 ...

  8. 建设微服务API网关的一些实践

    随着这些年微服务的流行,API网关已经成为微服务架构中不可或缺的一环.一方面它承担着服务对外的唯一门户,一方面它提取了许多应用的共性功能. 整体架构 我们的API网关目前的架构如下图所示,可以看到AP ...

  9. 美团技术:百亿规模API网关服务Shepherd的设计与实现

    在微服务架构下,服务拆分会让API的规模成倍增长,使用API网关来管理API逐渐成为一种趋势.美团统一API网关服务Shepherd就是在这种背景下应运而生,适用于美团业务且完全自研,用于替换传统的W ...

最新文章

  1. Python中的super()用法
  2. h5如何动态获取键盘高度_动态获取键盘高度
  3. 来自十年互联网人的大厂等级晋升攻略
  4. 自己实现一个和PYTHON的库一模一样的sha_256算法
  5. leetcode162. 寻找峰值(二分法)
  6. mysql+百万+中间表_MYSQL优化
  7. 大学生开学必备物品清单的详细介绍
  8. pad点餐系统 内存管理的一点总结
  9. 学习C/C++的经验谈
  10. 【转】robot framework + python实现http接口自动化测试框架
  11. mib节点 snmp trap_浅谈 Linux 系统中的 SNMP Trap
  12. 2017年度全球一级市场“投资龙虎榜”发布 | 钛媒体Pro独家
  13. 新C++(9):谈谈,翻转那些事儿
  14. 轻松搞定 Spring Cloud 2.x 微服务全家桶
  15. 华为路由器:一次华为AR1220F-s的系统修复经历
  16. python 文件和文件夹操作
  17. git push 报错:remote: Permission to XXXA/xxxx.git denied to XXXB
  18. 论文翻译 Joint Discriminative and Generative Learning for Person Re-identification
  19. 氪8号积木机器人编程_氪项目编程使用手册
  20. 华为系大数据专家傅一航老师--沪师经纪刘建

热门文章

  1. 计算机看不了pdf,电脑桌面变成pdf打不开怎么办
  2. 一个9年运维的经验之路
  3. html snippets怎么配置,Import HTML snippets in HAML?
  4. Codeforces Round #439 (Div. 2) C.The Intriguing Obsession(组合数、记忆化搜索)
  5. 算法套路学习笔记(第二章) 动态规划系列 2.13-2.19
  6. 《利用python进行数据分析》第二版 第14章-数据分析示例 学习笔记1
  7. 【转载】CDS view自学系列
  8. 2021年危险化学品生产单位安全生产管理人员考试题及危险化学品生产单位安全生产管理人员最新解析
  9. 弱加密算法有哪几种_不安全的加密算法有哪几种
  10. [计算机数值分析]牛顿下山法求方程的根