# 《API网关》第20章:服务注册组件搭建采集接口信息

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

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

  • 本章难度:★★★☆☆
  • 本章重点:提供应用服务注册的组件,采集RPC服务启动时已经配置了标记注解的对象,摘取出类、接口、方法,用于后续注册到网关中心。
  • 课程视频https://t.zsxq.com/09VeVJsJ5 (opens new window)

# 一、学习指引

你觉得使用设计模式复杂?

日常做一些代码评审时,经常看到一个的实现方式是。一个接口对应一个实现类,一个实现类可能一千行代码。但在这些代码实现中除了定义个接口写实现类,基本看不到任何的设计模式,也没有所谓的职责分离。

而没有使用设计模式的主要问题是说:“使用设计模式浪费时间”,但其实以我的经验来看。往往不是设计模式浪费时间,而是代码编写者不具有设计模式的使用能力,缺少设计模式的运用经验。所以导致没法使用设计模式。当你真的用设计模式来编写一些代码以后,你会发现没有什么比这更爽的了,因为你的代码会非常清晰,也很利于调试和后续的迭代。

# 二、注册组件

首先我们知道网关的注册中心维护着网关和RPC接口的信息,用于把RPC接口分配到网关算力上使用。那么前面的章节已经实现了网关算力的自动注册,同样RPC接口也需要自动注册,否则都是人工手动维护这个成本还是非常大的。

应用注册组件的目的就是提供给RPC接口生产的服务使用,通过RPC生产者服务引入SDK组件,并使用注解配置的方式作为接口标记。当服务启动的时候,SDK组件会采集这些被标记了注解的接口和方法,把这些信息收集后向服务端注册。

  • 开发 api-gateway-sdk 组件,获取 Spring Bean 对象的注册结果。并对已经使用注解标记了的接口进行拦截提取接口和方法信息。
  • 本章暂时只完成这部分组件的开发,后续章节再完善向网关中心注册的操作。