[TOC]
原版本的微信天气小程序可以实现拉取和风天气接口,在微信小程序端正确的展示天气数据。 现在面临着几个问题
- 天气接口使用了“帮助之家”、“和风天气”的数据接口,第三方数据接口有时候服务不稳定,并且都有接口访问次数限制
- 后端没有微服务化,程序宕后就无法提供服务了
- 微信小程序端界面不友好,还有北京图片没有随着天气改变
- 后端系统没有经过高并发、高可用、高性能测试
因此这次改造主要涉及的功能有
- 增加python数据爬虫服务,后端将有3种天气数据源同时提供服务,数据源提供顺序 爬虫->和风->帮助之家
- 后端微服务化,微信接口将提供多实例
- 后端系统将进行高性能、高并发、高可用测试
- 创建web管理
- 优化完善微信小程序端的界面
将使用SpringCloud技术栈实现后端为服务化,使用docker来支撑服务运行
服务名 | 实例数量 | 简介 | 地址规划 |
---|---|---|---|
weather-api-wx | 2 | 为微信小程序提供数据接口 | 7010-7011 |
weather-api-source | 2 | 天气数据源 | 7020-7021 |
weather-robot | 1 | 机器人爬虫,爬中国天气网web页面数据 | 7030 |
weather-admin | 1 | Web管理页面,用户、日志管理 | 7003 |
eureka | 2 | 微服务基础-服务发现 | 7001-7002 |
zuul | 1 | 微服务基础-网关 | 7000 |
mysql | 2 | 关系型数据库,主从同步 | |
redis | 2 | 非关系型数据库,缓存,主从同步 | |
weather-citycode | 1 | 中国城市编码 | 7004 |
名称 | 备注 |
---|---|
eureka | 服务发现 |
zuul | 网关 |
feign | 声明式http请求 |
ribbon | 客户端侧负载均衡 |
hystrix | 断路器 |
向微信提供天气数据,还是按之前的对小程序只提供1个接口,一次性返回