如何学习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概述
微服务架构: 微服务架构是一种架构模式或者说是一种架构风格, 他提倡将单一应用程序划分成一组小的服务, 每个服务运行在其独立的进程中, 服务之间互相协调,互相配合, 为用户提供最终价值.服务之间采用轻 ...
随机推荐
- less 命令翻页键
less 是linux快速浏览文件的命令(防止 误修改文件) less主要就是 浏览文件 查找文件 浏览文件涉及到的就是上下翻页 具体翻页的按键如下表 less 向上翻页 向下翻页 一页 b (ba ...
- PHP调用微博接口实现微博登录的方法示例
在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站.这里以微博登录为例.微博登录包括身份认证.用户关系以及内容传播.允许用户使用微博帐号登录访问第三方网站,分享内容 ...
- URI is not registered ( Setting | Project Settings | Schemas and DTDs )
URI is not registered ( Setting | Project Settings | Schemas and DTDs ) 在idea中,当初手动第一次写spring配置文件的时候 ...
- Linux服务器运维基本命令
========Linux 服务器常用命令================ cd / 根目录cd ../ 上级目录 ls 列出文件目录 clear 清空控制台tar cvzf name.C ...
- IOS开发中将定时器添加到runLoop中
runLoop主要就是为线程而生的.他能够让线程在有任务的时候保持工作状态,没有任务的时候让线程处于休眠待备状态. 主线程的runloop默认是开启的.主线程上创建的定时器已经默认添加到runLoop ...
- 修改 Docker 的 daemon.json后启动失败
创建Harbor要把register 换成Harbor地址 vim /etc/docker/daemon.json添加{ "insecure-registries":[" ...
- Android第三次作业
制作音乐播放器 实现的功能: 歌曲的播放.暂停.停止.上一首.下一首.歌单列表的显示(获取本地歌曲). 成品图: 功能代码实现: 实现歌曲的播放.暂停.停止.上一首.下一首: public void ...
- ElasticSearch(6.2.2)的java API官方文档的总结 (三)
一 : SearchRequest用于任何与搜索文档,聚合和建议有关的操作,并且还提供了对生成的文档进行高亮显示的方法. 在最基本的形式中,我们可以向请求添加一个查询: 1:添加一个Search ...
- mybatis逆向工程的注意事项,以及数据库表
1.选择性更新,如果有新参数就更换成新参数,如果参数是null就不更新,还是原来的参数 2.mybatis使用逆向工程,数据库建表的字段user_id必须用下滑线隔开,这样生成的对象private L ...
- swust oj 987
输出用先序遍历创建的二叉树是否为完全二叉树的判定结果 1000(ms) 10000(kb) 2553 / 5268 利用先序递归遍历算法创建二叉树并判断该二叉树是否为完全二叉树.完全二叉树只能是同深度 ...