关于微服务架构思考
微服务概念来源:https://martinfowler.com/articles/microservices.html
微服务【架构】 和 RPC【框架】,二者本身不在一个层面
微服务【架构】,关注把 如何 大型单体应用 拆分成 多个能独立部署并提供服务的应用,这过程中解决【业务能力】拆分,而不是简单的分层或者按业务线划分;
微服务架构,看重【分工】,是一个【软件架构】设计思想(或者说 设计方法),是一个【去中心化】的思想,需要解决的问题:
如何把 大型单体应用 按【业务能力】进行划分,这个业务能力 不是 简单的 按产品 划分,【业务能力】如果划分不清晰,会导致 责任分散,调用混乱;
微服务 就是 分布式服务,这个概念只是因为 Martin Flower 的一篇文章火了;
一个单体应用被拆分成 A、B、C 三个微服务,A 和 B 之间可以用 RPC 通信,B 和 C 之间可以用 http 通信,对于远程访问通信更多在于服务拆分后,服务提供方的选型。
RPC【框架】,关注 方法远程调用实现,解决 远程通信 带来的问题,更多针对 技术问题;
RPC 框架 是 解决远程通信 ,可以看错 方法调用 的 代理模式,调用者 不关心调用的 是本地方法 还是 远程方法,RPC 就是要解决 远程调用 相关问题 包括:
1、传输数据协议
2、集群负载均衡
3、集群容错
架构 是 解决系统 可用性,可扩展,可维护性,这是软件本身基本要求,与 并发高低 无关;
框架 是 针对某个规范,所做的实现,比如 SUN 指定 JVM 规范,每个厂商根据规范实现,数据库也有规范,不同厂商按照规范进行实现;
Microservices Is an Architecture ;
RPC is a framework;
版权声明: 本文为 InfoQ 作者【Arthur】的原创文章。
原文链接:【http://xie.infoq.cn/article/b1cbd680bfc775889e1a64d4d】。未经作者许可,禁止转载。
评论 (2 条评论)