啥?到现在还不知道选哪个微服务架构,这篇文章告诉你
Dubbo
官网地址:https://cn.dubbo.apache.org/zh-cn/
Apache Dubbo 是一款易用、高性能的 WEB 和 RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。
“Dubbo3 已在阿里巴巴内部微服务集群全面落地,用于升级运行多年的 HSF2 框架。”
核心特性:
-
灵活部署模式
一键拉起服务治理体系,屏蔽底层跨平台的微服务基础设施复杂度,支持虚拟机、Docker、Kubernetes、服务网格等多种部署模式。 -
服务发现
Dubbo 提供了高性能、可伸缩的服务发现机制,面向百万集群实例规模设计,默认提供 Nacos、Zookeeper 等注册中心适配并支持自定义扩展。
Dubbo Rust依赖第三方注册中心组件来协调服务发现过程,支持的注册中心: Nacos、Zookeeper。 -
流量管控
Dubbo 提供的基于路由规则的流量管控策略,可以帮助实现全链路灰度、金丝雀发布、按比例流量转发、动态调整调试时间、设置重试次数等服务治理能力。 -
通信协议
支持 HTTP/2、gRPC、TCP、REST 等任意通信协议,切换协议只需要修改一行配置,支持单个端口上的多协议发布。 -
多语言 SDK
提供 Java、Golang、Rust、Node.js、Python 等多语言 SDK 实现,支持基于 IDL 的跨语言服务定义和基于 Protobuf、Json 的数据编码 -
可扩展性
一切皆可扩展,通过扩展 (Filter、Router、Service Discovery、Configuration 等) 自定义调用、管控行为,适配开源微服务生态。 -
可观测性
多维度的可观测指标(Metrics、Tracing、Accesslog)帮助了解服务运行状态,Admin 控制台、Grafana 等帮助实现数据指标可视化展示。 -
认证鉴权
支持基于 TLS 的传输链路认证与加密通信以及基于请求身份的权限校验,帮助构建零信任分布式微服务体系。 -
服务网格(Service Mesh)
灵活的数据面 (Proxy & Proxyless) 部署形态支持,无缝接入 Istio 控制面治理体系。 -
丰富生态
一站式微服务生态适配:注册中心、网关、限流降级、负载均衡、一致性事务、异步消息、Tracing 等。
Dubbo优势优势之一,就是它是国内人员开发的,对国内开发者比较友好,查找相关资料,问题解决方便。
SpringCloud
官网地址:https://spring.io/projects/spring-cloud/
Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管>理、服务发现、熔断器、智能路由、微代理、控制总线、短期微服务和合约测试)。分布式系统的协调导致了样板模式,使用 Spring Cloud 开发人员可以快速建立实现这些模式的服务和应用程序。它们可以在任何分布式环境中很好地工作,包括开发人员自己的笔记本电脑、裸机数据中心和托管平台(如 Cloud Foundry)。
核心特性:
-
Distributed/versioned configuration(分布式/版本化配置)
-
Service registration and discovery(服务注册和发现)
-
Routing(路由)
-
Service-to-service calls(服务到服务调用)
-
Load balancing(负载均衡)
-
Circuit Breakers(断路器)
-
Distributed messaging(分布式消息传递)
-
Short lived microservices (tasks)(生存期较短的微服务(任务))
-
Consumer-driven and producer-driven contract testing(消费者驱动和生产者驱动的合同测试)
SpringCloud最大的优势是延续了SpringBoot风格,开箱即用,配置简单,功能齐全,解决了大部分开发痛点。
SpringCloudAlibaba
官网地址:https://spring.io/projects/spring-cloud-alibaba/
SpringCloudAlibaba(https://sca.aliyun.com/en-us/)
为分布式应用开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用 Spring Cloud 开发应用程序。
使用Spring Cloud Alibaba,您只需要添加一些注解和少量配置,即可将SpringCloud应用连接到阿里巴巴的分布式解决方案中,并使用阿里巴巴中间件构建分布式应用系统。
核心特性:
-
流量控制与业务降级
基于阿里Sentinel的流量控制、熔断和系统自适应保护 -
服务注册和发现
实例可以注册到阿里巴巴Nacos,客户端可以使用Spring托管的bean发现实例。支持 Ribbon,通过 Spring Cloud Netflix 的客户端负载均衡器 -
分布式配置
使用阿里巴巴Nacos作为数据存储 -
事件驱动
构建高扩展性的事件驱动微服务,连接Spring Cloud Stream RocketMQ Binder -
消息总线
将分布式系统的节点与Spring Cloud Bus RocketMQ进行连接 -
分布式事务
支持分布式事务解决方案,具有高性能和易用性 -
Dubbo RPC
通过 Apache Dubbo RPC 扩展 Spring Cloud 服务到服务调用的通信协议
SpringCloudAlibaba是融合了SpringCloud和Dubbo的优势所开发出的产品,加上阿里的创新,性能不容小觑。
大家好,我是时生,站在巨人的肩膀做出的一点点改变。欢迎批评,欢迎指正,欢迎共享,有事私信。
如果这篇文章对你有帮助,麻烦点个赞呗!