引言

经过第一周的学习,对各类常见服务接入网关有了比较清晰的认知,在此做总结性梳理。

知识地图

一、后端服务接入soul网关流程:

Soul网关源码解析(六)网关代理后端服务总结 - 图1

注意事项:

  • 注意核对admin与网关配置策略是否保持一致
  • 注意网关与后端服务配置的注册中心是否一致
  • 注意soul-client配置与注解的配合

二、网关数据同步原理:

Soul网关源码解析(六)网关代理后端服务总结 - 图2

三、部署结构

Soul网关源码解析(六)网关代理后端服务总结 - 图3

四、通用活动流(后续补图)

  1. 后端服务注册服务到注册中心(HTTP服务不需要)
  2. 后端服务注册元数据到admin
  3. admin同步元数据到网关
  4. 用户发起http请求到网关
  5. 网关根据选择器和规则匹配到对应的后端服务
  6. 网关请求真正地后端服务
  7. 后端服务返回响应给网关
  8. 网关返回响应给用户

五、soul-client-starter开发套路

soul-client-starter的核心是对应的SoulXxxClientConfiguration配置类,以下是具体工作:

  1. 指定配置前缀,构造Config对象
    1. @Bean
    2. @ConfigurationProperties(prefix = "soul.xxx")
    3. public SoulXxxConfig soulXxxConfig() {
    4. return new SoulXxxConfig();
    5. }
  1. 自动注入配置,构造后Bean处理器
    1. @Bean
    2. public XxxClientBeanPostProcessor xxxClientBeanPostProcessor(final SoulXxxConfig soulXxxConfig, final Environment env) {
    3. return new XxxClientBeanPostProcessor(soulXxxConfig, env);
    4. }
  1. 自动注入配置,构造容器注册监听器
    1. @Bean
    2. public ContextRegisterListener contextRegisterListener(final SoulXxxConfig soulXxxConfig, final Environment env) {
    3. return new ContextRegisterListener(soulXxxConfig, env);
    4. }