微服务架构介绍和RPC框架对比
2017-04-18 16:06
656 查看
微服务架构介绍和RPC框架对比
1.微服务架构
1.1 特征
自动化部署,端点智能化,语言和数据的去中心化控制。
1.2架构
一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。可通过全自动部署机制独立部署,共用一个最小型的集中式的管理。服务可用不同的语言开发,使用不同的数据存储技术。
去中心化基础设施
去中心化数据库
1.3微服务设计模式
聚合式(推荐)
代理(推荐)
链式
分支
异步消息
1.4微服务实现
1.4.1 通信方式
REST和RPC
1.4.2 RPC框架
Dubbo/ Dubbox
阿里巴巴公司开源的一个Java高性能优秀的服务框架,可以和Spring框架无缝集成,相关资料很丰富。
遗憾的是已经停止维护了,相关的依赖类比如Spring,Netty还是很老的版本。倒是当当网之类的再继续维维护,即Dubbox,并且实现了REST的支持。
Dubbo主要实现了服务治理,其他为保证集群安全、可维护、可测试等特性方面都没有很好的实现,但是几乎大部分关键组件都能找到第三方开源来实现。
所以,如果选择Dubbo请务必在各个环节做好整套解决方案的准备,不然很可能随着服务数量的增长,整个团队都将疲于应付各种架构上不足引起的困难,不能让各环节人员真正的专注于业务逻辑。
Motan
新浪微博的服务治理框架,2016年5月开源,Motan是一个小而精的 RPC 框架,它的特点是简单、易用,是一个轻量级 RPC框架。
与Dubbo相比,Motan在功能方面并没有那么全面,也没有实现特别多的扩展。用的人比较少,功能和稳定性有待观望。对跨语言调用支持较差,主要支持java。
Spring Cloud(推荐)
Spring Cloud 完全基于Spring Boot,是一个非常新的项目,2016年才 1.0 release。版本提升非常迅速,发展势头良好。
Spring Cloud依然发扬了Spring Source整合一切的作风,以标准化的姿态将一些微服务架构的成熟产品与框架揉为一体,并继承了Spring Boot简单配置、快速开发、轻松部署的特点,让原本复杂的架构工作变得相对容易上手一些。服务调用方式是基于REST API的。
缺点是项目很年轻,很少见到国内业界有人在生产上成套使用,一般都是只有其中一两个组件。相关的技术文档大部分是英文的,案例也相对较少,使用的话需要摸索的时间会长一些。
下图是Spring Cloud和Dubbo的对比:
gRPC
Google发布的开源RPC框架,高性能、开源、将移动和HTTP/2放在首位的通用的RPC框架,基于HTTP/2, netty4.1, proto3, 拥有非常丰富而实用的特性,堪称RPC 框架的典范。
但它本身它不是分布式的,所以要实现上面的框架的功能需要进一步的开发。
--------------------------------------------------------------------
PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。
--------------------------------------------------------------------
1.微服务架构
1.1 特征
自动化部署,端点智能化,语言和数据的去中心化控制。
1.2架构
一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。可通过全自动部署机制独立部署,共用一个最小型的集中式的管理。服务可用不同的语言开发,使用不同的数据存储技术。
去中心化基础设施
去中心化数据库
1.3微服务设计模式
聚合式(推荐)
代理(推荐)
链式
分支
异步消息
1.4微服务实现
1.4.1 通信方式
REST和RPC
1.4.2 RPC框架
Dubbo/ Dubbox
阿里巴巴公司开源的一个Java高性能优秀的服务框架,可以和Spring框架无缝集成,相关资料很丰富。
遗憾的是已经停止维护了,相关的依赖类比如Spring,Netty还是很老的版本。倒是当当网之类的再继续维维护,即Dubbox,并且实现了REST的支持。
Dubbo主要实现了服务治理,其他为保证集群安全、可维护、可测试等特性方面都没有很好的实现,但是几乎大部分关键组件都能找到第三方开源来实现。
所以,如果选择Dubbo请务必在各个环节做好整套解决方案的准备,不然很可能随着服务数量的增长,整个团队都将疲于应付各种架构上不足引起的困难,不能让各环节人员真正的专注于业务逻辑。
Motan
新浪微博的服务治理框架,2016年5月开源,Motan是一个小而精的 RPC 框架,它的特点是简单、易用,是一个轻量级 RPC框架。
与Dubbo相比,Motan在功能方面并没有那么全面,也没有实现特别多的扩展。用的人比较少,功能和稳定性有待观望。对跨语言调用支持较差,主要支持java。
Spring Cloud(推荐)
Spring Cloud 完全基于Spring Boot,是一个非常新的项目,2016年才 1.0 release。版本提升非常迅速,发展势头良好。
Spring Cloud依然发扬了Spring Source整合一切的作风,以标准化的姿态将一些微服务架构的成熟产品与框架揉为一体,并继承了Spring Boot简单配置、快速开发、轻松部署的特点,让原本复杂的架构工作变得相对容易上手一些。服务调用方式是基于REST API的。
缺点是项目很年轻,很少见到国内业界有人在生产上成套使用,一般都是只有其中一两个组件。相关的技术文档大部分是英文的,案例也相对较少,使用的话需要摸索的时间会长一些。
下图是Spring Cloud和Dubbo的对比:
gRPC
Google发布的开源RPC框架,高性能、开源、将移动和HTTP/2放在首位的通用的RPC框架,基于HTTP/2, netty4.1, proto3, 拥有非常丰富而实用的特性,堪称RPC 框架的典范。
但它本身它不是分布式的,所以要实现上面的框架的功能需要进一步的开发。
--------------------------------------------------------------------
PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。
--------------------------------------------------------------------
相关文章推荐
- go微服务框架go-micro深度学习(一) 整体架构介绍
- RPC框架的原理及实践 ,为什么说要搞定微服务架构,先搞定RPC框架呢
- Web服务架构之路--RPC服务框架svr_platform(Java平台)
- 【架构】Twitter高性能RPC框架Finagle介绍
- 微服务架构框架选择:Spring Cloud 和 Dubbo对比
- 为什么说要搞定微服务架构,先搞定RPC框架?
- 为什么说要搞定微服务架构,先搞定RPC框架?
- 为什么说要搞定微服务架构,先搞定RPC框架?
- 【58沈剑架构系列】为什么说要搞定微服务架构,先搞定RPC框架?
- Apache Pig入门1 –介绍/基本架构/与Hive对比
- JavaFX架构与框架全面介绍
- 关于Flex+json+Java的整合开发【连载一】- 整体架构框架介绍
- HL AsySocket 服务开发框架 - 总体思路与架构
- QQ机器人开放式服务框架 Version 0.1 Draft - 测试用QQ机器人介绍
- 深入浅出node.js游戏服务器开发——基础架构与框架介绍
- 易用的C++ RPC服务框架 - pioneer - 2 - 编译和执行演示程序
- 深入浅出node.js游戏服务器开发1——基础架构与框架介绍
- python模块介绍- SocketServer 网络服务框架
- 远程调用服务(RPC)和消息(Message Queue)对比及其适用/不适用场合
- Apache Pig入门 –介绍/基本架构/与Hive对比(转)