【视频&交流平台】
http://study.163.com/course/introduction.htm?courseId=1004638001
http://412887952-qq-com.iteye.com/blog/2321532
在了解Spring Cloud之前,我们需要先了解下什么是微服务,在本节中从微服务讲起,然后介绍Spring Cloud。
本节大纲:
二、什么是微服务?
三、市场上比较成熟的微服务实现产品
四、什么是Spring Cloud?
接下来看下具体的内容:
一、微服务的产生?
1.1 单体架构
(1)在一个项目中包含了应用的所有功能,我们称为单体应用。
(2)架构单体应用的架构风格,我们称为单体架构。
1.2 单体架构存在的缺点
(1)复杂性逐渐变高;
(2)部署速度逐渐变慢;
(3)无法按需伸缩;
正是因为单体架构存在上面的一些问题,就产生了微服务架构。
二、什么是微服务?
2.1 什么是微服务
上面我们把每个模块都拆分成一个一个的服务,服务与服务之前是通过REST API进行远程调用,以上的每个服务就是微服务。
那么什么是“微服务架构”呢?简单的说,微服务架构就是将一个完整的应用从数据存储开始垂直拆分成多个不同的服务,每个服务都能独立部署、独立维护、独立扩展,服务与服务间通过诸如RESTful API的方式互相调用。
对于“微服务架构”,大家在互联网可以搜索到很多相关的介绍和研究文章来进行学习和了解。也可以阅读始祖Martin Fowler的《Microservices》,本文不做更多的介绍和描述。
2.2 微服务特点
(1)每个微服务可独立运行在自己的进程里;
(2)一系列独立运行的微服务共同构建起了整个系统;
(3)每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:用户管理、电影管理;
(4)微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。
2.3 微服务带来的挑战
(1)运维要求较高
(2)分布式的复杂性
(3)接口调整成本高
三、市场上比较成熟的微服务实现产品
3.1 Dubbo
Dubbo是Alibaba开源的分布式服务框架,服务之间通过RPC进行通讯。
3.2 Dubbox
Dubbox是当当网对于Dubbo的扩展版本,在Dubbo的基础之上支持REST方式进行通讯。
3.3 Spring Cloud
Spring Cloud是我们要介绍的微服务框架,是Spring社区提供的微服务全家桶。
四、什么是Spring Cloud?
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等项目。