前言

去年写过一篇微服务的简单介绍, 其实本来是想写个SpringCLoud微服务框架的使用方法的, 板砖没时间, 趁着十一忙里偷闲把自己这个坑填写了把! 之前把JS一些深层的特性也填坑了, 这次继续填坑! 先说下SpringCloud对于新手如果入门进行建议的概述一下!

完整源码-仅供参考

https://github.com/ChannD/SpringCloudDemo

  • SpringCloud是微服务架构的一种落地的体现, 他算是一个新的技术名词

是什么

截取一下官网的说明, 用越来越少的技术一统江湖,日出东方唯Spring不败[图示]
image.png
SpringBoot 构建, SpringCloud 协调, SpringCloudData 连接
image.png

  • 官网介绍

    • SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。SpringCloud是一堆技术的集合体.

    • SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以用SpringBoot的开发风格做到一键启动和部署。

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

    • **总结 :**SpringCloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶

  • SpringCloud和SpringBoot是什么关系

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

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

    • SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系.

    • SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架

    • 一个偏向微观(SpringBoot) , 一个偏向宏观(SpringCloud),如果非要简单的理解的话(SpringBoot可以理解为一个医院一个个的科室, SpringCloud就是那个医院,存在一个依赖关系, SpringBoot可以单独使用,它不依赖于SpringCloud, 但SpringCloud必然依赖于SpringBoot,
      PS : 水里可以没有鱼, 但是鱼儿离不开水)

  • Dubbo是怎么到SpringCloud的?哪些优缺点让你去技术选型

    • 目前成熟的互联网架构(分布式+服务治理Dubbo)

    • 我们把SpringCloud VS DUBBO进行一番对比

      • Dubbo-GitHub (目前已经恢复更新)
      • SpringCloud-Github
      • 贴两个地址的目的是可以自行对比两个社区的热度
      • 对比结果[图示]
      • image.png
      • 最大区别:SpringCloud抛弃了Dubbo的RPC通信(远程过程调用),采用的是基于HTTP的REST方式。严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更加合适。
      • 品牌机与组装机的区别(这就好比很少有人去自己组装一台苹果电脑): Spring Cloud的功能比DUBBO更加强大,涵盖面更广,而且作为Spring的拳头项目,它也能够与Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring项目完美融合,这些对于微服务而言是至关重要的。使用Dubbo构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,但是如果你是一名高手,那这些都不是问题;而Spring Cloud就像品牌机,在Spring Source的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。
      • 社区支持与更新力度 : 最为重要的是,DUBBO停止了5年左右的更新,虽然2017.7重启了。对于技术发展的新需求,需要由开发者自行拓展升级(比如当当网弄出了DubboX),这对于很多想要采用微服务架构的中小软件组织,显然是不太合适的,中小公司没有这么强大的技术能力去修改Dubbo源码+周边的一整套解决方案,并不是每一个公司都有阿里的大牛+真实的线上生产环境测试过。
      • PS : 其实从上面的图也能看出,Spring全家桶的牛逼, 这就有点像小米全家桶一样, 一套带走!
    • 总结Cloud与Dubbo

      • 问题:
        曾风靡国内的开源 RPC 服务框架 Dubbo 在重启维护后,令许多用户为之雀跃,但同时,也迎来了一些质疑的声音。互联网技术发展迅速,Dubbo 是否还能跟上时代?Dubbo 与 Spring Cloud 相比又有何优势和差异?是否会有相关举措保证 Dubbo 的后续更新频率?
      • 人物:Dubbo重启维护开发的刘军,主要负责人之一 : 刘军 阿里巴巴中间件高级研发工程师,主导了 Dubbo 重启维护以后的几个发版计划,专注于高性能 RPC 框架和微服务相关领域。曾负责网易考拉 RPC 框架的研发及指导在内部使用,参与了服务治理平台、分布式跟踪系统、分布式一致性框架等从无到有的设计与开发过程。
      • 刘军的权威回答 [图示]
      • image.png
      • 图像.jpeg

去哪儿下载

怎么玩它怎么使用它

  • 刚刚说的微服务集大成者,够逼格, 云计算最佳业务实践
    [简易列举一些技术方案]
  • 服务的注册与发现(Eureka)
  • 服务消费者(rest+Ribbon)
  • 服务消费者(Feign)
  • 断路器(Hystrix)
  • 断路器监控(Hystrix Dashboard)
  • 路由网关(Zuul)
  • 分布式配置中心(Spring Cloud Config)
  • 消息总线(Spring Cloud Bus)
  • 服务链路追踪(Spring Cloud Sleuth)
  • .................

PS: 其实阿里云现在也是用的SpringCloud
image.png

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

脸朝大海, 春暖花开 ----江大脸