什么是微服务
- 微服务是一种架构风格
- 一个应用拆分为一组小型服务
- 每个服务运行在自己的进程内,也就是可独立部署和升级
- 服务之间使用轻量级HTTP交互
- 服务围绕业务功能拆分
- 可以由全自动部署机制独立部署
- 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术
微服务相关技术
- 服务调用
- 服务降级
- 服务注册与发先
- 服务熔断
- 负载均衡
- 服务消息队列
- 服务网关
- 配置中心管理
- 自动化构建部署
- 服务监控
- 全链路追踪
- 服务定时任务
- 调度操作
Spring Cloud简介
- 微服务技术维度
SpringCloud=分布式微服务架构的站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶
微服务具体实现技术落地(21种)
- Srping Cloud Config
配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储,Git以及Subversion
- Spring Cloud Bus
事件,消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署
- Eureka
云端服务发现,一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移
- Hystrix
熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力
- Zuul
Zuul是在云平台上提供动态路由,管控,弹性,安全等边缘服务的框架。Zuul相当于是设备和Netficx流应用的Web网站后端所有请求的前门
- Archaius
配置管理API,包含一系列配置管理API,提供动态类型化属性,线程安全配置操作,轮询框架,回调机制等功能
- Consul
封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成
- Spring Cloud Sleuth
日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案
- Spring Cloud Data Flow
大数据操作工具,作为Spring XD的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式
- Spring Cloud Security
基于sping security的安全工具包,为你的应用程序添加安全控制
- Spring Cloud Zookeeper
操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理
- Spirng Cloud Stream
数据流操作开发包,封装了与Redis,Rabbit,Kafka等发送接收消息
- Spring Cloud CLI
基于Spring Boot CLI,可以让你以命令行方式快速建立云组件
- Ribbon
提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和熔断器使用
- Feign
Feign是一种声哨式,模板化的HTTP的客户端
- Spring Cloud Task
提供云端计划任务管理,任务调度
- Spring Clod Connectors
便于云端应用程序在各种PaaS平台连接到后端,如:数据库和消息代理服务
- Spring Cloud Cluster
提供Leadership选举,如:Zookeeper,Redis,Hazelcast,Constul等常见状态模式的抽象和实现
- Spring Cloud Starters
Spring Boot式的启动项目,为Spring Cloud 提供开箱即用的依赖管理
- Spring Cloud for Cloud Foundry
通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台
- Turbine
Turbine是聚合服务器发送事件流数据的一个工具,用来监控集群下Hystrix的metrics 情况