1. Spring cloud 是什么?

查阅spring的官方网站得到这样的定义:Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态)。 简单讲这是一个工具集,有点像你之前写的util类,使用这里面的工具,你将会很容易的搭建分布式的框架,但是Spring Cloud 本身并不提供这样的功能。

所以说,分布式的架构还是要自己来搞,不能拿来即用。你需要使用提供的工具,有选择的来搭建自己的分布式服务。可是人家真的是想拿来就用呢,不过好在已经有无数先辈得出了最佳实践,如果你不想再费脑子,可以直接使用它们的脚手架直接创建自己的工程。作为我的学习笔记我会学习这里面主要的工具,希望最后能使用这些工具完成分布式工程的搭建。

2. 什么是分布式?

作为一直在小公司搬砖的小程序员,真的不知道什么是分布式。平时的项目就是一个工程,里面包含了各种各样的代码,有自己写的,也有别人写的。最后打成一个war包,然后运维把它部署到服务器上,ok,大功告成。如果有问题,就重新打包再部署。一直以为所有的程序都是这样开发的,后来写的代码多了,看得文章多了才发现原来一个用户量上万的系统并不是这样开发的,它涉及到集群,分布式,数据安全,访问速度,性能等等方面。oh,原来项目经理说的我们的用户上百万都是骗人的,mmp。
所以我们之前的开发的都是单体应用,一个war包包含了所有的系统功能,以后用户想要啥再往里面加,有啥错误再在上面修复,后来war包就滚雪球的似的越来越大。部署的小哥部署时间越来越长,因为上传war包时间变长了。

在我看来,分布式就是由单体变多体的过程,把你的复杂系统分割成不同的功能模块,每个人负责或一个团队去负责这一部分的开发和维护。每个应用独立部署,相互有关联的模块应用之间通过通信来交互。好吧,就这么简单,毕竟我是小白,大神不要打我。

3. 为何学习使用Spring Cloud

Spring Cloud 是基于Spring boot的,如果你还没有学习spring boot,建议你先学习一下。相信我一但你学了之后,你就会爱上她。 将单体分割成多体,相互之间的通信并没有那么简单,一个复杂的系统可能分割成十几个功能模块,模块之间的相互调用往往是极其复杂的,如果没有管理工具,就会杂乱无章,无法发现存在的问题。而spring cloud封装的各种工具可以帮我们解决这些问题。

spring cloud的主要包含模块:

  1. Spring Cloud Config
  2. Spring Cloud Netflix
  3. Spring Cloud Bus
  4. Spring Cloud for Cloud Foundry
  5. Spring Cloud Cloud Foundry Service Broker
  6. Spring Cloud Cluster
  7. Spring Cloud Consul
  8. Spring Cloud Security
  9. Spring Cloud Sleuth
  10. Spring Cloud Data Flow

具体的可以访问spring官网察看:https://projects.spring.io/sp...


Mike晓
95 声望18 粉丝