微服务
- 微服务介绍
- 1、什么是微服务
- 2、 微服务优势
- 3、 [Spring Cloud](https://spring.io/projects/spring-cloud)的优势
- 4、 Spring Cloud 包含的组件
- 5、Spring Cloud 与Spring Boot 使用版本对应关系
微服务介绍
1、什么是微服务
微服务就是将单个程序拆分成多个微服务,拆分完成后,这些微服务都运行在独立的进程中,服务与服务之间采用轻量级的通信机制进行沟通。例如:Spring Cloud 采用基于Http的 Restful Api来进行通信。
每个服务都围绕具体的业务场景进行构建,例如电商系统中有订单服务、支付服务、会员服务、物流服务、退货服务等,这些拆分后的应用都是独立的,可以独立部署,因这种架构机制,在一个微服务项目中,我们的项目不再拘泥于一种开发语言,可以 使用Java、Go、Python、PHP等;可以根据业务场景需求选择合适的开发语言。
2、 微服务优势
- 复杂度可控
- 独立部署
- 技术选型灵活
- 较好的容错性
- 较强的可扩展性
3、 Spring Cloud的优势
Spring Cloud 可以理解为微服务这种思想在 Java 领域的一个具体落地。 在发展之初,就借鉴了微服务的思想,同时结合 Spring Boot,Spring Cloud 提供了组件的一键式启动和部署的能力,极大的简化了微服务架构的落地。
Spring Cloud 这种框架,从设计之初,就充分考虑了分布式架构演化所需要的功能,例如服务注册、配置中心、消息总线以及负载均衡等。这些功能都是以可插拔的形式提供出来的,这样,在分布式系统不断演化的过程中,我们的 Spring Cloud 也可以非常方便的进化。
Spring Cloud 是一系列框架的集合,Spring Cloud 内部包含了许多框架,这些框架互相协作,共同来构建分布式系统。利用这些组件,可以非常方便的构建一个分布式系统。
Spring Cloud核心特性
- 服务注册与发现
- 负载均衡
- 服务之间调用
- 容错、服务降级、断路器
- 消息总线
- 分布式配置中心
- 链路器
4、 Spring Cloud 包含的组件
Spring Cloud Netflix,这个组件,在 Spring Cloud 成立之初,立下了汗马功劳。但是, 2018 年的断更,也是 Netflix 掉链子了。
Spring Cloud Config,分布式配置中心,利用 Git/Svn 来集中管理项目的配置文件。
Spring Cloud Bus,消息总线,可以构建消息驱动的微服务,也可以用来做一些状态管理等。
Spring Cloud Consul,服务注册发现。
Spring Cloud Stream,基于 Redis、RabbitMQ、Kafka 实现的消息微服务。
Spring Cloud OpenFeign,提供 OpenFeign 集成到 Spring Boot 应用中的方式,主要解决微服务之间的调用问题。
Spring Cloud Gateway,Spring Cloud 官方推出的网关服务。
Spring Cloud Cloudfoundry,利用 Cloudfoundry 集成我们的应用程序。
Spring Cloud Security,在 Zuul 代理中,为 OAuth2 客户端认证提供支持。
Spring Cloud AWS ,快速集成亚马逊云服务。
Spring Cloud Contract,一个消费者驱动的、面向 Java 的契约框架。
Spring Cloud Zookeeper,基于 Apache Zookeeper 的服务注册和发现。
Spring Cloud Data Flow,在一个结构化的平台上,组成数据微服务。
Spring Cloud Kubernetes,Spring Cloud 提供的针对 Kubernetes 的支持。
Spring Cloud Function
Spring Cloud Task,短生命周期的微服务。
5、Spring Cloud 与Spring Boot 使用版本对应关系
SpringCloud | SpringBoot |
---|---|
H版 | 2.2.x |
G版 | 2.1.x |
F版 | 2.0.x |
E版 | 1.5.x |
D版 | 1.5.x |