Spring Cloud学习笔记7——天气预报系统微服务(1)架构设计

现有天气预报系统的弊端

  • 大而全
  • 混杂了太多的功能
  • 难以理解
  • 难以维护
  • 难以扩展

改造需求

  • 微服务的拆分应该足够的小,每个微服务的业务是非常单一的
  • 微服务应能支持水平扩展
  • 如果有需要,应能够实现微服务间的相互调用

天气预报系统的微服务拆分

Spring Cloud学习笔记7——天气预报系统微服务(1)架构设计

微服务代码的拆分

Spring Cloud学习笔记7——天气预报系统微服务(1)架构设计

  • msa-weather-collection-server:天气数据采集微服务
  • msa-weather-data-server:天气数据API微服务
  • msa-weather-city-server:城市数据API微服务
  • msa-weather-report-server:天气预报微服务

系统的数据流向

Spring Cloud学习笔记7——天气预报系统微服务(1)架构设计

系统的通信设计

  • 第三方天气接口
  • 天气数据接口
    • 调用方式:GET/weather/cityId/{cityId}
    • 参数:cityId为城市ID
    • 调用方式:GET/weather/cityName/{cityName}
    • 参数:cityName为城市名称
  • 天气预报接口
    • 调用方式:GET/report/cityId/{cityId}
    • 参数:cityId为城市ID
  • 城市数据接口
    • 调用方式:GET/cities
    • 参数:无

系统的存储设计

NoSQLSpring Cloud学习笔记7——天气预报系统微服务(1)架构设计