一郎科技|大牛带你实时解读微服务架构改造案例:天气预报系统的架构设计
天气预报系统的架构设计到目前为止 , 天气预报系统已经初具规模了 。 我们不但实现了天气数据的采集 , 还实现了数据的缓存、天气数据的API服务及天气预报UI界面等功能 。 天气预报系统就是一个大而全的单块架构系统 , 里面混杂了太多的功能 , 可以预见的是 , 如果越往后发展 , 则系统会变得越来越难以管理和维护 。 同时不同服务之间存在着依赖 , 对于测试也是一个挑战 。 对于这样的系统 , 为了更好地实现可维护性、可扩展性 , 需要进行微服务改造 。
本节所介绍的天气预报系统 , 正好是作为微服务架构改造的很好的案例 。
在micro-weather-report应用的基础上 , 我们将对其进行逐步的拆分 , 最终形成独立自治的微服务 。
天气预报系统的改造需求【一郎科技|大牛带你实时解读微服务架构改造案例:天气预报系统的架构设计】我们要对天气预报系统进行微服务的改造 。 在经过一场头脑风暴之后 , 迅速将我们的期望和需求记录下来 。
- 微服务的拆分应该足够得小 , 每个微服务的业务是非常单一的 。
- 微服务应能支持水平扩展 。
- 如果有需要 , 应能够实现微服务间的相互调用 。
最后的省略号代表了这个需求是未完的 。 我们可以在改造系统的过程中不断去完善系统架构 , 这也符合软件开发的特征 。 但就目前而言 , 我们认为最重要的就是这些需求 。
天气预报系统的微服务拆分如果你熟悉DDD , 那么很容易就能够从系统的限界上下文中 , 提取出我们的微服务 。 图7-1展示了限界上下文与微服务之间的映射关系 。
- 天气数据采集微服务包含数据采集组件、数据存储组件 。 数据采集组件是通用的用于采集天气数据的组件 。 数据存储组件是用于存储天气数据的组件;
- 天气数据API微服务包含了天气数据查询组件 。 天气数据查询组件提供了天气数据查询的接口;
- 城市数据API微服务包含了城市数据查询组件 。 城市数据查询组件提供了城市数据查询的接口;
- 天气预报微服务包含了数据展示组件 。 数据展示组件用于将数据模型展示为用户能够理解的UI界面 。
- .msa-weather-collection-server:天气数据采集微服务 。
- msa-weather-data-server:天气数据API微服务 。
- msa-weather-city-server:城市数据API微服务 。
- msa-weather-report-server:天气预报微服务 。
天气预报系统的数据 , 最初是来自第三方系统 。 这些第三方系统可以是国家气象局 , 也可以是其他专业天气数据服务网站 。 本书所采用的天气数据接口 , 都是来自互联网上免费测试用的接口 , 仅用于学习 。
为了避免对第三方的数据接口产生冲击 , 我们需要限制下调用的次数 。 另外 , 我们还采用了Redis缓存服务器对数据进行存储 , 这样一方面可以减少直接调用第三方接口的次数;另一方面 , 可以有效提升天气预报系统的并发访问量 。
图7-2展示了整个系统的数据流向 。 其中 , 为了提高系统的整体可用性 , 微服务可以水平扩展为多个实例 。
推荐阅读
- 所持股份|万兴科技:公司控股股东、实际控制人吴太兵质押150万股
- 发布公告|数量过半!博创科技:天通股份累计减持约150万股
- 英雄科技聊数码|蔡崇信有实力买下篮网,那身价3200亿的马云,能买下几支NBA球队
- 科技前沿阵地|涨疯了!海思安防芯片遭哄抬“围剿”
- 月影浓|吴亦凡机械造型走秀 垫肩披风搭银框眼镜科技感足
- 中国历史发展过程|中国历史发展过程.中国的科技史界过去半个多世纪
- 天津|桂发祥:不再持有昆汀科技股份
- 消费|减持!天通股份:减持博创科技约32万股
- 处罚|老周侃股:吉鑫科技大股东应补偿踩雷投资者
- 华中科技大学|杯具!超本科线95分,本科有路不走,却梦幻般碰瓷,撞开专科的门
