1.为什么要使用springcloud
如果我们的服务需要调用另外的一个服务,当然可以通过url 加接口直接调用,但是如果url变动后,我们也要跟着修改,还有可能服务宕机我们也不知道,而且现在只有一个url不具备高可用性,就算有多个url,那我们还需自己实现负载均衡,所以我们就需要一种服务独立运行在独立的进程中并与其它的进程相隔离,这个时候微服务就即将闪亮登场了
2.微服务
2.1 什么是微服务
微服务架构(MicroServicesArchitecture)是近几年来软件架构领域出现的高频词汇,它是基于传统的SOA架构演进而来的一种架构模。其提倡将传统的单体架构或分布式架构中的单体应用程序和服务划分成更小粒度的服务,这种服务我们称之为微服(Microservices)。这种服务独立运行在独立的进程中并与其它的进程相隔离,服务于服务之间通常采用基于Http的通信协议构建的RestFulAPI进行通信,每个微服务都围绕着具体的业务二构建,其能独立的开发,构建,发布和部署到类生产环境和生产环境,而不影响其它的依赖业务。
微服务(Microservice)这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方法,2014年开始受到各方的关注,而2015年,可以说是微服务的元年;
越来越多的论坛、社区、blog以及互联网行业巨头开始对微服务进行讨论、实践,可以说这样更近一步推动了微服务的发展和创新。而微服务的流行,MartinFowler功不可没。这老头是个奇人,特别擅长抽象归纳和制造概念。特别是微服务这种新生的名词,都有一个特点:一解释就懂,一问就不知,一讨论就打架。
3. SpringCloud
3.1 SpringCloud简介
SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。
SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以用SpringBoot的开发风格做到一键启动和部署。
SpringCloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开
发工具包。
SpringCloud=分布式微服务架构下的一战式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。
Spring最擅长的就是集成,把世界上最好的框架拿过来,集成到自己的项目中。
SpringCloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配
置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功
能。其主要涉及的组件包括:
Eureka:注册中心 Ribbon:负载均衡 Feign: 服务调用 Hystix:熔断器 服务的熔断、降级! Zuul: 服务网关 config 配置中心
3.2 SpringCloud与SpringBoot是什么关系?
① SpringBoot专注于快速方便的开发单个个体微服务。 ② SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的_个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理’、事件总线、全局锁’、决策竞选、分布式会话等等集成服。 ③ SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系.④ SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。
3.3 SpringCloud下载
官网文档:http://projects.spring.io/spring-cloud/ 参考资料: 1)中文版的组件说
明:https://springcloud.cc/spring-cloud-netflix.html 2)开发的API说明:
英文版:http://cloud.spring.io/spring-cloud-static/Dalston.SR1/ 中文版:https://springcloud.cc/spring-cloud-dalston.html
2)springcloud中国社区:http://springcloud.cn 3)springcloud中文网:http://sprin
gcloud.cc
3.4 SpringCloud集成的相关项目
1、服务的注册与发现(Eureka) 2、服务消费者(rest+Ribbon) 3、服务消费者
(Feign) 4、断路器(Hystrix) 5、断路器监控(Hystrix Dashboard) 6、路由网关(Zuul)
7、分布式配置中心(Spring Cloud Config) 8、消息总线(Spring Cloud Bus) 9、服务链
路追踪(Spring Cloud Sleuth)
3.5 SpringCloud版本
SpringCloud的版本命名比较特殊,因为它不是一个组件,而是许多组件的集合,它
的命名是以A到Z的为首字母的一些单词组成:
接下来,学习SpringCloud中的重要组件