集群与负载均衡技术总结

本文为个人学习笔记,可能有很多描述不对,仅作参考。

分发均衡策略

DNS负载均衡

实现方式:

  1. 一个域名设定多个dns服务或者服务器进行解析,同一个域名的每个解析都指向不同的IP地址
  2. 自建DNS解析服务

使用场景:

不同线路可以通过动态域名解析到最快的IP上。
应用层与内容的均衡还要另外考虑实现方案。

LVS

Linux虚拟服务器,

  • 需要申请多个IP
  • 接近硬件设备的网络吞吐和连接负载能力
  • 抗负载能力强
  • 工作在网络4层之上,仅作分发之用,没有流量的产生
  • 配置较复杂
  • 工作稳定,自身有完整双机热备方案
  • -

Nginx

工作在网络七层,支持http、websocket、tcp socket、email。

  • 主要针对http,
  • 安装配置比较简单
  • 一般能支撑超过1万次的并发
  • 可以通过端口检测到服务器内部的故障,并把返回错误的请求重新提交到另一个节点,缺点不支持url检测
  • 对请求的异步处理中以帮助节点服务器减轻负载
  • 不能保持session

keepalived

keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障

  • keepalived通过虚拟路由实现双机热备,相比其他方案具有一定的优越性
  • 因为是固定主从热备,该方案比较适合两个互备服务器性能有差异的情况
  • Keepalived同样可以实现双主互备,通过设置互为主备,然后通过DNS负载均衡到不同vip就可以实现
    局域网使用,租用主机可能不方便使用。

HAProxy

工作在网络七层。

  • 能够补充Nginx的一些缺点,比如session保持、cookie引导
  • 支持url检测后端
  • 负载均衡策略经Nginx多
  • 效率可能比Nginx高
  • 可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡
  • 有介绍它也支持tcp协议?

Squid

缓存Internet数据.

  • 支持http,ftp,gopher,ssl,wais等协议

CDN

内容分发

硬件NetScaler、F5、Radware和Array等商用负载均衡器。

可以建立在4~7层协议之上,花销较大。

Seesaw

Google开源的一个基于Linux的负载均衡系统。

应用层负载均衡

其它负载均衡架构技术

ActiveMQ

Apache出品的开源消息总线,完全支持JMS1.1和j2EE 1.4规范的JMSProvider实现。
- 支持多种客户端语言
- 对Spring支持
- 可以自动部署到任何兼容JAVAEE1.4商业服务器上
- 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
- 支持通过JDBC和journal提供高速的消息持久化
- 从设计上保证了高性能的集群,客户端-服务端,点对点
- 支持Ajax
- 支持与Axis的整合
- 可以很容易调用内嵌JMS provider,进行测试
有多种通讯模式:
- 发布、订阅模式
- P2P
- request-response,不是默认提供的一种模式

norbert

基于zookeeper构建的集群管理器和支持集群的c/s网络API。
封装了zookeeper和netty,使用了协议栈缓存,基于Scala实现。

你可能感兴趣的:(架构)