# 第13章:服务发现组件搭建和注册网关连接

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

# 一、学习指引

你不能把什么都扔给调用方去处理

哪有什么岁月静好,编程开发也一样。如果 Spring、MyBatis 等这些基础框架天天出问题,总是被迫让你升级改造,那你的公司项目将为此付出巨大的成本。就像大一些的互联网中升级一次xxx组件,最起码耗费上百万的人力成本。

而我们开发一个API网关也一样,如果把所有的服务都没有合理的封装,而是直接对外,那么可能前期确实开发的很快。但软件开发是一个长周期发展的事情,越到后期的维护和迭代成本将会是越大。—— 可能就是从十几行不起眼的烂代码,衍生到几十行的需求迭代,再到上千行打补丁贴膏药。

# 二、组件封装

本章的最大目的在于搭建起用于封装网关算力服务的 api-gateway-core 系统为目的,提供网关服务注册发现能力。那么之所以要开发一个这样的组件,也就是 SpringBoot Starter。是因为我们希望把这样的统一公用能力进行一致的管理,如果没有这样的组件服务,那么将需要每一个 SpringBoot 服务都要做类似这样的事情,整体来看就会耗费很大的成本,所以要把这样的功能进行收口。

  • api-gateway-core 是网关的算力服务,api-gateway-center 是网关的注册中心,那么为了把这块服务链接起来,中间则需要一套 api-gateway-engin 网关的引擎,用于启动网关的算力服务。
  • 但由于启动网关的算力服务还需要一些功能的整合,来包装网关算力到注册中心的连接,所以这部分需要整合到 api-gateway-assist 这个辅助组件,它是一个 SpringBoot Starter 起到包装和连接的作用。