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

老王讲架构:负载均衡

程序员文章站 2023-03-26 11:30:57
Http负载均衡 Nginx Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力 Tcp负载均衡 LVS LVS(LinuxVirtual Server)是由章文嵩博士主导开发的一 ......

http负载均衡

nginx

nginx不仅是一个小巧且高效的http服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个mongrel进程可以极大提高rails应用的并发能力

tcp负载均衡

lvs

lvs(linuxvirtual server)是由章文嵩博士主导开发的一款开源软件,可以实现linux平台下的基于网络层的负载均衡软件

老王讲架构:负载均衡

keepalived

keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,keepalived将检测到,并将有故障的服务器从系统中剔除,当服务器工作正常后keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器

老王讲架构:负载均衡

haproxy

haproxy提供高可用性、负载均衡以及基于tcp和http应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。haproxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上

老王讲架构:负载均衡

 

 

vipserver

vipserver是阿里中间件团队开发的一个中间层负载均衡(mid-tier load balancing)产品,vipserver是基于p2p模式,是一个七层负载均衡产品。vipserver提供动态域名解析和负载均衡服务,支持很多诸如多业务单元同单元优先、同机房优先、同区域优先等一系列流量智能调度和容灾策略,支持多种健康监测协议,支持精细的权重控制,提供多级容灾体系、具有对称调用、健康阈值保护等保护功能的解决方案。是阿里负载均衡体系、域名服务体系的一个非常重要的组成部分

老王讲架构:负载均衡

数据库集群

mycat

mycat是一个开源的分布式数据库系统,是一个实现了mysql协议的服务器,前端用户可以把它看作是一个数据库代理,用mysql客户端工具和命令行访问,而其后端可以用mysql原生协议与多个mysql服务器通信,也可以用jdbc协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为n个小表,存储在后端mysql服务器里或者其他数据库里。mycat发展到目前的版本,已经不是一个单纯的mysql代理了,它的后端可以支持mysql、sql server、oracle、db2、postgresql等主流数据库,也支持mongodb这种新型nosql方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在mycat里,都是一个传统的数据库表,支持标准的sql语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度

老王讲架构:负载均衡

atlas

atlas是由 qihoo 360, web平台部基础架构团队开发维护的一个基于mysql协议的数据中间层项目。它在mysql官方推出的mysql-proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多mysql业务已经接入了atlas平台,每天承载的读写请求数达几十亿条

 

mha

mha(master high availability)目前在mysql高可用方面是一个相对成熟的解决方案,它由日本dena公司youshimaton(现就职于facebook公司)开发,是一套优秀的作为mysql高可用性环境下故障切换和主从提升的高可用软件。在mysql故障切换过程中,mha能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,mha能在最大程度上保证数据的一致性,以达到真正意义上的高可用

老王讲架构:负载均衡

 

codis

codis 是一个分布式 redis 解决方案, 对于上层的应用来说, 连接到 codis proxy 和连接原生的 redis server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 redis 一样使用, codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 redis 服务

老王讲架构:负载均衡

---------------------------------------------------

推荐阅读:

支付宝系统架构内部剖析

用kafka实现消息推送

大数据spark与storm技术选型

华为java编程军规,每季度代码验收标准

工作经验是积累总结出来的

毕业后,你什么选择程序猿?