欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

分布式与集群 博客分类: 笔记 分布式集群负载均衡网络通信

程序员文章站 2024-03-16 15:52:40
...


 分布式的每一个节点可以做成集群,每个集群并不一定是分布式。

一.分布式

  不同子系统实现不同的的服务,做为一个整体对外提供服务。(另一种说法:平常讲一个技术支持分布式是指可以布署在不同机器,提供一个服务,应该是相当于集群这个概念)

 

二.集群

  不同计算机实现相同的服务,做为一个整体对外提供服务。(1.它是为解决高访问量问题,对某个客户端请求来讲,事实上只有一台计算机为它提供服务;2.高计算性的集群,跟分布式的定义是一致,也是一个分布式)

 

 1.分类:

a.高可用性集群:利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。

b.负载均衡集群:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

c.高计算性集群:即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。

 

  2.负载均衡集群相关技术

a.硬件设备方案:F5,Netscalar;

b.软件负载方案:LVS。该项目针对高可伸缩、高可用网络服务的需求,给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,它通过前端一个负载调度器(Load Balancer)无缝地将网络请求调度到真实服务器上,从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。

c.去中心化实现法:cassandra

d.缓存状态的水平伸缩:广播同步(JGroups),分布式内存缓存(memcached,terracotta),基于cookie方式和数据库存储方式

e.文件的水平伸缩:直链式存储(DAS),网络存储(NAS,SAN),分布式文件系统(GFS)

f.应用的水平伸缩

g.数据库的水平伸缩:分库,分表,读写分离,nosql(mongdb,

cassandra

 

等)。

 

3.linux虚拟机LVS的学习:

 http://yesbi.iteye.com/blog/1247217

 例子具体完善中。。。增加高可用(心跳测试),增加分布式缓存,增加文件的分布式。

 

4.memcached,terracotta学习中。

 

 

 

三.系统间的通信

    tcp/ip,http,socket区别:tcp/ip是传输层协议;http是运用层协议,http协议是基于tcp/ip协议;socket本身并不是一个协议,它是对tcp/ip协议的封装,是tcp/ip协议的抽象,通过socket才能使用tcp/ip协议,是tcp/ip协议的编程接口参考http://hi.baidu.com/qiaoyuetian/blog/item/1f32d5df42eeb6056327985c.html

   系统间通信包括数据的传输(tcp/ip,udp/ip协议)、数据的处理(例如读取和写入数据属于网络IO的操作包括BIO,NIO,AIO等方式)。

   网络通信的式有tcp/ip+bio,tcp/ip+nio,udp/ip+bio,udp/ip+nio这四种不同方式,对应于java都有对应的Socket类库来支持这不同方式,如Socket,ServerSocket,SocketChannel,ServerSocketChannel,DatagramSocket等相关来支持。

   rmi,webservice,jms最终都是通过网络通信方式来实现的,如rmi是基于tcp/ip+bio,webservice是基于http,jms是基于http,tcp/ip方式

 

    系统间通讯的技术有socket,mina,netty,rmi,jms,webservice等技术。

 

1.socket 通信

 
分布式与集群
            
    
    博客分类: 笔记 分布式集群负载均衡网络通信

 服务器Socket是监听机器的某个端口的服务,只跟这台机器在此端口监听到的信息有关,跟具体的客户端Socket是来自什么机器什么操作系统什么语言编写的无关(客户端Socket也是类似),再由机器根据网络传输的规范完成网络的通信。

 

2.rmi学习中。。。

  • 分布式与集群
            
    
    博客分类: 笔记 分布式集群负载均衡网络通信
  • 大小: 42.8 KB