购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 微服务架构中常用的技术及落地方案

微服务架构中常用的技术包括但不限于服务注册与服务发现、配置中心、服务通信、负载均衡器、服务网关、断路器、服务监控、消息队列。读者需要明确一点,这些技术在微服务架构“火”起来之前就已经存在,而且已经有落地方案,并不是有微服务架构之后才有这些技术,或者说并不是伴随着微服务架构的火热才有这些技术,它们并不是需要限定在微服务架构下才能使用的技术。

系统架构的演进过程中有“业务拆分和分布式服务”这个阶段,即为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务拆分成不同的产品线,通过分布式服务来协同工作。而为了将分布式服务落地及解决系统拆分后所带来的问题,就需要使用上述这些技术,国内外的技术团队针对这些技术给出了自己的落地方案和产品。不同的公司或团队都会开源各自的框架,彼时的开发人员需要在这些开源框架中选择适合自己的技术方案。比如,国内Java开发人员比较熟悉的Dubbo(服务通信)+ZooKeeper(服务注册与服务发现)方案及后来的DubboX(服务通信)+ZooKeeper(服务注册与服务发现)+Apollo(配置中心)方案,都是比较受欢迎的让分布式服务落地的技术方案。

当下微服务的理念已深入人心,现在再看到这些分布式落地方案就能明显地意识到这些方案中缺一些组件,像Dubbo、Apollo这些开源框架只是解决某一个问题。当时并没有统一的解决方案,市面上有各种开源框架,由不同的公司或技术团队贡献给开发人员。开发人员如果想要做系统拆分,就需要对这些开源框架做排列组合,并且花不少时间和精力在技术选型上。当时的问题是什么?有一种“群龙无首”的感觉,就像是乱糟糟的武林中,缺少一个一呼百应的武林霸主。因为从单体到集群,再到分布式和微服务架构,这些阶段笔者都经历过,也使用过各种开源框架或自研框架,实际参与过编码,所以很清楚这种感觉。

虽然现在是这种想法,不过在微服务架构流行起来之前是没有的,当时用Dubbo+ZooKeeper这套经典的组合也挺好的。

再后来,Spring团队推出了他们的微服务架构解决方案——Spring Cloud。如同平地起惊雷,这套技术方案迅速被开发人员使用和推广,利用Spring Cloud提供的套件和解决方案来落地各自的微服务项目,如图3-2所示。短短几年间,Spring Cloud已经成为落地微服务架构项目的首选方案了。

一开始,Spring Cloud方案还会被拿来与国内的Dubbo方案做比较,二者的选择也一度成为当时网上讨论的热点。随着2018年Spring Cloud Alibaba套件进入Spring Cloud官方孵化器,这种声音就逐渐消失了。它们结合了,它们更强了。

微服务架构(Java语言方向)中常用的技术及落地方案也就逐渐清晰了,整体如表3-1所示。

图3-2 Spring官网中微服务架构的技术栈选择

表3-1 微服务架构(Java语言方向)中常用的技术及落地方案

读者对这个表格的内容可能有些陌生,不明白为什么要这样整理。接下来,笔者就来介绍一下Spring Cloud,以及被广大开发人员所熟知的Alibaba套件和Netflix套件。 GHiVHWAOokAdZXF62ZBc+hH0arVeA/ULCdb54ZS8ukz4ng4ZAbbUT8ZzcD6iLhI1

点击中间区域
呼出菜单
上一章
目录
下一章
×