Spring Cloud学习笔记7——天气预报系统微服务(1)架构设计
现有天气预报系统的弊端
- 大而全
- 混杂了太多的功能
- 难以理解
- 难以维护
- 难以扩展
改造需求
- 微服务的拆分应该足够的小,每个微服务的业务是非常单一的
- 微服务应能支持水平扩展
- 如果有需要,应能够实现微服务间的相互调用
天气预报系统的微服务拆分
微服务代码的拆分
-
msa-weather-collection-server
:天气数据采集微服务 -
msa-weather-data-server
:天气数据API微服务 -
msa-weather-city-server
:城市数据API微服务 -
msa-weather-report-server
:天气预报微服务
系统的数据流向
系统的通信设计
- 第三方天气接口
- 调用方式:
GET
http://wthrcdn.etouch.cn/weather_mini?citykey={cityId} - 参数:
cityId
为城市ID
- 调用方式:
- 天气数据接口
- 调用方式:
GET/weather/cityId/{cityId}
- 参数:
cityId
为城市ID - 调用方式:
GET/weather/cityName/{cityName}
- 参数:
cityName
为城市名称
- 调用方式:
- 天气预报接口
- 调用方式:
GET/report/cityId/{cityId}
- 参数:
cityId
为城市ID
- 调用方式:
- 城市数据接口
- 调用方式:
GET/cities
- 参数:无
- 调用方式:
系统的存储设计
NoSQL