什么是微服务
- 系统设计的一种风格,主旨在于一个独立的系统拆分为多个独立的小型服务。每一个拆分的小型服务围绕着系统的某一项或者耦合度比较高的业务功能进行搭建,并且维护者自己的数据库,业务逻辑和独立部署机制。
与单体系统的区别。
- 小型服务能够独立部署,不会互相干扰。
- 通过服务间的协作流程更容易发现系统的瓶颈位置,给出较为准确的系统级性能容量评估。
springCloud的简介
Spring Cloud Config
- 配置管理工具,支持Git存储配置内容,可以使用它实现应用配置的外部化存储,并支持客户端配置信息刷新,加密/解密配置内容.
Spring Cloud Netffix
- 核心组件
- Eureka 服务治理组件【服务注册中心,注册和发现机制】
- Hystrix 容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力.
- Ribbon 客户端负载均衡的服务调用组件
- Feign 基于Ribbon 和Hystrix的声明式服务调用组件
- Zuul 网关组件,提供智能路由,访问过滤等功能
- Archaius 外部化配置组件
Spring Cloud Bus
- 事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
Spring Cloud Cluster
- 针对Zookeeper,redis,Hazelcast,Consul 的选举算法和通用状态模式的实现
Spring Cloud Cloudfoundary
- 与PivotalCloudfoundry的整合支持。
Spring Cloud Consul
- 服务发现与配置管理工具。
Spring Cloud Stream
- 通过Redis、Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送和接收消息。
Spring Cloud AWS
- 用于简化整合AmazonWebService的组件。
Spring Cloud Security
- 安全工具包,提供在Zuul代理中对OAuth2客户端请求的中 继器。
Spring Cloud Sleuth
- SpringCloud应用的分布式跟踪实现,可以完美整合Zipkin。
Spring Cloud ZooKeepr
- 基于ZooKeeper的服务发现与配置管理组件。
Spring Cloud Starters
- SpringCloud的基础组件,它是基于SpringBoot风格项目的 基础依赖模块。
Spring Cloud Cli
- 用于在Groovy中快速创建SpringCloud应用的SpringBootCLI 插件。