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学习总结

      理无专在、学无止境。

  • 相关阅读:
    python 执行sql得到字典格式数据
    python爬虫 url链接编码成gbk2312格式
    windows环境下elasticsearch安装教程(单节点)
    python SQLServer 存储图片
    爬虫的本质是和分布式爬虫的关系
    requests form data 请求 爬虫
    mysql 删除 binlog 日志文件
    查看mysql数据表的大小
    xshell 连接报错 Disconnected from remote host
    centos 7.3 安装 mysqldb 报错 EnvironmentError: mysql_config not found ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  • 原文地址:https://www.cnblogs.com/rmxd/p/11531989.html
Copyright © 2011-2022 走看看