第九章 网关注册中心服务初始搭建

整理整个网关调用链路流程,梳理核心服务。并完成网关中心简单DDD模型结构工程的搭建,与库表连通可以查询接口映射数据。

流程梳理

9-流程梳理

  • 如图所示,api-gateway-core 是最核心的通信层。那么它还需要把注册的网关接口在通信核心服务中启动起来。
  • 这个启动过程首先来自于 api-gateway-sdk(类似 SpringbootStart 组件,通过注解方式管理 RPC 接口推送) 向 api-gateway-center 推送注册接口,之后在通过网关引擎 api-gateway-engine 拉取接口并在本地服务完成注册。
  • 最后再调用到网关接口时,则是通过 api-gateway-core 调用到对应的 RPC 应用中。
  • 那么api-gateway-sdk 并不是主要工程,没有它的是可以通过 api-gateway-admin(类似前端工程手动配置) 配置。

所以 在整个流程中 api-gateway-center、api-gateway-core 是两个核心工程,能更好的串联流程。

实现

  1. 之前章节都是在网关的 Netty 服务启动时,使用硬编码的方式将服务接口信息注入 Confguration 。
  2. 本章就将这些服务接口信息存入MySQL,并引入注册中心 (api-gateway-center)来直接管理这些服务数据,并可以将服务数据提供给 api-gateway-core 工程使用,执行具体的服务调用。
  3. api-gateway-center 采用简单的 DDD 工程结构模型开发,对外提供 HTTP 接口。之所以提供 HTTP 接口是因为可以引入更少的组件,也能满足需求。当然也可使用 MQ、Socket、ZK 等方式进行处理。

DDD 架构

  1. application 应用层:调用、组合领域服务,不做具体业务逻辑,提供接口供领域层实现具体业务逻辑。
  2. domain 领域层:DDD 的核心层,实现具体业务逻辑,domain 层内部还会细分各个领域,职责分离。并提供接口供基础仓储层实现,用于访问数据等。
  3. infrastructure 基础仓储层:提供数据库、缓存、消息队列、远程访问等能力。
  4. interfaces 接口层:对外提供应用层编排好的服务。

一些记录

  1. pom.xml 中的 Spring Boot 自带的 Tomcat 被exclude,导致项目无法正常启动。
  2. 项目启动后,访问 http://localhost/api/list,就可以查询到 http_statement表中的服务接口信息。

测试

ApiTest

9-测试-1

Postman

9-测试-2

参考资料

bugstack—DDD—小傅哥

https://www.bilibili.com/video/BV11q4y1q74f/?vd_source=18235510e6e9b3ea091fc2ddd7be9aa1

什么是DDD分层架构_ddd架构_Java架构设计的博客-CSDN博客

DDD领域驱动-经典四层架构设计及应用详解_ddd四层架构_Doker 多克的博客-CSDN博客