SpringCloud快速入门

需要前置知识:Spring的基础知识和SpringBoot(一个轻量级整合框架并不复杂,不会的话建议花十几分钟或半个小时学习一下,即便你想系统学习一本《SpringBoot实战》去掉前言附录也就一百来页)

武装警备队武警部队快速响应,在处理内部小型事务中得心应手

传统的单体架构中我们将一个应用的所有功能模块都封装到一个实例上(如ERP、CRM等)。因为只有一个实体包所以单体架构往往部署简单,只要打成一个包丢到web服务器即可且初期效率很高。但随着时间推移应用往往会逐渐变大。在每次的迭代中,开发团队都会面对新功能,然后开发许多新代码,随着时间推移,这个简单的应用会变成一个庞然大物,每一次的迭代和维护难度都将成倍的递增。且代码耦合性较高、任一业务出问题都会导致其他模块不可用。

散兵游勇灵活多变,但缺乏统一组织,关系交错,在某一问题上无法进行大规模行动

后来随着RPC技术(以及各种标准协议)的兴起为了避免上述情况,我们将模块与模块之间相互拆分。通过RPC远程调用的方式完成对模块间的解耦,降低复杂度和开发效率即RPC架构模式。但是同样的随着业务的不断膨胀,依赖于服务直接的直接通信变得越来越不可控和混乱(想象一堆缠绕在一起的线),我们很难对模块之间进行集中管理。

标准正规军依靠上级指挥,中央集权调配。最怕斩首行动,物资中断

如上所述,在RPC架构模式中我们迫切需要一种能够对业务进行集成的办法否则将会混乱不堪。随着nginx,dubbo和消息队列等技术的兴起出现了将应用集成,采用中央管理模式来确保各应用能够交互运作的SOA架构。
SOA是一个概念,即以业务为中心的架构方法,可以将您的业务作为彼此链接的、可重复的业务任务或服务来进行整合,SOA使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

同时消息队列解决了 RPC 的被动调用问题,通过发布与订阅,实现消息异步处理。如果有十个节点,那么每个节点都需要相互连接另外九个节点,这给部署,监控,故障排查代理很多问题,消息队列的出现解决了这个问题,使网络模型从网状模型转到星型模型,所有的节点从消息服务器订阅,数据流也是推送到消息服务器。
但是SOA依然存在着过于依赖dubbo、ebs等总线控制,存在单点问题,在涉及不同系统事务一致性问题,系统之间交互需要使用远程通信,接口开发增加工作量等问题。

SOA虽然将服务分开了且统一进行了管理,但他的问题刚好是集中式的治理方式。

而微服务则强调,组件化与服务化,分散治理,分散数据管理,容错性,自动化......

特战队,精锐独立师不仅可以集中火力也能单兵行动,甚至自给自足

微服务,关键其实不仅仅是微服务本身,而是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。
微服务提倡的理念团队间应该是 inter-operate, not integrate 。inter-operate是定义好系统的边界和接口,在一个团队内全栈,让团队自治,原因就是因为如果团队按照这样的方式组建,将沟通的成本维持在系统内部,每个子系统就会更加内聚,彼此的依赖耦合能变弱,跨系统的沟通成本也就能降低。

更新时间:2020-04-10 11:07:51

本文由 寻非 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.zhouning.group/archives/springcloud快速入门
最后更新:2020-04-10 11:07:51

评论

Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×