章节目录
1. 前言
将之前的单体架构系统进化为微服务架构系统,把springcloud融入实战中,有助于对它的理解,也可以达到活学活用的目的。
2. 天气预报系统的架构设计
2.1 现有天气预报系统的弊端
要想将现有的系统进行改造,就必须知道此系统的一些弊端(针对性改造)。
有以下弊端:
- 大而全
- 混杂了太多的功能(职责不单一)
- 难以维护、扩展
2.2 改造需求
知道了此系统的弊端,就知道了如何进行改造。
- 微服务拆分应该足够小(业务单一)
- 微服务能支持水平扩展
- 能实现微服务间的相互调用
2.3 微服务拆分
2.4 代码拆分
2.5 系统的数据流向
2.6 系统的通信设计
2.6.1 第三方天气接口
- 调用方式: GET
http://wthrcdn.etouch.cn/weather_mini?citykey={cityId} - 参数:cityId为城市ID
2.6.2 天气数据接口
- 调用方式: GET
/weather/cityId/{cityId} - 参数:cityId为城市ID
- 调用方式:GET
/weather/cityName/{cityName} - 参数:cityName为城市名称
2.6.3 天气预报接口
- 调用方式: GET
/report/cityId/{cityId} - 参数:cityId为城市ID
2.6.4 城市数据接口
- 调用方式: GET
/cities - 参数:无
2.7 系统的存储设计
- XML(城市列表)
- Redis
3. 项目结构
创建springcloud项目(一个父工程下有多个子模块)。不会的可以参考 使用IDEA创建maven+springCloud项目
4. 手动编码
主要对之前的单体项目进行拆分,需要修改的代码进行贴出,没贴出的表示不需要修改。