类似软件Haproxy,官方主页http://haproxy.1wt.eu/
Haproxy非常的优秀,在许多大型网站都有应用。这里不多做介绍。我准备用Java来重写一个Haproxy的初衷是,解决Haproxy不能用在多核模式的一个小小的弊端。其实Haproxy可以使用nbproc指令来启动多个进程进行处理,这样就可以使用多个cpu内核但是这毕竟是多个进程的模式,其中必然有一些进程间通信(IPC)的开销。
我的目的并不是要超越haproxy,我也没有这个野心。我只是想要在haproxy之外,提供另一种可以选择的负载均衡软件。
也许很长时间她都达不到生产系统的要求,但是只要肯坚持,不断修改和提高,我相信最终是可以在生产系统运用的。
Java在引入concurrent之后对于多核编程简单了许多。而且Java的NIO(虽然是epoll,select或者kqueue的一个封装,但是效率也是非常高的)提供了非常强大的非阻塞的服务器开发模式。简单来说我的这个软件就是concurrent和nio的结合的产物。
软件名称暂定为jiliu(激流),只要将“流”当作网络上的数据流,就会明白她的含义。并且她由J开头,也表明了她与Java的渊源。
主要功能
1.负载均衡。支持多种负载均衡算法。参考haproxy中balance配置
2.修改配置不需要重新启动。haproxy现在修改了配置需要重新启动进程才可以应用,我考虑jiliu应该可以在线修改配置。通过HTTP或JMX或者自定义的方式来进行配置,配置完则立刻生效,不需要重启。
3.提供统计报表。