分布式笔记_概念
一.分布式系统:
-
具有多个节点
-
节点间要进行消息传递
-
节点需要完成特定的需求
多个节点:
- 可以提高容错性
- 具有可扩展性(性能)
- 固有分布性(业务上或人员上)
消息传递:分布式系统多个节点之间的协作不是通过共享存储实现的,而是通过消息传递来实现
- 节点具有私有存储
- 易于开发
- 具有可扩展性(功能)
- 对比:并行计算(多用共享存储实现,但并不是不用消息传递)
消息传递的方法:
- REST : 是一种接口的方法
- RPC : 将函数的调用序列化为可以在网络上传输的数据,收到数据的远端进行反序列化来实现函数调用
- 中间件 : REST, RPC要求消息传递是双方都在线,但若对方不在线时,可以将消息发给中间件,中间件可以存储消息,等对方上线时可以从中间件中取得消息,实现异步消息沟通,而且中间件可以一对多的发布,通常称为"MessageQueue"
一般来说,消息传递的方式:
1> 对外:REST (保持API接口的规范性和不易改变)
2> 模块内部(耦合比较紧):RPC
3> 模块之间(耦合比较松):中间件,REST
二.分布式架构 VS 微服务架构
- 分布式:指导节点之间如何通信
- 微服务:鼓励按业务来划分模块(区别于传统的按技术划分模块)
- 微服务架构通过分布式架构来实现,两者考虑的维度不同
三.多层架构 VS 微服务架构
- 微服务架构具有更多的"服务",服务之间耦合度很松
- 微服务通常需要配合自动化测试,自动化部署,服务发现等
- 目前,微服务架构是趋势