现在天天把“微服务”挂在嘴边的人很多,为什么要搞微服务架构?有多少人真正深入思考过“为什么”,我认为可能不多。
于是我在梳理材料的时候,就决定从源头入手——即“为什么”。
架构是演进的,不是一蹴而就
“架构演进趋势图”中的趋势分析,在业界比较公认。这个图本身的内容、关于各个架构的描述、优缺点等等,网上简单搜索一下有大把大把的。
软件发展的不同时期、阶段,对技术的理解、选择和应用都有着不一样的诉求。架构的选型,永远只有“合适与不合适”,永远没有“哪个更好”的说法。我们今天来谈论微服务,并不是因为它更牛,而是经过谨慎分析,认为微服务的思想更符合我们的目标。
什么是微服务架构?
既然聊的是“为什么”,那么首先要明白“什么是”。
“一解释就懂,一问就不知,一讨论就打架”,这是之前我在网上看到的一句话,笑了好久,太贴切了,就搬了过来。
提到微服务,就没法不提到这位“大神”——马丁·福勒,他没有直接给微服务下一个精准的定义,而是给出了微服务特点的描述。
大概从以下四个方面来说:
根据业务模块划分服务种类。
每个服务可以独立部署并且互相隔离。
通过轻量的API调用服务。
服务需要保证良好的高可用性。
怎么理解呢?以下是我的解读:
按业务拆分服务,这是“水平拆分”;在技术层面的“前后分离”,属于“垂直拆分”;横纵一起切,就把单一的应用拆分成网状的小块应用,这是微服务中“微”思想的体现。
独立部署与互相隔离,这点充分体现了“我为人人、人人为我”的设计理念,这是微服务中「服务」思想的体现。
关于轻量API,微服务本身是推荐使用轻量的通讯协议和简单的数据结构,实际上,实施环节通常采用的都是北京治疗白癜风大约多少钱北京看白癜风病哪个医院最好