什么是分布式?
是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。逻辑架构设计完后就该做物理架构设计,系统应用部署在超过一台服务器或虚拟机上,且各分开部署的部分彼此通过各种通讯协议交互信息,就可算作分布式部署,生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的,比如集群部署,它是把相同应用复制到不同服务器上,但是逻辑功能上还是单体应用。
常常出现的状况:通信异常(就是网不好啦)网络分区(俗称“脑裂”,就是因为通信异常,集群中应该只有一个领导者,但是由于通讯异常,导致某一个区域自行推举出另一个领导,互相冲突) 三态(说白了还是网不好,一般一次通讯要么成功要么失败,因为通信异常导致了第三种状态,就是超时)节点故障(就是分布式集群中某一个节点宕机)
SOA又是啥?
类似于JAVA的低耦合高内聚原则,就是一个接口服务器,比如你有WEB端,IOS端,安卓端三个端口,你只需要写一个通用的格式(JSON或者XML数据)就可以完成三个平台的使用,可以单独的部署一个业务,当一个业务达到高峰期的时候,类似于账户注册,账户抢购之类的,并且其他服务不是很忙的时候,你可以单独集群部署这个一个服务器,减少压力。
那么rpc是啥?
这个解释起来有点复杂。我理解为一种网络通信,封装了socket,IO,多线程等头疼的问题,帮助你实现网络的远程调用。A要吃B的薯片,B把薯片交给快递员快递给A,这个快递员就是socket。一袋可能还好,你可以通过socket调用,但是你要是货源呢,你发一集装箱,怎么办,你可以找物流公司帮你完成,RPC就相当于这个物流公司。