G6(TCP负载均衡分发器&&桥接器)更新至 v1.0.2

calvinwilliams
 calvinwilliams
发布于 2016年04月05日
收藏 93

G6(TCP负载均衡分发器&&桥接器)更新至 v1.0.2 版本,历史版本更新记录:

ver 1.0.2    2016-03-28    calvin
        * 修正了一些BUG

ver 1.0.1    2016-03-26    calvin
        * 新增命令行参数 绑定CPU亲缘性
        * 去掉了一些线程互斥量,改为__sync_原子操作
        * 调整了参数load_balance_algorithm类型,以提高比较操作性能
        * 清理无用代码

ver 1.0.0    2016-03-17    calvin

        * 创建

1 背景

2014年我研发了负载均衡软件G5,作为开源项目发布到网上,被很多公司采用,反馈了大量意见和建议,比如希望增加后 端心跳功能等,在这里感谢广大朋友们的支持和帮助。近两年的开源发展,G5已经趋近成熟,也暴露了不少设计不足,比如没有充分利用多核环境。两周年之际, 我决定重新研发G5第二版,名字就叫做G6,重点解决G5设计不足,也从代码架构上深度优化性能。

2 概述

G6是一款高性能、易使用、支持远程管理的TCP负载均衡分发器&&桥接器,基于Linux的epoll事件驱动非堵塞全异步框架实现。

G6工作在网络4层TCP,这意味着不仅可以用于网站HTTP协议,还能用在SMTP、POP、TELNET、SSH等协议上。

2.1 使用场景

       * 网站反向代理

       * 与无负载均衡功能的通讯软件配合实现负载均衡分发

       * 双网卡桥接不同网段

2.2 支持几乎所有主流负载均衡算法

       * 主备

       * 轮询

       * 最少连接数

       * 最小响应时间

       * 随机

       * 哈希

2.3 功能优势

       * 充分利用多核环境,采用父子进程(监控进程+工作进程)+多线程(缺省数量为CPU核数)的软件架构。

       * 平滑重载配置和自我升级,真正的无缝更新,不会影响现有会话和侦听服务端口。

       * 基于红黑树的会话超时管理,这是与epoll配合最好的超时管理方式。

       * 性能是同类软件中最高的,比nginx还快,具体见性能测试章节。

       * 配置文件格式简洁、灵活,配置参数丰富,拥有全局继承机制以减少配置冗余。

       * 提供了出错暂禁、心跳报告、管理命令主动暂禁三种隔离后端服务器机制,最后两种可与运维脚本配合实现更复杂的定制化健康检测。

       * 源码文件分布合理、代码结构清晰便于阅读,适合定制化改造。编译成可执行程序不到200KB,无第三方软件依赖。内存使用恒定。

       * 可通过管理端口远程查询和管理,便于对接第三方UI 。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:G6(TCP负载均衡分发器&&桥接器)更新至 v1.0.2
加载中

最新评论(16

yangjh_chs
yangjh_chs
这个很不错
酷儿Qoo
酷儿Qoo

引用来自“酷儿Qoo”的评论

nginx1.9也支持tcp了 另外稍微看了下说明文档 分发规则是启动后输入还是加载的配置文件 这个没看明白

引用来自“calvinwilliams”的评论

是加载的配置文件,再启动。当然,改了配置后用平滑重启可以在线重载配置,不影响当前已有回话和侦听端口。
感谢作者的回复,明天先测试下,有问题再请教
calvinwilliams
calvinwilliams

引用来自“酷儿Qoo”的评论

nginx1.9也支持tcp了 另外稍微看了下说明文档 分发规则是启动后输入还是加载的配置文件 这个没看明白
是加载的配置文件,再启动。当然,改了配置后用平滑重启可以在线重载配置,不影响当前已有回话和侦听端口。
酷儿Qoo
酷儿Qoo
nginx1.9也支持tcp了 另外稍微看了下说明文档 分发规则是启动后输入还是加载的配置文件 这个没看明白
苍松
苍松
看了下文档,配置倒是挺简单的,如果真的非常需要提高nginx的转发性能,可以考虑换成G6,对作者佩服的五体投地啊。但是目前nginx提供的整套web服务器和模块目前还是最方便的,熟悉优化nginx的人也更多,优势明显一些。不知道nginx的模块开发和这个开发是不是一样的技术,技术如果允许的话,作者可以考虑下做成nginx的一个模块来发布,这样比一个独立的东西更好推广出去。
twisted3
twisted3

引用来自“tony.li”的评论

没看到windows版本

引用来自“calvinwilliams”的评论

后面有时间我会增加windows支持,但是应该用select来实现,所以性能会差些,不过话说回来,现在用windows做服务器不多了。
底层io考虑libevent或者libuv
calvinwilliams
calvinwilliams

引用来自“Injection”的评论

坐等G8
G6是长期维护版本,谢谢
calvinwilliams
calvinwilliams

引用来自“purple_grape”的评论

G6谣传是F5升级版
声明:G6和F5没有任何关系,但不排除将来新版F5会借用G6开源代码 ;)
返回顶部
顶部