• 为啥是Spring Cloud Alibaba


    书接上回 微服务项目架构演变过程 ,上篇讲到,项目架构演变的最后是微服务,那微服务架构具体有啥魅力能担此重任呢?

    微服务优点

    1>易开发易维护

    一个微服务一个模块一个独立项目,开发时只需关注该模块逻辑即可,代码量与逻辑复杂度下降,开发难度也下降,从而易于开发。出bug,模块升级影响独立,从而易于维护。

    2>启动快

    单个微服务的启动,相比整体项目来说还是快上不少

    3>易升级易部署

    单个微服务模块独立,升级部署针对该模块即可,减少其他服务联调时间。

    4>技术栈选择性强

    单个微服务模块独立,技术独立,完全可以根据技术团队的需要选择不同的技术栈实现。比如选java,选go 都行,只要能保证服务间正常通讯即可。

    5>按需伸缩

    单个微服务模块独立,在服务扩容或缩容时,完全可以灵活针对性按需配置。

    6>自动部署与持续集成

    根据业务独立拆分的微服务,具有松散耦合的特点,可以灵活实现自动化部署与持续集成

    7>更高通用性

    按功能拆分之后的微服务可以理解为应用的组件化,项目完全围绕业务需求组织服务,根据不同需求使用不同组件组合。组件重复使用度就上来了。非常使用平台类型项目开发。

    微服务缺点

    1>运维要求高

    部署多个微服务,并保证能正常通讯,这是个硬活

    2>架构搭建复杂性高

    微服务必须使用分布式部署,分布式本身就具有复杂性,那微服务操作就难上加难啦。

    3>通讯成本高

    微服务间通讯靠的是网络连接,网络变动时

    4>接口修改成本高

    微服务间关系错综复杂,一旦有个接口出现较大变动,其依赖微服务都需要做相应的调整。

    5>测试难度高

    微服务相互独立,又相互依赖,在一定程度上也会导致系统变得越来越复杂,增加了集成测试的复杂度;

    6>开发成本高

    越是复杂架构项目,对技术人员要求越高,那人工成本也会水涨船高。

    7>硬件成本高

    每个微服务就一台服务器,当微服务多了,那硬件成本也会居高不下。

    小结

    相对于微服务带来的好处,微服务的缺点完全可以忍受。

    微服务架构介绍

    了解了微服务优缺点之后,我们来看下,微服务架构具体有啥技术要求,为啥让人谈之色变呢?

    微服务架构简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。但这个一拆散,需要考虑的问题就多了不如;

    1>这么多小服务,如何管理他们?

    2>这么多小服务,他们之间如何通讯?

    3>这么多小服务,客户端怎么访问他们?

    4>这么多小服务,一旦出现问题了,应该如何自处理?

    5>这么多小服务,一旦出现问题了,应该如何排错?

    这些问题,是每一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们。

    微服务落地方案

    当确定项目使用微服务架构时,那就得思考微服务的落地方案啦。目前市面上常见的微服务实现方案有:比如:Hessian、CXF、Dubbo、Dubbox、Spring Cloud、gRPC、thrift等技术

    这里我们选择Spring体系,原因:Spring品牌保证

    SpringCloud介绍

    Spring Cloud是一系列框架的集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

    Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

    SpringBoot和SpringCloud有啥关系?

    1>SpringBoot专注于快速方便的开发单个个体微服务。

    2>SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、事件总线、分布式事务、等等集成服务。

    总结: SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理组件的集合。

    SpringCloud版本名称?

    因为Spring Cloud不同其他独立项目,它是拥有很多子项目的大项目。所以它是的版本是 版本名+版本号 (如Greenwich.SR6)。 版本名:是伦敦的地铁名 版本号:SR(Service Releases)是固定的 ,大概意思是稳定版本。后面会有一个递增的数字。 所以 Greenwich.SR6就是Greenwich的第6个Release版本。最新版本的SpringCloud 改回使用发布日期

    SpringCloud Alibaba

    我们选用SpringCloud体系中子项目SpringCloud Alibaba,原因:SpringCloud Alibaba 算是SpringCloud 第二版,第一版的Spring Cloud 使用的大部分是Netflix公司的组件,其中的服务注册与发现的 Eureka、服务限流降级的 Hystrix、网关 Zuul都已经停止更新了,虽然可以继续使用,但旧版已经出现很多局限性问题啦,而官方又不维护这终究不是好发展方向。

    Spring Cloud Alibaba 是阿里巴巴开源中间件跟 Spring Cloud 体系的融合, 只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。所以Spring Cloud Alibaba 是个不错的选择。

    扩展面试题

    Spring,SpringMVC,SpringBoot,SpringCloud,SpringCloudAlibaba 有啥区别。

    Spring是一个IOC容器框架是上面所有技术实现核心。

    SpringMVC是依托Spring框架实现的web应用框架。

    SpringBoot对Spring容器做启动升级与简化,提高开发效率用的锦上添花的操作,算框架的改进

    SpringCloud是第一代微服务架构落地实现方案,依托SpringBoot,Spring 容器实现。

    SpringCloudAlibaba是SpringCloud融合阿里巴巴技术孵化出来的第二代微服务架构落地实现方案。

     看文字不过瘾可以切换视频版:SpringCloud Alibaba 极简入门

  • 相关阅读:
    Excel·VBA分列、字符串拆分
    弘辽科技:淘宝店铺被管控是什么原因?要注意什么?
    线段树模板
    面试遇到算法题:实现LRU缓存
    抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。
    PKI/TLS 工具之CFSSL —— 筑梦之路
    Android S(31) PMS 服务启动原理
    微信小程序商城迅速流行的决定因素
    深度学习卷积神经网络YOLOv5详解
    ESP-IDF-V5.1.1使用websocket
  • 原文地址:https://blog.csdn.net/langfeiyes/article/details/127382468