zoukankan      html  css  js  c++  java
  • SpringCloud全家桶学习之概览(一)

    一、概览

      根据百度百科的描述,微服务架构是一项在云中部署应用和服务的新技术。而SpringCloud是微服务架构思想的一个具体实现,它为开发人员提供了构建分布式系统中一些常见模式的工具(服务注册与发现、熔断器、分布式配置、网关、控制总线等),SpringCloud是基于SpringBoot框架,它不是重复造轮子,而是将第三方实现的微服务应用的一些模块集成,准确来说,SpringCloud是一个容器。

    二、SpringCloud与Dubbo对比

      目前在工作中一直用的是Dubbo2.7,趁着空闲时间,学习一下SpringCloud,看了网上很多关于二者对比。

    以下图片及内容部分转自(https://www.cnblogs.com/xishuai/archive/2018/04/13/dubbo-and-spring-cloud.htmlhttps://blog.csdn.net/zhangweiwei2020/article/details/78646252),如有侵权,请联系删除。

      打个比方:SpringCloud相当于整机,组件都相当完整;而Dubbo相当于组装机,组件可以按自己需求自由选择;整体来说,整机的性能有保证,组装的机子更自由。

      

       Dubbo专注于RPC和服务治理,Spring Cloud则是一个微服务架构生态。

     三、两者运行流程对比

    (1)Dubbo

      每个组件都是需要部署在单独的服务器上,GateWay用来接收前端请求、聚合服务,并批量调用后台原子服务、每个Service单独与DB交互。

      

      ①GateWay:前置网关,具体业务操作,GateWay通过Dubbo提供的负载均衡机制自动完成(Dubbo本身并没有提供网关)

        ②Service:原子服务,只提供该业务相关的原子服务

      ③Zookeeper:原子服务注册到ZK上。

    (2)SpringCloud

      

       ①所有请求都统一通过网关(Zuul)来访问内部服务

      ②网关接收到请求后,从注册中心(Eureka)获取可用服务

      ③由Ribbon进行负载均衡后,分发到后端的具体实例

      ④微服务之间通过Feign进行通信业务处理

    (3)总结

      ①业务部署方式相同,都需要一个前置网关来隔绝外部直接调用原子服务的风险。

      ②Dubbo需要自己开发一套API网关(目前我所在公司是公司开发网关API+分布式配置Disconf,disconf---分布式配置管理平台的搭建(linux版本)),而SpringCloud则可以通过Zuul配置即可完成网关定制。

    (4)优缺点

    Dubbo优点:

           ①支持RPC调用,性能较好

           ②支持多种序列化协议,如Hessian、Http、WebService

           ③Dubbo Admin后台管理功能强大,提供了权重调节、负载均衡等

           ④中文文档比较全面

    Dubbo不足:

           ①Registry严重依赖第三方组件(Zookeeper、Redis等),当这些组件出现问题时,服务调用很快就会中断。

           ②Dubbo只是实现了服务治理,其他微服务框架并未包含,如果需要使用则需要结合第三方框架实现(百度分布式配置Disconf、京东服务跟踪Hydra)、开发成本较大

    Spring Cloud优点:

           ①有强大的Spring社区、NetFlix等公司支持,且开源社区贡献非常活跃

           ②分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体

           ③基于SpringBoot,具有简单配置、快速开发、轻松部署、方便测试的优点

           ④支持REST服务调用,相对于RPC,更加轻量化和灵活,有利于跨语言服务的实现以及服务的发布部署,结合Swagger实现服务的文档一体化

           ⑤提供了Docker及Kubernetes微服务编排支持

    Spring Cloud不足:

           ①REST服务调用性能会比RPC性能较低

           ②Spring Cloud整合了大量的组件,相关文档比较复杂,需要针对性的阅读

           ③支持REST服务调用,可能因为接口定义过轻,导致定义文档与实际实现不一致导致服务集成时的问题(可以使用统一文档和版本管理解决,比如Swagger)

    四、SpringCloud学习

      目前Spring Cloud也是非常火热的,社区更新也比较快,所以什么都学一点,生活更多彩一些。下面正式开始demo学习Spring Cloud,并附上结构图。

     五、Spring Cloud学习总结

      理无专在、学无止境。

  • 相关阅读:
    预防XSS攻击的一些方法整理
    Linux常用的命令集
    Linux根目录下各文件夹说明
    ThinkPHP框架3.2版本学习总结
    【ThinkPHP框架3.2版本学习总结】九、知识补充
    【ThinkPHP框架3.2版本学习总结】八、关联模型
    【ThinkPHP框架3.2版本学习总结】七、Ajax应用
    【ThinkPHP框架3.2版本学习总结】六、多表连接
    【ThinkPHP框架3.2版本学习总结】五、实用项
    tmux
  • 原文地址:https://www.cnblogs.com/rmxd/p/11531989.html
Copyright © 2011-2022 走看看