详解微服务技术架构
常用微服务架构目录
一:需求与背景 (3)
二:业务发展的变革 (4)
三:是时候做出改变 (7)
四:没有银弹 (10)
五:监控- 发现故障的征兆 (12)
六:定位问题- 链路跟踪 (13)
七:分析问题- 日志分析 (16)
八:网关- 权限控制,服务治理 (18)
九:服务注册于发现- 动态扩容 (19)
十:熔断、服务降级、限流 (21)
十一:测试 (23)
十二:微服务框架 (25)
十三:另一条路- Service Mesh (26)
十四:结束、也是开始 (27)
本文介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。
要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为例来说明这一过程。
一:需求与背景
几年前,小明和小皮一起创业做网上超市。小明负责程序开发,小皮负责其他事宜。当时互联网还不发达,网上超市还是蓝海。只要功能实现了就能随便赚钱。所以他们的需求很简单,只需要一个网站挂在公网,用户能够在这个网站上浏览商品、购买商品;另外还需一个管理后台,可以管理商品、用户、以及订单数据。
我们整理一下功能清单:
▪网站
o用户注册、登录功能
o商品展示
o下单
▪管理后台
o用户管理
o商品管理
o订单管理
由于需求简单,小明左手右手一个慢动作,网站就做好了。管理后台出于安全考虑,不和网站做在一起,小明右手左手慢动作重播,管理网站也做好了。总体架构图如下:
小明挥一挥手,了家云服务部署上去,网站就上线了。上线后好评如潮,深受各类肥宅喜爱。小明小皮美滋滋地开始躺着收钱。
二:业务发展的变革
好景不长,没过几天,各类网上超市紧跟着拔地而起,对小明小皮造成了强烈的冲击。在竞争的压力下,小明小皮决定开展一些营销手段:
▪开展促销活动。比如元旦全场打折,春节买二送一,情人节狗粮优惠券等等。
▪拓展渠道,新增移动端营销。除了网站外,还需要开发移动端APP,小程序等。
▪精准营销。利用历史数据对用户进行分析,提供个性化服务。
▪……
这些活动都需要程序开发的支持。小明拉了同学小红加入团队。小红负责数据分析以及移动端相关开发。小明负责促销活动相关功能的开发。
因为开发任务比较紧迫,小明小红没有好好规划整个系统的架构,随便拍了拍脑袋,决定把促销管理和数据分析放在管理后台里,和移动端APP另外搭建。通宵了几天后,新功能和新应用基本完工。这时架构图如下:
这一阶段存在很多不合理的地方:
▪网站和移动端应用有很多相同业务逻辑的重复代码。
▪数据有时候通过数据库共享,有时候通过接口调用传输。接口调用关系杂乱。
▪单个应用为了给其他应用提供接口,渐渐地越改越大,包含了很多本来就不属于它的逻辑。应用边界模糊,功能归属混乱。
▪管理后台在一开始的设计中保障级别较低。加入数据分析和促销管理相关功能后出现性能瓶颈,影响了其他应用。
▪数据库表结构被多个应用依赖,无法重构和优化。
▪所有应用都在一个数据库上操作,数据库出现性能瓶颈。特别是数据分析跑起来的时候,数据库性能急剧下降。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。