Skip to content

Latest commit

 

History

History
57 lines (40 loc) · 2.29 KB

Weather2.0.md

File metadata and controls

57 lines (40 loc) · 2.29 KB

微信天气小程序-微服务化改造

[TOC]

原版本的微信天气小程序可以实现拉取和风天气接口,在微信小程序端正确的展示天气数据。 现在面临着几个问题

  1. 天气接口使用了“帮助之家”、“和风天气”的数据接口,第三方数据接口有时候服务不稳定,并且都有接口访问次数限制
  2. 后端没有微服务化,程序宕后就无法提供服务了
  3. 微信小程序端界面不友好,还有北京图片没有随着天气改变
  4. 后端系统没有经过高并发、高可用、高性能测试

因此这次改造主要涉及的功能有

  1. 增加python数据爬虫服务,后端将有3种天气数据源同时提供服务,数据源提供顺序 爬虫->和风->帮助之家
  2. 后端微服务化,微信接口将提供多实例
  3. 后端系统将进行高性能、高并发、高可用测试
  4. 创建web管理
  5. 优化完善微信小程序端的界面

微服务化

将使用SpringCloud技术栈实现后端为服务化,使用docker来支撑服务运行

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

SpringCloud技术栈

名称 备注
eureka 服务发现
zuul 网关
feign 声明式http请求
ribbon 客户端侧负载均衡
hystrix 断路器

业务分析

weather-api-wx

向微信提供天气数据,还是按之前的对小程序只提供1个接口,一次性返回

weather-api-source