3Spring Cloud介绍
微服务与Spring Cloud
1. 什么是微服务
在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务",微,狭义来讲就是体积小, 而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。
2. 微服务由来
微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。
3. 关于Netflix的贡献
在微服务的架构中,Martin Flower 的文章中肯定了Netflix的贡献,接下来我们了解一下Netflix
- Netflix OSS
Netflix(Nasdaq NFLX) 成立于1997年,是一家在线影片租赁提供商,主要提供Netflix超大数量的DVD并免费递送,总部位于美国加利福尼亚州洛斯盖图
Netflix OSS 指的是 "Netflix Open Source Software"
这里我们关注的是 OSS 中的cloud platform, 也就是 "Common Runtime Services & Libraries",包括为微服务提供支持的运行时容器,类库和服务。
Netflix OSS 是一组开源的框架和组件库,是Netflix公司开发出来解决分布式系统的一些有趣的可扩展类库。对于Java开发者来说,它们是在云端环境中开发微服务的非常棒的工具代名词。在服务发现,负载均衡,容错等模式方面,都给出了非常重要的概念,并带来了漂亮的解决方案。
4.Sring Cloud 与 Netflix
Spring Cloud 并不是一个具体的框架,而是一个统一的框架集,可以理解为一个工具箱,提供了各种工具,可以帮助我们快速构建分布式系统
Spring Cloud 项目的构建基于Spring Boot,不了解Spring Boot的可以先熟悉一下Spring Boot。Spring Cloud 团队讲Netflix的多个框架进行封装并不断迭代,通过自动配置的方式将这些框架绑定到Spring的环境中。从而简化了框架的使用。使得我们在使用Spring Cloud时很容易将Netflix各个框架包含在项目中。下面介绍下封装了Netflix的那些内容:
- Eureka:Spring Cloud微服务的注册中心,主要用于服务管理(虽说)
目前Eureka官方已经不再维护,但也不影响我们使用,Spring Cloud 切换到Consul、Zookeeper也含简单,进阶部分会说到。 - Hystrix:自我保护框架,通过限流、熔断控制分布式系统建的交流
- Feign:一个基于REST的客户端,目的为了简化Web Service客户端的开发
- Ribbon:负载均衡框架,支持按照权重、随机、轮询等
- Zuul:Spring Cloud 微服务网关,为微服务提供代理、过滤、路由等功能
5.Spring Cloud 其它重要模块
- Spring Cloud Stream
- Spring Cloud Bus
- Spring Cloud Config
- 等
后续入门和进阶都是提到
SpringCloud官方:https://spring.io/projects/spring-cloud