Spring Cloud 与 Dubbo 对比整理(2)
2019独角兽企业重金招聘Python工程师标准>>>
一般初期公司需要面对非常复杂的业务场景,而且随着业务的发展,变化的可能性非常高。所以在微服务架构设计之初,我们就期望我们的微服务体系能:
- 不绑定到特定的框架、语言
- 服务最好是Restful风格
- 足够简单,容易落地,将来能扩展
- 和Docker相容性好
目前常见的微服务相关框架:
- Dubbo、DubboX
- Spring Cloud
- Motan
- Thrift、gRPC
这些常见的框架中,Dubbo几乎是唯一能被称作全栈微服务框架的“框架”,它包含了微服务所需的几乎所有内容,而DubboX作为它的增强,增加了REST支持。
它优点很多,例如:
- 全栈,服务治理的所有问题几乎都有现成答案
- 可靠,经过阿里实践检验的产品
- 实践多,社区有许多成功应用Dubbo的经验
不过遗憾的是:
- 已经停止维护
- 不利于裁剪使用
- “过于Java”,与其他语言相容性一般
Motan是微博平台微服务框架,承载了微博平台千亿次调用业务。
优点是:
- 性能好,源自于微博对高并发和实时性的要求
- 模块化,结构简单,易于使用
- 与其他语言相容性好
不过:
- 为“短平快”业务而生,即业务简单,追求高性能高并发。
Apache Thrift、gRPC等虽然优秀,并不能算作微服务框架,自身并不包括服务发现等必要特性。
如果说微服务少不了Java,那么一定少不了Spring,如果说少不了Spring,那么微服务“官配”Spring Cloud当然是值得斟酌的选择。
优点:
- “不做生产者,只做搬运工”
- 简单方便,几乎零配置
- 模块化,松散耦合,按需取用
- 社区背靠Spring大树
不足:
- 轻量并非全栈
- 没解决RPC的问题
- 实践案例少
根据我们的目标,我们最终选择了Spring Cloud作为我们的微服务框架,原因有4点:
- 虽然Dubbo基础设施更加完善,但结构复杂,我们很难吃得下,容易出坑
- 基于
Apache Thrift
和gRPC
自研,投入产出比很差 - 不想过早引入RPC以防滥用,Restful风格本身就是一种约束。
- 做选择时,
Motan
还没有发布
Spring Cloud
Spring Cloud是一个集成框架,将开源社区中的框架集成到Spring体系下,几个重要的家族项目:
spring-boot
,一改Java应用程序运行难、部署难,甚至无需Web容器,只依赖JRE即可spring-cloud-netflix
,集成Netflix优秀的组件Eureka、Hystrix、Ribbon、Zuul,提供服务发现、限流、客户端负载均衡和API网关等特性支持spring-cloud-config
,微服务配置管理spring-cloud-consul
,集成Consul支持
服务发现和配置管理
Spring Cloud Netflix提供了Eureka服务注册的集成支持,不过没选它是因为:
- 更适合纯Java平台的服务注册和发现
- 仍然需要其他分布式KV服务做后端,没解决我们的核心问题
Docker作为支撑平台的重要技术之一,Consul几乎也是我们的必选服务。因此我们觉得一事不烦二主,理所应当的Consul成为我们的服务注册中心。
Consul的优势:
- 使用Raft一致性算法,能保证分布式集群内各节点状态一致
- 提供服务注册、服务发现、服务状态检查
- 支持HTTP、DNS等协议
- 提供分布式一致性KV存储
也就是说,Consul可以一次性解决我们对服务注册发现、配置管理的需求,而且长期来看也更适合跟不同平台的系统,包括和Docker调度系统进行整合。
最初打算自己开发一个Consul和Spring Cloud整合的组件,不过幸运的是,我们做出这个决定的时候, spring-cloud-consul
刚刚发布了,我们可以拿来即用,这节约了很多的工作量。
因此借助Consul和 spring-cloud-consul
,我们实现了
- 服务注册,引用了
srping-cloud-consul
的项目可以自动注册服务,也可以通过HTTP接口手动注册,Docker容器也可以自动注册 - 服务健康状态检查,Consul可以自动维护健康的服务列表
- 异构系统可以直接通过Consul的HTTP接口拉取并监视服务列表,或者直接使用DNS解析服务
- 通过分布式一致性KV存储进行微服务的配置下发
- 为一些业务提供选主和分布式锁服务
转载于:https://my.oschina.net/undefine/blog/848589
Spring Cloud 与 Dubbo 对比整理(2)相关推荐
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...
- 《springcloud超级入门》Spring Cloud和Dubbo的区别及各自的优缺点《三》
了解为什么需要微服务.最初的服务化解决方案是给相同服务提供一个统一的域名,然后服务调用者向这个域发送 HTTP 请求,由 Nginx 负责请求的分发和跳转. 这种架构存在很多问题:Nginx 作为中间 ...
- Spring Cloud Alibaba | Dubbo 与 Spring Cloud 完美结合
https://www.cnblogs.com/babycomeon/p/11546737.html Spring Cloud Alibaba | Dubbo 与 Spring Cloud 完美结合 ...
- Spring Cloud与Dubbo优缺点(面试题)
Spring Cloud与Dubbo优缺点 Dubbo由于是二进制的传输,占用带宽会更少.Spring Cloud 是 HTTP 协议传输,带宽占用会比较多,同时使用 HTTP 协议一般会使用 JSO ...
- Spring Cloud 与 Dubbo 的完美融合之手「Spring Cloud Alibaba」
很早以前,在刚开始搞 Spring Cloud 基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud 还是 Dubbo ?>,可能不少读者也都看过.之后也 ...
- 微服务选择Spring Cloud还是Dubbo?
点击关注异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书. --异步小编 在阿里巴巴的生态中,微服务逐渐成为主要的服务形态,伴随着容器化的日臻成熟 ...
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo? - 推酷
微服务架构的基础框架选择:Spring Cloud还是Dubbo? - 推酷 微服务架构的基础框架选择:Spring Cloud还是Dubbo? - 推酷 posted on 2016-07-30 2 ...
- 微服务架构Spring Cloud和Dubbo 还有EDAS
现在 分布式项目 不用dubbo 都不好意思开口说架构. 出去面试 分布式服务必谈dubbo: 近几年来了 Spring Cloud; 然后最近 发现 阿里云推出了 EDAS,为你的dubbo服务安个 ...
- 【SpringCloud从0到6】 第二节:Spring Cloud 和 Dubbo
1 . 框架背景 当前主流上较常用的java微服务框架 , 就是cloud和dubbo . dubbo是阿里公司开源的RPC框架 , 背景很优秀 , 技术也是一等一的强 , 在spring clou ...
- spring cloud 和 dubbo 各自的优缺点
两者都是现在主流的微服务框架,但却存在不少差异: 初始定位不同: SpringCloud定位为微服务架构下的一站式解决方案:Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用和治理 生态 ...
最新文章
- leetcode C++ 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,
- 决策树算法介绍及应用
- Java JNI简单实现
- linux安装xgboost快速高效方法
- [置顶] “非主流”Web容器之TomJetty之让服务动起来
- CGAL中Point的引用
- 红帽初级认证RHCSA考试环境——供实验练习
- 【0304】密码分类
- 电影票APP原型设计分享– Movie Booking
- windows下CMD常用命令
- 原生开发跟混合开发?两者有什么区别?
- 用excel绘制统计图表(清风建模学习笔记)
- ORACLE解析SOAPXML报文,xmltype extractvalue extract LPX-00210 中文乱码
- MOSS的备份与还原
- Qt实用技巧:自定义窗口标题栏
- 爬虫基本概念(新手必看)
- PTA7-31藏尾诗
- VBA宏实现将中文转为拼音(转帖+亲自实践)
- 借助 GPU 和容器支持,在 Amazon Robomaker 中运行任何高保真模拟
- openjudge 1.5.18 鸡尾酒疗法
热门文章
- paip.C#.NET图形按钮制做
- paip.JS的调试--DOM元素的属性与事件绑定
- 知乎:tomcat 与 nginx,apache的区别是什么?
- 逆袭?或将掌舵万亿SaaS巨头的Taylor竟是“天选之人”
- Linux宝库名人轶事栏目 | 笨叔与Linux的那些事(下)
- 【数字信号调制】基于matlab二进制差分相移键控调制(2DPSK)【含Matlab源码 163期】
- 【三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 1526期】
- 【优化求解】基于matlab遗传算法求解道路流量优化问题【含Matlab源码 1480期】
- 【语音识别】基于matlab GUI MFCC+VQ说话人识别系统【含Matlab源码 1153期】
- 【数字信号去噪】基于matlab奇异值分解(SVD)数字信号降噪【含Matlab源码 1020期】