前言
在这个信息横纵交错的大数据时代,以前的单应用架构完全支撑不起现在的流量了,于是技术架构不断演变。现如今火爆的微服务架构,不会点分布式都不敢说自己是一个后端开发者。你对这新技术不敏感,对一种技术了解的不透彻,还是上来就是代码一把梭,那么你将如何升职加薪,工资五年还在原地踏步,什么中年危机就提前到来了。当然架构这东西,并不是任何产品都适用微服务架构,所有不以业务逻辑支撑的系统架构,就是耍流氓。接下来我们将简单介绍一下微服务架构,以及后面我们慢慢熟悉的Spring Cloud中的一下子项目。
什么是微服务架构
微服务是系统架构上的一种设计风格,它将一个原本独立的系统拆分多个小型服务,每个小型服务都在各自独立的进程中运行,服务之间基于HTTP的RESTful API 进行通信协作。每一个为服务都围绕系统中的某一个或者一系列耦合性较高的业务功能进行构建,每个服务都维护着自身的数据储存,业务,自动化测试方案,以及独立的部署机制。由于有轻量级的通信协作,所以每个微服务可以使用不同的语言编写
Spring Cloud简介
springCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。跟spring boot框架一起使用的话,会让你开发微服务架构的云服务非常好的方便。
Spring Cloud子项目
- Spring Cloud Config:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。
- Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
- Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等
- Eureka:服务治理组件,包括服务注册中心,服务注册与发现机制的实现。
- Hystrix:容错管理工具,实现断路器模式,帮助服务依赖种出现延迟和为故障提供强大的容错能力。
- Ribbon:客户端负载均衡的服务调用插件
- Feign:基于Ribbon和Hystrix的声明式服务调用组件。
- Zuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。
- Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
Spring Cloud CloudFoundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。
Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。
Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。
Spring Cloud Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。
Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
-
Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。
..........
SpringCloud特点
1:约定优于配置
2:开箱即用、快速启动
3:适用于各种环境
4:轻量级的组件
5:组件支持丰富,功能齐全