• This repository has been archived on 20/Sep/2018
  • Stars
    star
    110
  • Rank 314,861 (Top 7 %)
  • Language
    Go
  • Created almost 11 years ago
  • Updated over 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

主从HAProxy负载均衡任务管理系统

HAProxyConsole是一个简单的HAProxy负载均衡任务管理系统。由于HAProxy的负载均衡任务可能会很多,手动编辑配置文件非常不方便、不安全,所以实现一个友好的管理系统是非常必要的。

功能点:

  1. TCP协议负载均衡任务的增删改、任务的列表展示;
  2. 一键应用最新配置到主服务器或从服务器并重新HAProxy进程;
  3. 修改一个配置项即可在JSON文件存储和数据库存储之间切换;
  4. 内置小工具用于不同存储方式之间的数据转换;
  5. 内嵌主从HAProxy自带数据统计页面,方便查看信息;
  6. 分/不分业务端口自动分配、指定分配端口模式;
  7. 内置配置文件正确性检查功能;等...

基于Go语言标准库http实现自带Web server,一般情况不需再使用nginx/apache。

使用场景(系统结构图)

High Availability Load Balancer

基本功能页面截图

screenshot-1

screenshot-2

配置:

conf目录下有4个文件:

  • app.sql:如果选择以MySQL来存储,则执行该文件中的sql语句创建数据表
  • app_conf.ini:该文件为haproxyconsole的主配置文件,使用之前阅读每个配置项的说明信息,按照说明修改配置。
  • DB.json:该文件是在选择以JSON文件存储时,自动生成的存储文件。
  • haproxy_conf_common.json:该json文件包含4项数据-“Global”、“Defaults”、“ListenStats”、“ListenCommon”,“Global”和“Default”对应HAProxy配置的Global和Defaults部分,“ListenStats”是启用HAProxy自带的数据统计页面,用户可能需要修改该功能启用的端口,“ListenCommon”是所有HAProxyConsole管理的TCP负载均衡任务在生成HAProxy配置listen块时的通用部分。

编译:

    cd src && go build main.go

使用:

启动HAProxyConsole(假设HAProxy部署在/usr/local目录下):cd /usr/local/haproxyconsole/bin && ./haproxyconsole &,默认端口为9090,可使用选项-p来自定义端口,如:cd /usr/local/haproxyconsole/bin && ./haproxyconsole -p 8080(注意该端口不应在HAProxyConsole为HAProxy负载均衡任务自动分配的端口范围之内(10000-20000))。

若需转换数据存储方式,则可通过内置工具来完成:cd /usr/local/haproxyconsole/bin && ./haproxyconsole -t,该工具完成的操作是:若StoreScheme设定为0,则从DBDriverName和DBDataSourceName 指定数据库的haproxymapinfo数据表中读取数据,转换成json格式存入FileToReplaceDB指定路径的JSON文件中。

缺点:

  1. 没有手动编辑HAProxy配置文件灵活,没法对某些负载均衡任务做详细的定制。
  2. 目前只实现了3层(TCP协议)负载均衡任务管理。

More Repositories

1

mpdp-code

《精通Python设计模式》一书的示例代码
Python
223
star
2

redis-sentinel-ui

简易的Redis Sentinel集群UI
JavaScript
191
star
3

memcached-ui

为Memcached准备的一个Web UI
Go
81
star
4

work_note

技术学习笔记
42
star
5

Baidu_Music_Downloader

百度音乐下载器
Python
33
star
6

The-AWK-Book-cn

Translation of The AWK Book
Python
25
star
7

feed-world

Feed聚合服务
PHP
21
star
8

Translation

这里不再更新,翻译的文章见我的博客
11
star
9

WebBasedRobot

web-based robot control system...
C
9
star
10

fuse

用于Git Webhook
Go
9
star
11

codelab

个人代码实验室
TeX
7
star
12

kitelife.github.com

个人博客
HTML
6
star
13

load-updater

该程序专门用于提高服务器CPU的使用率/负载。也许有人需要这样做
Go
5
star
14

simpleFTPsearch

a simple search engine to help find file in ftp directories
JavaScript
4
star
15

golden-eye

“火眼金睛” - 站点指纹识别服务,基于wappalyzer
JavaScript
4
star
16

blink

simple monitor for linux server
Python
4
star
17

Data-Structures-and-Algorithms

simple implementation of some data structures and algorithms
C
3
star
18

oh-my-mac

3
star
19

xiaBase64

Go
3
star
20

Notes

这里的笔记都比较粗糙,一般为阅读摘录
3
star
21

apue.2e-sourcecode

《UNIX环境高级编程》第二版源码
C
3
star
22

parseExcelAndSendMails

解析Excel文件并群发邮件。
Python
3
star
23

mydotfiles

各种配置文件
Vim Script
2
star
24

whitelistlistener

nginx ip白名单添加服务
Python
2
star
25

geo-dns

智能代理 DNS 解析服务
Java
2
star
26

colorfulCode

pygments+bottle to implement a code-highlight system, just for fun
Python
2
star
27

JustABlog

a blog website for coding practice
Python
1
star
28

auto_http_load

基于Apache Benchmark及matplotlib的批量压测及绘图工具
Python
1
star
29

ToolsForMyself

Python
1
star
30

rq

Simple Task Queue based on Redis
Python
1
star
31

homebrew-bee

Homebrew tap for bee: https://github.com/beego/bee
Ruby
1
star