细听分说Dubbo、SpringCloud、Istio微服务框架
文章目录
前言
随着互联网时代的快速发展、产品更新迭代的同时,也产生了很多优秀的框架,可谓是时势造英雄啊,今天就让我们来一起看看各大互联网企业最爱使用的几个框架(Dubbo、SpringCloud、Istio)。
一、Dubbo、SpringCloud、Istio框架简介
1.Dubbo
Dubbo是阿里巴巴公司自主研发并开源的一款高性能、轻量级的开源RPC分布式服务框架,服务消费方引用服务提供方二方库本地化调用远程接口,通过注册中心zookeeper做服务提供者、服务消费者服务的注册与发现来实现远程服务间的数据交互,支持服务智能容错、智能均衡、灰度,可与Spring集成。
2.SpringCloud
Spring家族产品,包含一系列组件,其实就是整个Spring生态组件框架的统称。也是基于SpringBoot框架的基础上与众多组件框架相结合从而形成一个整的微服务架构生态,SpringCloud提供配置管理,服务智能,断路器,智能路由,微代理,控制总线,全局锁,决策竞选分布式会话和集群状态管理一系列解决方案。
3.Istio
Istio一个全新的服务网格框架,它是ServiceMesh目前最流行的实践,那么它是干啥的呢?官方给出的介绍是:An open platform to connect, secure, control and observe services.翻译过来就是“连接、安全加固、控制和观察服务的开放平台”,与前两个框架不同的是它不是一个与语言绑定的应用系统框架,并且不需要通过接入代码实现某个功能,它处于服务应用之外,建立一个复杂的微服务网格,使得业务系统与基础设施系统实现解耦,另外Istio对Kubernetes(k8s)支持友好。
二、Dubbo、SpringCloud、Istio架构图
1.Dubbo架构图
从架构图中可以看出来,Dubbo功能相对单一不够全面,没有像SpringCloud拥有丰富的微服务生态体系,并且SpringCloud也有注册中心(Eureka、Consul)、服务消费(Ribbon)组件。
2.SpringCloud架构图
从架构图可以看出SpringCloud拥有一个完整架构生态。
2.Istio架构图
从架构图上可以看出Istio不是嵌入代码就可以做到服务连接代理、安全加固、控制和观察,服务之间的通信支持协议Http/1.1、Http/2、gPRC、TCP,由Pilot、Citadel、Mixer组成控制平台。
三、Dubbo、SpringCloud、Istio数据对比
对比项 | Dubbo | SpringCloud | Istio |
---|---|---|---|
学习难度(五星满) | ☆☆☆ | ☆☆☆☆ | ☆☆☆☆ |
互联网资料案例 | 多 | 非常多,有实战案例 | 少 |
文档 | 中英文文档 | 英文文档 | 中英文文档 |
支持语言 | Java等多种语言 | Java等多种语言 | 基本都支持(不耦合) |
集成 | Jar依赖,二方库Jar依赖多 | 基于SpringBoot配置化集成,简单、稳定 | 支持Kubernetes(k8s) |
开源社区热度 | 低 | 高 | 高 |
网关 | 无 | Zuul,Gateway | Traffic Cotrol、Egress |
客户端负载均衡 | 无 | Ribbon | Envoy |
开源协议 | Apache2.0 | Apache2.0 | Apache2.0 |
总结
Dubbo作为阿里巴巴开源框架之一,运行性能稳定性还是不错的,就是中间经历过暂停维护,对于使用Dubbo开发者来说还是有一定影响,虽然2017年又重新维护,我也有幸在公司项目中用到过开发起来还是挺容易的,通过依赖二方库实现本地化调用,就是接口维护麻烦需要修改依赖二方库。
SpringCloud属于Spring的产品,包含一系列组件,SpringCloud其实就是其整个生态组件框架的统称,基于SpringBoot配置化集成,搭建集成简单、稳定,目前市场占有率最高的当属SpringCloud框架。
Istio新晋微服务框架,目前可能只有少部分人有用到,对Kubernetes(k8s)支持比较好,可以了解下,说不定将来用的上呢。
当今的互联网可谓是瞬息万变,技术快速更新迭代,在这激烈的竞争中也催生了很多优秀框架,我们要掌握当前技术风向并加强自身的技术栈,这样才不会在茫茫猿海中掉队。