天气预报微服务应用提供天气预报、紫外线和天气湿度展示等功能。本文通过天气预报应用,展示了微服务架构设计理念的应用场景,以及使用ServiceStage管理运行环境、搭建流水线和治理微服务的最佳实践。
天气预报由前端应用和后端应用组成。前端应用weathermapweb采用Node.js进行开发,通过Mesher技术接入微服务引擎,实现前端应用发现后端应用。
后端应用采用Java微服务开发框架实现,包括fusionweather、forecast、weather、weather-beta等微服务。其中:
· fusionweather是一个聚合微服务,通过访问weather和forecast服务,提供全方位的天气预报功能。
· forecast实现未来几天天气预报查询功能。
· weather实现天气湿度查询功能。
· weather-beta微服务是weather微服务的新版本,新增了查询指定城市紫外线情况的功能。
天气预报源码仓库地址:https://github.com/servicestage-demo/weathermap.git。各个组件使用的技术如下:
仓库分支 | 组件名称 | 采用技术 |
---|---|---|
master | weathermapweb | Node.js |
fusionweather | ServiceComb | ServiceComb |
forecast | ServiceComb | ServiceComb |
weather | ServiceComb | ServiceComb |
天气预报的逻辑组网和调用关系图如下: