浅谈分布式系统

集中式

与分布式对应的,就是集中式。
集中式就是把项目都存放在一个服务器中,虽然部署比较简单,可是若是出现故障,整个服务都将不可用。并且也不利于扩容,这才有了后面分布式的发展。java

分布式

分布式系统是一个硬件或软件组件分布在不一样的网络计算机上,彼此之间仅仅经过消息传递进行通讯和协调的系统。因此分布式系统上的计算机没有空间上的限制,能够存放不一样的机柜、不一样的机房、甚至不一样的城市中。
分布式具备如下的特色:数据库

  • 分布性:分布式系统的计算机在任意的空间上随意分布,并且能够随时变更分布的状况
  • 并发性:分布式系统的多个节点,可能同一时间访问同一个共享资源,好比数据库、文件
  • 无序性:咱们在java中启动了两个线程,执行的顺序是不能保证的,一样的,分布式进程间的通讯,顺序也是难以保证的。

因为分布式直接的通讯是经过网络的,因此网络的延迟、故障、抖动,都会对分布式系统有影响。固然,某个节点的故障也是有影响的。服务器

  • 通讯异常:因为电缆、路由器等硬件,致使的网络不可用,或者网络传输过程当中不可避免的延迟,致使消息发送的丢失、延迟。
  • 网络分区(脑裂):好比分布式系统由上海北京两个地方的节点组成,因为网络缘由,两地的延迟不断加大,互相之间不能通讯,而上海地区本身的N个节点能够互相通讯,北京地区本身的M个节点能够互相通讯,上海和北京本身内部有了本身的小集群,完成了以前分布式系统完成的功能。
  • 三态:在单机系统中的调用,要么成功,要么失败。在分布式系统中,则多了一个状态,也就是超时。当A系统发消息给B系统时,可能消息就丢失了,也有可能,B系统收到消息后,回应消息给A系统,这个时候消息丢失了。
相关文章
相关标签/搜索