微服务架构介绍,架构,实现,对比,应用 (2)

​ 对于分布式系统,部署,测试和监控都需要大量的中间件来支撑,而且中间件本身也要维护,原先单体应用很简单的事务问题 ,转到分布式环境就变得很复杂,分布式事务是采用简单的重试+补偿机制,还是采用二阶段提交协议等强一致性方法来解决,就要取决对业务场景的熟悉加上反复的权衡了,相同问题还包括对 CAP 模型的权衡,总之微服务对团队整体的技术栈水平整体要求更高

应用架构变迁图

微服务架构介绍,架构,实现,对比,应用

微服务架构与RPC框架对比 微服务架构

特征
自动化部署,端点智能化,语言和数据的去中心化控制.

架构
一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。可通过全自动部署机制独立部署,共用一个最小型的集中式的管理。服务可用不同的语言开发,使用不同的数据存储技术。

去中心化基础设施

微服务架构介绍,架构,实现,对比,应用

去中心化数据库

微服务架构介绍,架构,实现,对比,应用

微服务设计模式

聚合式(推荐)

微服务架构介绍,架构,实现,对比,应用

代理(推荐)

微服务架构介绍,架构,实现,对比,应用

链式

微服务架构介绍,架构,实现,对比,应用

分支

微服务架构介绍,架构,实现,对比,应用

异步消息

微服务架构介绍,架构,实现,对比,应用

微服务实现

通信方式
REST和RPC
RPC框架

Dubbo/ Dubbox

阿里巴巴公司开源的一个Java高性能优秀的服务框架,可以和Spring框架无缝集成,相关资料很丰富。
遗憾的是已经停止维护了,相关的依赖类比如Spring,Netty还是很老的版本。倒是当当网之类的再继续维维护,即Dubbox,并且实现了REST的支持。
Dubbo主要实现了服务治理,其他为保证集群安全、可维护、可测试等特性方面都没有很好的实现,但是几乎大部分关键组件都能找到第三方开源来实现。
      所以,如果选择Dubbo请务必在各个环节做好整套解决方案的准备,不然很可能随着服务数量的增长,整个团队都将疲于应付各种架构上不足引起的困难,不能让各环节人员真正的专注于业务逻辑。

Motan
新浪微博的服务治理框架,2016年5月开源,Motan是一个小而精的 RPC 框架,它的特点是简单、易用,是一个轻量级 RPC框架。
      与Dubbo相比,Motan在功能方面并没有那么全面,也没有实现特别多的扩展。用的人比较少,功能和稳定性有待观望。对跨语言调用支持较差,主要支持java。

Sprint Cloud(推荐)
Spring Cloud 完全基于Spring Boot,是一个非常新的项目,2016年才 1.0 release。版本提升非常迅速,发展势头良好。
Spring Cloud依然发扬了Spring Source整合一切的作风,以标准化的姿态将一些微服务架构的成熟产品与框架揉为一体,并继承了Spring Boot简单配置、快速开发、轻松部署的特点,让原本复杂的架构工作变得相对容易上手一些。服务调用方式是基于REST API的。
       缺点是项目很年轻,很少见到国内业界有人在生产上成套使用,一般都是只有其中一两个组件。相关的技术文档大部分是英文的,案例也相对较少,使用的话需要摸索的时间会长一些。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfsxs.html