微服务架构介绍和RPC框架对比

微服务架构介绍和RPC框架对比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相关技术知识。
--------------------------------------------------------------------

相关文章
相关标签/搜索