前言
微服务的四个核心问题
可以理解成 网络不可靠 导致的
- 1、服务很多,客户端该怎么访问? API网关
- 2、这么多服务之间如何通信? HTTP、RPC
- 3、如何治理这些服务?注册和发现
- 4、服务挂了怎么解决?熔断机制
解决方案
- 1、Spring Cloud NetFlix(一站式解决方案)
- 2、Apache Dubbo Zookeeper (半自动)
- 3、Spring Cloud Alibaba(最新的一站式解决方案)
一、Spring Cloud
参考网站:
- SpringCloud Netflix 中文文档:https://www.springcloud.cc/spring-cloud-netflix.html
- SpringCloud 中文API文档(官方文档翻译版):https://www.springcloud.cc/spring-cloud-dalston.html
- SpringCloud中文网:https://www.springcloud.cc/
1.简介
SpringCloud基于Springboot
提供了一套微服务解决方案
,包括服务注册与发现
、配置中心
、全链路监控
、服务网关
、负载均衡
、熔断器
等组件
2.与SpringBoot的关系
- Springboot专注于
快速方便的开发单个个体微服务
,SpringCloud专注于协调各个微服务,提供全局的服务治理框架
- Springboot可以脱离SpringCloud单独开发应用,SpringCloud离不开Springboot
3.Dubbo和SpringCloud的技术选型
微服务架构图:
内容 | Dubbo | SpringCloud |
---|---|---|
服务注册中心 | Zookeeper | Spring Cloud Netfilx Eureka |
服务调用方式 | RPC | REST API |
服务监控 | Dubbo-monitor | Spring Boot Admin |
断路器 | 不完善 | Spring Cloud Netfilx Hystrix |
服务网关 | 无 | Spring Cloud Netfilx Zuul |
分布式配置 | 无 | Spring Cloud Config |
服务跟踪 | 无 | Spring Cloud Sleuth |
消息总线 | 无 | Spring Cloud Bus |
数据流 | 无 | Spring Cloud Stream |
批量任务 | 无 | Spring Cloud Task |
1、SpringCloud 摒弃了 Dubbo 的RPC通信,采用的是基于HTTP的REST方式
REST牺牲了服务调用的性能,但是比RPC更为灵活,调用的时候只需要 RestfulTemplate. 调用,不存在代码级别的强依赖。
2、品牌机与组装机的区别
SpringCloud与Spring全家桶完美适配,而Dubbo构建的微服务架构的自由度很高,但很有可能因为某一环的原因导致全盘崩溃。
3、Dubbo的定位是一款RPC框架,SpringCloud的目标是微服务架构下的一站式解决方案