文章目录
微服务的框架了解过嘛?谈谈你对微服务的理解?还了解哪些微服务框架?
了解过,在 xx 项目使用过 Dubbo;在 xx 项目使用过 SpringCloud;
总体来说,微服务是一种架构风格,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合;
对于一个大型复杂的业务系统:
它的业务功能可以拆分为多个独立的服务;
各个服务之间是松耦合的;
通过远程协议进行通信 ( 异步、同步 );
各个微服务均可被独立部署、扩容、升降级。
其它微服务框架还有 Motan、GRPC、Thrift 等;
接下来可能会让你对比一下 Dubbo 和 SpringCloud。
你说一下 Dubbo 和 和 SpringCloud 的区别
- 由于 Dubbo 出现的比较早,自己接触的比较早,刚开始接触 SpringCloud 的时候,也拿两者进行了对比,但是渐渐发现,
发现两者的对比的本质是 REST 和 RPC 的对比; - SpringCloud 借助 SpringBoot 提供一套完整的微服务解决方案,而 Dubbo 的定义是一款高性能的 RPC 框架;
- 如果非要对比的话,我捡几个重要的点进行对比一下:
- 在服务调用方式方面,Dubbo 采用 RPC 方式,而 SpringCloud 使用 REST 方式;
- 在注册中心方面,Dubbo 推荐使用 Zookeeper,而 SpringCloud 推荐使用 Eureka;
- 在服务网关方面,Dubbo 没有服务网关,而 SpringCloud 提供了 Zuul 和 Spring cloud gateway;
- 在断路器方面,Dubbo 不太完善,而 SpringCloud 整合了 Hystrix;
- 在分布式配置方面,Dubbo 没有提供,而 SpringCloud 提供了 spring cloud config;
- 在服务跟踪方面,Dubbo 没有提供,而 SpringCloud 提供了 spring cloud sleuth;
等等
对 SpringCloud 了解吗?
- SpringCloud 是在 2014 年底由 Spring 团队推出的,它的目标是使其成为 Java 领域的微服务架构落地标准;
- SpringCloud 基于 SpringBoot 开发,提供了一套完整的微服务解决方案,包括:
服务注册与发现、配置中心、Api 网关、断路器、全链路监控、控制总线、智能路由等,并可以根据需要进行扩展和替换;
说一下 SpringCloud 都有哪些组件?
组件名称 | 所属项目 | 组件分类 |
---|---|---|
Eureka | spring-cloud-netflix | 注册中心 |
Zuul | spring-cloud-netflix | 第一代网关 |
Ribbon | spring-cloud-netflix | 负载均衡 |
Hystrix | spring-cloud-netflix | 熔断器 |
Turbine | spring-cloud-netflix | 集群监控 |
Sidecar | spring-cloud-netflix | 多语言 |
Feign | spring-cloud-openfeign | 声明式 Http 客户端 |
Consul | spring-cloud-consul | 注册中心 |
GateWay | spring-cloud-gateway | 第二代网关 |
Sleuth | spring-cloud-seluth | 链路追踪 |
Config | spring-cloud-config | 配置中心 |
Bus | spring-cloud-bus | 总线 |
Popeline | spring-cloud-pipeline | 部署管道 |
Dataflow | spring-cloud-dataflow | 数据处理 |