seesaw,作为一个golang实现的四层负载均衡器,不奢求对其有多深的了解,只希望能大致看懂是其核心逻辑,如何对tcp包进行路由转发。
如果有可能,希望自己可以写出来一个小玩具做测试。
其中的一些组件
1.cli 命令行工具
2.ncc用root权限跑,负责iptable,ipvs等的修改
3.engine,控制中心,负责核心服务的启动和管理
4.ecs,监控和管理的接口,把一些扩展功能的开发放在这个子模块中
5.ha 高可用管理,通过监听socket完成自动的master切换等任务
6.healthcheck,健康检查
7.watchdog,好像是综合日志处理等相关内容
其中节点间通过ipc,go的rpc进行通信
vrrp 虚拟路由器冗余协议
其中的流量转发通过ncc模块来控制ipvs实现。可以使用NAT和TUN两种模式。golang调用netlink的接口对ipvs进行控制。
网友评论