1. 分布式+服务治理Dubbo
目前成熟的互联网架构,应用服务化拆分 + 消息中间件
2. Dubbo 和 SpringCloud对比
可以看一下社区活跃度:
https://github.com/spring-cloud
对比结果:
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 |
功能点/服务框架 | Dubbo/DubboX | Netflix/SpringCloud |
功能定位 | 服务框架 | 完整的微服务框架 |
支持Rest | 否 | 是,Ribbon支持多种可拔插的序列号选择 |
支持RPC | 是 | 否 |
支持多语言 | 否 | 是(Rest形式) |
负载均衡 | 是(客户端) | 是(服务端zuul+客户端Ribbon),zuul-服务,动态路由,云端负载均衡Eureka(针对中间层服务器) |
配置服务 | 否 | Netfix Archaius,Spring Cloud Config Server 集中配置 |
服务调用链监控 | 否 | 是(zuul),zuul提供边缘服务,API网关 |
高可用/容错 | 是(客户端) | 是(服务端Hystrix+客户端Ribbon) |
典型应用案例 | Netflix | |
社区活跃程度 | 2017年后重新开始维护,之前中断了5年 | 高 |
学习难度 | 低 | 中等 |
文档丰富程度 | 高 | 高 |
其他 | 实践的公司比较多 | Spring Cloud Bus为我们的应用程序带来了更多管理端点 |
最大区别:Spring Cloud 抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式
严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这个优点在当下强调快速演化的微服务环境下,显得更加合适。
品牌机和组装机的区别
社区支持与更新力度的区别