分布式与集群 博客分类: 笔记 分布式集群负载均衡网络通信
分布式的每一个节点可以做成集群,每个集群并不一定是分布式。
一.分布式
不同子系统实现不同的的服务,做为一个整体对外提供服务。(另一种说法:平常讲一个技术支持分布式是指可以布署在不同机器,提供一个服务,应该是相当于集群这个概念)
二.集群
不同计算机实现相同的服务,做为一个整体对外提供服务。(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学习中。。。
推荐阅读
-
分布式与集群 博客分类: 笔记 分布式集群负载均衡网络通信
-
Java分布式应用学习笔记04JDK的并发包的集合总结---后篇 博客分类: 分布式集群 分布式集群并发包Java集合
-
Java分布式应用学习笔记07线程池应用(又名:线程池与大排档) 博客分类: 分布式集群 Java分布式集群线程池并发
-
Java分布式应用学习笔记04JDK的并发包的集合总结---前篇 博客分类: 分布式集群 分布式集群并发包集合Java
-
Java分布式应用学习笔记02再谈JVM 博客分类: 分布式集群 JavaJVM虚拟机分布式集群
-
Java分布式应用学习笔记05多线程下的并发同步器----后篇 博客分类: 分布式集群 分布式集群线程调度多线程同步器
-
Java分布式应用学习笔记02再谈JVM---续 博客分类: 分布式集群 JavaJVM虚拟机分布式集群
-
Java分布式应用学习笔记05多线程下的并发同步器----前篇 博客分类: 分布式集群 分布式集群并发包线程调度器多线程
-
Java分布式应用学习笔记06浅谈并发加锁机制分析 博客分类: 分布式集群 java分布式集群线程锁并发