码迷,mamicode.com
首页 > 其他好文 > 详细

分布式系统基础

时间:2015-12-25 19:29:00      阅读:387      评论:0      收藏:0      [点我收藏+]

标签:分布式

一、分布式系统简介

1、定义

系统的各组件分布于网络上多个计算机,各组件彼此直接仅仅通过消息传递来通信并卸掉行动

2、分布式系统存在的意义

 1)单机向上扩展的性价比越来越低

 2)单机扩展存在性能上升临界点

 3)出于稳定性及可用性考虑,单机会存在多方面的问题

3、多线程编程模型

互不通信的多线模式

基于共享容器协同的多线程模式

通过事件协同的多线程模型

4、网络IO

多进程:每个进程响应一个请求

多线程:每个进程生成多个线程,每线程响应一个请求

             或者每线程直接响应多个请求

5、基于socket实现网络通信开发,其实现方式

BIO:Blocking IO 

一个进程或一个线程处理一个请求

阻塞IO模式

每一个连接都需要占用一个socket

NIO:Nonblocking IO

基于事件驱动(epoll)思想,采用Reactor模式

socket分配1个线程,1个线程可以处理多个socket相关的工作

AIO:

异步模式

基于事件驱动思想,采用Proactor模式

6、如何把应用从单机扩展至多机

输入设备的变化?


输出设备的变化?


控制器的变化?

从计算机内部的cpu编程了节点服务器

实现的模式:

       透明代理:

             LVS的NAT

              haproxy,nginx

        旁路模式:LVS的DR模型

        名称服务:DNS

        规则服务:

        Master/slave机制:

运算器的变化?

存储器的变化?

7、分布式系统实现的难点

缺乏全局时钟?

面对故障时的独立性?

如何处理单点故障?

事务处理

      ACID:

      2PC,BASE,CAP,Paxos

二、大型网站站点的架构演进方式

LAMP,LNMT

应用从资源占用的角度分两类:

CPU Bound(密集型)

IO Bound 

减少同一资源的争用:

单机-->多机



引用mysql主从面临的问题:

1)数据复制的问题

2)应用选择数据源的问题







A:1-->2-->3

B: 1-->2-->3


输入设备的变化

控制器的变化:

透明代理

旁路模式

名称服务

规则服务器

运算器的变化:


存储器的变化:

代理模型

名称服务

规则服务器

Master



分布式系统基础

标签:分布式

原文地址:http://xiexiaojun.blog.51cto.com/2305291/1728371

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!