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的主要包含模块:
- Spring Cloud Config
- Spring Cloud Netflix
- Spring Cloud Bus
- Spring Cloud for Cloud Foundry
- Spring Cloud Cloud Foundry Service Broker
- Spring Cloud Cluster
- Spring Cloud Consul
- Spring Cloud Security
- Spring Cloud Sleuth
- Spring Cloud Data Flow
具体的可以访问spring官网察看:https://projects.spring.io/sp...。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。