1. HAProxyConsole简介

    之前在Golang中如何让html/template不转义html标签搭建高可用负载均衡组件及缓存DNS两篇文章中都提到为了方便使用HAProxy,我实现了一个简单的HAProxy负载均衡任务管理系统。前些天我把代码放在Github上,算是开源吧。

    同事使用该管理系统,遇到问题时,由于不清楚其实现,也就无法分析问题出在哪,同时也会有些恐慌,生怕搞挂了HAProxy,毕竟上面承载了一些关键的业务,所以我绘制一张图用于说明HAProxyConsole的应用场景和工作原理。

    HAProxyConsole-arch

    图中蓝色标识的部分都属于HAProxyConsole。

    • 用户通过Web页面增/删/改/查负载均衡任务,但这4个操作直接修改的都仅是数据库(DB.json或MySQL数据库)。另外,HAProxyConsole的Web页面中还嵌入了主从HAProxy自带的数据统计页面。
    • 只有当用户点击按钮“应用到主HAProxy”或“应用到从HAProxy”后,HAProxyConsole才会根据DB.json或MySQL中存储的数据和配置文件haproxy_conf_comm.json生成最新的HAProxy配置文件,然后拷贝一份为主HAProxy的配置文件或远程拷贝一份为从HAProxy的配置文件,最后重启HAProxy进程(/path/to/haproxy/sbin/haproxy -f /path/to/haproxy/conf/haproxy.conf -st …
  2. 搭建高可用负载均衡组件及缓存DNS

    该项工作,如题所示,主要分为两部分:高可用负载均衡组件、缓存DNS。

    高可用负载均衡组件

    需求:优化业务系统架构中某些关键环节,针对TCP层数据流量进行负载均衡,并保证服务的高可用。

    技术选型:HAProxy + Keepalived,这对组合比较常见成熟。

    另外,由于HAProxy的负载均衡任务可能比较多,靠人工修改配置来增删改任务不方便可靠,所以实现了一个简单的HAProxy管理系统, 以后经实际使用验证和完善会开放源码。

    high availability load balancer

    缓存DNS

    先以www.qq.com为例,解释一下域名解析过程:

    resolve qq.com

    1. 用户向Local DNS发起www.qq.com.查询请求;

    2. Local DNS向根服务器发起com.查询请求;

    3. 根服务器向Local DNS返回com.解析记录;

    4. Local DNS向com.权威服务器发起qq.com.查询请求;

    5. com.权威服务器向Local DNS返回qq.com.解析记录 …

Page 1 / 1