分布式高性能的若干问题

来源:互联网 发布:网络医疗是什么 编辑:程序博客网 时间:2024/06/04 19:25
1、Linux的什么内核包括LVS,说说LVS的三种负载均衡模式的原理与效率对比;
  • 2.6.32之后的内核版本包括LVS
  • LVS-DR,直接相连模式,调度器与实际服务器各有一块网卡,并且都连在相同的网段上,客户端访问调度器,之后直接调度器进行ARP解析,解析到相应的服务器上,从而从服务器返回,在整个过程中公用一个对外访问地址;
  • LVS-NAT,NAT模式,调度器通过端口转发的方式,将数据内容通过端口发送到对应的实际服务器上,在IP数据报的地址上包含到相应的端口,然而IP或者其他信息都仅保存在调度器上,然后通过调度器返回;
  • LVS-TUN,TUN隧道模式,调度器包含一个拥有一个虚拟的IP地址,在客户端进行访问时,在数据包上重新封装一层,之后按照一定策略路由到各个服务节点上,服务节点通过统一访问的方式返回服务器,返回时依然使用虚拟IP。
2、Keepalived的实现原理,Keepalived是HA(高可用方案)还是负载均衡;
  • keepalive提供虚拟路由功能可以实现双机浮动vip,在发生故障时进行双机vip的动态绑定,从而实现双机热备功能。keepalive监测机制是通过healthcheck功能完成,在ip层keepalived定时想服务器发送icmp包,如果没有回应则判定服务器失效,在tcp层主要是通过端口判定是否正常工作,在应用层根据服务器程序是否运行来判定服务器是否正常。
  • 从服务的角度来看,keepalived没有进行消息的分发,所以i还是属于高可用的实现方案;
3、HAProxy的原理、特性,并解释HAProxy流行的原因;
  • Haproxy实现了一种事件驱动,单一进程模型。在第四层、第七层上都可以实现相应的代理服务,同时在haproxy上可以设置。客户端发送到haproxy之后进行相应的处理,然后转发到Backend后端调用实际的服务器,最后返回客户端。
  • Haproxy开源,单进程事件处理使它可以处理大并发请求,同时脱离多线程以及锁机制避免不必要的性能开销;
  • Haproxy免费、开源、稳定,同时在性能尚有加大的提升,同时,实现了不同的存储方式以及路由策略。
4、LVS、Keepalived、HAProxy的异同和各自擅长的领域;
  • LVS与HAProxy比较类似,实现的是负载均衡机制,在负载均衡的机制下实现了一定的策略,同时,都实现了一定的转发机制,同时构建了一定的转发规则以及传输方式;同时,LVS由于存在于内核中,所以在进行底层的解析时与转发时存在一定的优势,而Haproxy在应用性方面、转发规则方面更为灵活,所以LVS对系统级别的负载均衡能力较强一些,而HAProxy更容易完成应用级别的灵活配置;
  • Keepalived与HAProxy从某种意义上都实现了一定的容错性,keepalived实现一定的应用检测判断出故障后进行相应的策略,HAProxy也会对后端节点进行轮询从而即使剔除异常服务程序,然而Keepalived基于ip的转换服务,在发生异常时进行ip的动态绑定,从而实现高可用,而haproxy只是将后端的节点踢出,所以keepalived更适于进行双击热备,而haproxy更适于相同类型服务器的动态判断,当然为了保证HAProxy的高可用也可以对它进行keepalived。
  • LVS与HAProxy一样主要进行负载均衡,然而对后端的判断稍微少弱一些,所以经常使用LVS+Keepalived进行综合使用,同样可以完成主备LVS的自动切换。
0 0
原创粉丝点击