如何学习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概述
微服务架构: 微服务架构是一种架构模式或者说是一种架构风格, 他提倡将单一应用程序划分成一组小的服务, 每个服务运行在其独立的进程中, 服务之间互相协调,互相配合, 为用户提供最终价值.服务之间采用轻 ...
随机推荐
- webpack问题列表及解决方案
1.提升webpack打包速度 2.cssloader顺序有先后 3.如何正确引用图片 4.打包后访问不到json文件 5.打包后如何访问项目 6.打包后的文件 7.为什么执行webpack,就可以打 ...
- MongoDb安装和快速入门
1.Mongodb安装 2.mongodb的增删改查 3.MongoDB数据类型 4.Mongodb $关键字 $修改器 5.MongoDB 之 "$" 的奇妙用法 6.Mongo ...
- Centos7中kubernetes-1.11.2基于配置亲和与反亲和
1.题目 通过命令行,创建两个个deployment. – 需要集群中有2个节点 – 第1个deployment名称为<hwcka-002-app1>,使用nginx镜像,用有2个pod, ...
- CentOS7安装及简单配置(一)
CentOS7是RHEL的社区版,摘抄维基百科的一段话如下: CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat ...
- 从Excel导数据到MySQL速度优化
运行环境: Windows10 和 Deepin15.7, MySQL14.4, Java1.8.0_181使用工具: poi,JDBC数据规模: 35万条,5个文件夹,146个Excel文件(.xl ...
- netcore应用程序部署程序到ubuntu
运维需求:获取服务器的运行情况,是否CPU.内存较高等,上报到运维系统 环境:ubuntu16.04 工具::netcore2.1.supervisor 程序实现(代码就不贴了)参考:https:// ...
- js数组基础
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- EF CodeFirst类生成器
前段时间由于用到EF Code First. 上头让我添加一个功能,然后....要映射12张表到实体类中... 太无语了吧...一张表30多个字段啊老大!!!! "有没有工具可以快速弄啊,自 ...
- Qt5+MSVC2015编译器编译发布的Release程序运行崩溃,如何查找崩溃的原因??
除了加log信息,还有什么方法?? ==================================2019/4/26============================= 1 常见的c++内 ...
- boa调试
Cannot access memory at address 0x0 0x400fc7e0 in ?? () 0 0x4014f0dc in wcscasecmp_l () from /lib/li ...