前言
今天是挑战一个月学会 Spring Cloud + Spring Cloud Alibaba 的第一天,我们先不着急学习具体的知识,我们先从整体来了解一下微服务。
首先我们先罗列一下在学习本课之前的前置技能:
java8 + maven + git(github) + Nginx + RabbitMQ + SpringBoot2.0
然后,我想说的是,整个的学习过程是艰辛的,但是最后胜利的果实是甘甜的,我希望你
够从头到尾都保持热情
不要只局限于看懂,要实际上手操作
不要三分钟热度
遇到不会的可以先跳过,不要直接放弃
战线不要拉的太长,尽量在一个月多的时间学完,保证学习的连贯性
有的知识你可能用不到,但是为了知识的完整性,还是希望认真学习
下面,介绍一下到底什么是微服务和本次 SpringBoot,Spring Cloud 的版本选型
本次课程分为两个阶段,前半部分为 SpringCloud 后半部分为 SpringCloud Alibaba
微服务架构理论
什么是微服务
微服务架构是一种架构模式,它提倡将单一应用程序划分成一小组的服务,服务之间互相协调,互相配合,为用户提供最终价值。
简单理解为用 SpringBoot 开发的一个个独立的功能单元。
SpringCloud 简介
SpringClooud 是分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。
这里先只介绍 SpringCloud 相关的,SpringCloud Alibaba 的会在后续章节中介绍
支撑起微服务架构的具体技术:(很重要)
服务注册与发现 Eureka
服务调用 Ribbon Feign
服务熔断 HysTriix
负载均衡 Ribbon Feign
服务降级 HysTriix
服务消息队列
配置中心管理 spring cloud config
服务网关 Zuul
服务监控
全链路追踪
自动化构建部署
服务定时任务调度操作
服务开发 SpringBoot
另外,关于微服务的解决方案还有阿里巴巴出品的 Dubbo,目前 Dubbo 使用的比较少了,而且也逐渐被阿里出品的 SpringCloud Alibaba 替代了,所以我们这里就不涉及 Dubbo 相关知识了。
boot 和 cloud 版本选型
版本选择
本次使用的版本为:
SpringBoot2.X 版和 SpringCloudH 版
建议和我使用同样的版本,避免因版本问题导致项目运行不正常。
当然,如果你不想,也可以自己选择版本,但是 boot 和 cloud 的版本一定要对应上,查看版本对应:
https://spring.io/projects/spring-cloud

小知识
SpringCloud 版本命名使用的都是伦敦地铁站名称。
内容累积到临界点或者解决重大 bug 会发布 “service releases” 版本,简称 SRX 版本,比如 Greenwich.SR2 就是发布的 Greenwich 版本的第二个 SRX 版本。
本项目版本选择
以下为本次项目中各个基础组件版本的选择。(尽量与我保持一致,避免因版本问题造成不必要的麻烦)
