1.什么是微服务架构
• 将一个原本独立想系统差分成多个小型服务
• 并且没个服务都维护着自身的数据存储,业务开发,自动化测试案例以及独立部署机制
• 由于有了轻量级的通信协作基础,所以微服务可以使用不同的语言来编写
• 服务之间通过基于HTTP的RESTful API进通信协作
在微服务架构中,由于服务不在一个进程中,组件间的通信模式发生了改变,若仅仅将原本的进程内的方法调用改成RPC方式,会导致服务之间发生繁琐的通信
在微服务中,通常会使用以下两种服务调用方式:
1. 基于HTTP的RESTful 或轻量级的消息发送协议
2. 通过在轻量级消息总线上传递消息,类似RabbitMQ
SpringCloud 包含了多个子项目:
1. SpringCloud Config:配置管理工具,支持GIT存储配置内容,可以实现应用配置的外部化存储,支持客户端配置信息刷新,加密、解密等配置
2. SpringCloud Netflix:核心组件,包含了多个开源套件
Eureka:服务治理组件,包含服务注册中心,服务注册于发现
Hystrix:容错管理组件,实现断路器模式,帮助服务依赖出现的延迟为故障提供强大通错能力
Ribbon:客户端负载均衡服务调用组件
Feign:基于Ribbon和Hystrix的什么式服务调用组件
Zull:网关组件,提供智能路由,访问过滤等功能
Archaius:外部化配置组件
3. SpringCloud Bus:事件,消息总线,用于传播集群中的状态变化或事件,以触发后续的操作,如果动态刷新配置
4. SpringCloud Cluster:针对zookeeper,redis,Hazalcast,Consul的选举算法和通用状态模式的实现
5. 。。。。。。
|
|