微服务架构介绍和RPC框架对比java
1.微服务架构数据库
1.1 特征设计模式
自动化部署,端点智能化,语言和数据的去中心化控制。安全
1.2架构架构
一种将一个单一应用程序开发为一组小型服务的方法,每一个服务运行在本身的进程中,服务间通讯采用轻量级通讯机制(一般用HTTP资源API)。可经过全自动部署机制独立部署,共用一个最小型的集中式的管理。服务可用不一样的语言开发,使用不一样的数据存储技术。框架
1.3微服务设计模式异步
1.4微服务实现分布式
1.4.1 通讯方式微服务
REST和RPC性能
1.4.2 RPC框架
阿里巴巴公司开源的一个Java高性能优秀的服务框架,能够和Spring框架无缝集成,相关资料很丰富。
遗憾的是已经中止维护了,相关的依赖类好比Spring,Netty仍是很老的版本。却是当当网之类的再继续维维护,即Dubbox,而且实现了REST的支持。
Dubbo主要实现了服务治理,其余为保证集群安全、可维护、可测试等特性方面都没有很好的实现,可是几乎大部分关键组件都能找到第三方开源来实现。
因此,若是选择Dubbo请务必在各个环节作好整套解决方案的准备,否则极可能随着服务数量的增加,整个团队都将疲于应付各类架构上不足引发的困难,不能让各环节人员真正的专一于业务逻辑。
新浪微博的服务治理框架,2016年5月开源,Motan是一个小而精的 RPC 框架,它的特色是简单、易用,是一个轻量级 RPC框架。
与Dubbo相比,Motan在功能方面并无那么全面,也没有实现特别多的扩展。用的人比较少,功能和稳定性有待观望。对跨语言调用支持较差,主要支持java。
Spring Cloud 彻底基于Spring Boot,是一个很是新的项目,2016年才 1.0 release。版本提高很是迅速,发展势头良好。
Spring Cloud依然发扬了Spring Source整合一切的做风,以标准化的姿态将一些微服务架构的成熟产品与框架揉为一体,并继承了Spring Boot简单配置、快速开发、轻松部署的特色,让本来复杂的架构工做变得相对容易上手一些。服务调用方式是基于REST API的。
缺点是项目很年轻,不多见到国内业界有人在生产上成套使用,通常都是只有其中一两个组件。相关的技术文档大部分是英文的,案例也相对较少,使用的话须要摸索的时间会长一些。
下图是Spring Cloud和Dubbo的对比:
Google发布的开源RPC框架,高性能、开源、将移动和HTTP/2放在首位的通用的RPC框架,基于HTTP/2, netty4.1, proto3, 拥有很是丰富而实用的特性,堪称RPC 框架的典范。
但它自己它不是分布式的,因此要实现上面的框架的功能须要进一步的开发。
--------------------------------------------------------------------
PS: 欢迎关注公众号"Devin说",会不按期更新Java相关技术知识。
--------------------------------------------------------------------