如何学习SpringCloud?(SpringCloud模板)
前言
对于SpringCloud来说(下面简称SC),现在网上已经有很多教程写的非常详细,因为SC的组件特别多,虽然不是所有组件都需要用到,但是学习的时候我们都需要去学习和了解。所以我想如果再写把每一个组件再拖出来做整理感觉有点重复劳动了,而且说的也不可能比当前别人说的更加详细,所以就打算换一个方向来说说SC的学习。俗话说授人以鱼不如授人以渔。同时给出一个模板,方便后期查看学习(模板正在不断更新,如有不对的地方请提出建议,感激不尽)。
模板地址:https://github.com/LinkinStars/SpringCloudTemplate
如何学习SC?
这个问题表明上来看并不是一个问题,但是实际会发现,学习SC和之前我们学习别的框架其实是有一定方法上面的不同。下面简单列举几个会出现的问题。
1、在没有了解使用场景的前提下,只是一味去学习SC,而导致学完了也不知道怎么用。
2、很多组件知道是怎么用的,但是发挥不出它在实际中的用途。
3、SC版本更新频繁,当前网上教程多数为老版本,新版本有一些比较大的改动。
...
还有很多类似的问题,所以总结一下学习的过程,如果可以,给你提供一些参考。
学习资料
首先给出两个写的比较全面的博客作为基础参考:
https://blog.csdn.net/forezp/article/details/70148833
http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
这两个博客把几乎所有的组件都介绍了一些,而且有实际的demo作为参考,可以说比较实用了。
https://projects.spring.io/spring-cloud/
这个是我们的重点,也就是spring官方给出的文档,上面有一个问题就是SC的频繁更新,导致我们学习的时候当前的版本和我们上面学习资料的版本已经不一样了,所以我们很多时候需要参考官方给出的文档中的说明进行学习,新的东西我们还可以慢慢来,但是有一些东西在新版本中被不推荐使用或者被废弃了,这时候我们就需要注意了,文档位置如下图所示:
具体的实体书我在这里就不推荐了,因为实际中我买了之后只是说浏览之后做了一个了解,对整个SC有了一个大致的认识,多数情况下属于一个入门的引导作用,而实际中还是多数在网上查询资料进行学习。
学习准备
SC包含有很多东西,你需要一些前期的一些准备工作:
1、SpringBoot,SC都是基于SpringBoot的,所以你肯定需要了解和熟练使用。
2、你需要对微服务架构有一个自己的认识,因为不是所有的场景都适合使用SC的,微服务有自己适合的位置,只有在合适的地方才能发挥强大的作用,而在不适合的地方反而适得其反。
3、有一定的服务器基础,因为微服务的部署运维都需要一定的基础。
学习大致思路
1、大致过一遍所有SC组件,只需要大致知道每个组件的用途就可以了。
2、抓住重点,注册中心和服务,简单的说,只要有这样两个东西就可以称为微服务了,所以你只要学会了这样两个东西,基础网络就没有问题了。
3、写一个简单的demo去运行,看是没用的,一定要自己去实践。
4、往demo里面不断增加新学习的组件。
5、根据实际用途去总结,哪些组件是我们必须要使用到的,或者说对我们开发是有很大帮助的,而一些不必要的组件大可不必使用。
6、将一个比较小的项目代入到你写的整个demo中取,因为没有实际的检验你不知道如何去规划你的项目,如何去拆分你的服务,如何去分配你的服务器,这步完成之后你会对所有组件有个新的认识,可能有些原先用的不对的地方,或者说用的不合理的地方都能找到。
7、结合网上开源的一些项目,看看别人用这个架构是如何去实施的,说白了就是你的经验肯定不足,看看别人写的,给自己一定启发,闭门造车肯定是不行的。
8、整理,通过之前的步骤进行学习之后,基本上的使用都知道了,你需要做一个整理,因为肯定不是每个项目所有的组件你都需要使用,所以你需要明确知道,这个项目需要用到哪一些,其中的功能在实际的产品中如何合理的运用,将这些做一个整理,运用在实际中。
整合后的模板项目
我发现网上有很多关于各个组件的使用例子,就像学习一样分章节都分好了,我将它们整合在了一个项目中,这样之后我们需要回来查询一些信息的时候就有一个比较实际的模板。模板还在不断更新中。
https://github.com/LinkinStars/SpringCloudTemplate
建议
1、确定一个合适的版本。
你需要确定一个合适的学习和开发的稳定版本,永远追随最新的版本肯定是不行的,一个是更新的太快,一个是学习成本较高,而且实际中需要稳定。
2、你觉得这个功能应该使用在哪里?
SC提供了很多功能,光是文档就写了一大堆,但是例子只会告诉你怎么用,不会告诉你再哪里使用。所以你需要知道这个功能在实际中应该使用在哪里。
3、不要被花里胡哨的功能所吸引。
你要知道微服务最大的厉害不在于那些有的没的功能,最后控制业务还是你的服务,如何拆分,如何规划才是你在实际中可能碰到的最大问题。
最后,学习还是需要自己努力,以上只是个人的一个总结,说的不妥也请见谅。
作者:LinkinStar
转载请注明出处:https://www.cnblogs.com/linkstar/p/LearnSpringCloud.html
如何学习SpringCloud?(SpringCloud模板)的更多相关文章
- 学习一下 SpringCloud (二)-- 服务注册中心 Eureka、Zookeeper、Consul、Nacos
(1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...
- SpringCloud学习(SPRINGCLOUD微服务实战)一
SpringCloud学习(SPRINGCLOUD微服务实战) springboot入门 1.配置文件 1.1可以自定义参数并在程序中使用 注解@component @value 例如 若配置文件为a ...
- 学习一下 SpringCloud (三)-- 服务调用、负载均衡 Ribbon、OpenFeign
(1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...
- 学习一下 SpringCloud (四)-- 服务降级、熔断 Hystrix、Sentinel
(1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...
- 学习一下 SpringCloud (五)-- 配置中心 Config、消息总线 Bus、链路追踪 Sleuth、配置中心 Nacos
(1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...
- 学习一下 SpringCloud (六)-- 注册中心与配置中心 Nacos、网关 Gateway
(1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...
- OpenCV 学习笔记(模板匹配)
OpenCV 学习笔记(模板匹配) 模板匹配是在一幅图像中寻找一个特定目标的方法之一.这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否"相似",当相似度足够 ...
- Python Flask学习笔记之模板
Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...
- 学习一下 SpringCloud (一)-- 从单体架构到微服务架构、代码拆分(maven 聚合)
一.架构演变 1.系统架构.集群.分布式系统 简单理解 (1)什么是系统架构? [什么是系统架构?] 系统架构 描述了 在应用程序内部,如何根据 业务.技术.灵活性.可扩展性.可维护性 等因素,将系统 ...
- SpringCloud学习(1)——SpringCloud概述
微服务架构: 微服务架构是一种架构模式或者说是一种架构风格, 他提倡将单一应用程序划分成一组小的服务, 每个服务运行在其独立的进程中, 服务之间互相协调,互相配合, 为用户提供最终价值.服务之间采用轻 ...
随机推荐
- JavaScript创建按钮,实现数字自加1!!
大致步骤: 1.写一个p标签,指定一个id选择器,输入数字! 2.写一个input标签,指定type属性的属性值为button,创建一个按钮,加入onclick事件! 3.为p标签和input标签指定 ...
- TortoiseGit的ssh key和Git的ssh key
情景模拟: 你使用Git+TortoiseGit对项目进行版本控制,本地库(自己电脑建立的.git)与远程库(如GitLab上建立)通信需要使用ssh验证,你用git生成公钥并保存到了Gitlab上, ...
- JS for循环 if判断、white循环。小练习二
假设一个简单的ATM机的取款过程是这样的:首先提示用户输入密码(password),最多只能输入三次,超过3次则提示用户“密码错误,请取卡”结束交易.如果用户密码正确,再提示用户输入取款金额(amou ...
- python学习笔记(5)
.................................................................................................... ...
- KindEditor富文本编辑器, 从客户端中检测到有潜在危险的 Request.Form 值
在用富文本编辑器时经常会遇到的问题是asp.net报的”检测到有潜在危险的 Request.Form 值“一般的解法是在aspx页面 page 标签中加上 validaterequest='fa ...
- centos7 ping不通 name or service not known
最近打算为centos安装一个界面时,发现不能上网.ping www.baidu.com 报name or service not known. 原来网络配置没设好. 一.选择VMWare的NAT模式 ...
- 关于XML
一.XML定义 XML(eXtensible Markup Language)即可扩展标记语言,它与HTML一样,都是处于SGML,标准通用语言.Xml是Internet环境中跨平台的,依赖于内容的技 ...
- mysql 5.6.43免安装版安装教程
1.第一步,下载 Mysql官方网站:http://www.mysql.com/,数据库下载地址:http://www.mysql.com/downloads/.个人比较喜欢用免安装版,使用起来方便 ...
- db2数据库常见问题
db2数据库不能轻易改变表结构,不然表会进入暂挂状态,造成表被锁住. 解锁表语句:call sysproc.admin_cmd('reorg table <table name>');
- VIM批量缩进
方法一 1.按 ctrl + shif + ; 进入底行模式 2.将所要批量缩进的行号写上,按照格式:“行号1,行号2>”输入命令,如要将4至11行批量缩进一个tab值,则命令为“4,11&g ...