首页 > 其他分享 >golang vrrp + ipvs 实现简单的服务ha

golang vrrp + ipvs 实现简单的服务ha

时间:2023-05-16 18:22:10浏览次数:65  
标签:github vip vrrp golang ipvs com

比较类似keeplived ,但是是比较简单的集成

参考图

基于vrrp 实现vip 的处理,同时master 以及backup 安装基于vrrp+ipvs 的程序,基于服务状态进行服务的切换处理

 


实现说明: 对于vrrp 处理可以基于包装的vrrp golang (rongfengliang/vrrp) 包,同时对于ipvs 可以直接ipvs 包(可以使用mqliang/libipvs 或者cloudflare/ipvs)
当然对于实现部分也可以基于配置进行管理

说明

kube-vip 是一个很不错的项目,对于ipvs 部分就利用了cloudflare/ipvs 的包,是一个值得参考学习的golang 项目,后边有时间了可以实现一个简单的示例

参考资料

https://github.com/mqliang/libipvs
https://github.com/moby/ipvs
https://github.com/kube-vip/kube-vip
https://github.com/cloudflare/ipvs
https://github.com/rongfengliang/vrrp
https://www.keepalived.org/manpage.html

标签:github,vip,vrrp,golang,ipvs,com
From: https://www.cnblogs.com/rongfengliang/p/17406450.html

相关文章

  • Golang URL query contains semicolon 报错解决方案
    ​ 报错信息http:URLquerycontainssemicolon,whichisnolongerasupportedseparator;partsofthequerymaybestrippedwhenparsed;seegolang.org/issue/25192 高版本http废除了分号做分隔符,会在http库中做报警输出,基础库代码如下:func(shserverHandle......
  • golang 关于 Inf,-Inf,Infinity,-Infinity 等无穷大无穷小特殊字符转换问题
    记录一个比较个例的问题,某天API突然写入数据失败,原因是数据库写入长度超出,并且从日志中发现了"Infinity"这样的特殊字符串英语渣渣的我有懵,客户端发过来的数据,API都会转换为对应的数据类型,再进行数据库写入,如果是字符串,最多就转成0,怎么会长度超出万变不离其宗,肉眼看不出的问题......
  • MSTP-VRRP-DHCP-OSPF-BFD实验(三)
    配置核心交换机SVI[HX_SW1]intvlanif2[HX_SW1-Vlanif2]ipadd192.168.2.25324[HX_SW1-Vlanif2]intvlanif3[HX_SW1-Vlanif3]ipadd192.168.3.25324[HX_SW1-Vlanif3]intvlanif4[HX_SW1-Vlanif4]ipadd192.168.4.25324[HX_SW1-Vlanif4]intvlanif5[HX_SW1-Vlanif5......
  • Golang基础--context的用法
    context包是go并发中常用的包,用于设置截至日期,同步信号,传递请求相关的值。应用场景每一个http请求的request都会启动一个goroutine处理这个请求,后续跟进的这个请求可能还需要访问数据库,做安全验证,访问控制,日志记录等,这时候就会由最早的goroutine启动后续的多个goroutine,这......
  • MSTP-VRRP-DHCP-OSPF-BFD实验(二)
    所有交换机需启用MSTP服务[JR_SW7]stpregion-configuration[JR_SW7-mst-region]region-nameaa[JR_SW7-mst-region]revision-level1[JR_SW7-mst-region]instance1vlan23200[JR_SW7-mst-region]instance2vlan456[JR_SW7-mst-region]activeregion-configuration......
  • Golang后端研发岗位的面试笔记整理
    今年互联网行情真不太行,暑期实习投了十几家,在经历了各种一面挂和二面挂后,终于在最后拿到了百度的暑期实习offer,真的不容易,中间一度被面试搞得怀疑人生,太难了QAQ这是本人花了点时间整理的一些与Golang后端研发岗位相关的面试笔记,欢迎大家及时补充当然并不局限于Golang研发岗位,......
  • golang vrrp 包
    vrrp是一个比较有用的功能,可以实现业务访问的的高可用,keepalived就使用了此协议(当然还集成了lvs)此包是基于了社区提供的VRRP-go包调整的,解决了一些问题:比如不是gomod的,部分依赖三方包不兼容参考使用gomod gomodinitgithub.com/rongfengliang/demoappv......
  • golang多版本管理工具g
    一、golang多版本管理工具g 一)g简介g是一个Linux、macOS、Windows下的命令行工具,可以提供一个便捷的多版本go环境的管理和切换 二)g特性支持列出可供安装的go版本号支持列出已安装的go版本号支持在本地安装多个go版本支持卸载已安装的go版本支持在已安装的go版本......
  • golang 实现一个自动注入跟踪代码工具
    如下面代码所示:packagemainimport("bytes""fmt""runtime""strconv")/**实现一个自动注入跟踪代码,并输出有层次感的函数调用链跟踪命令行工具.*/funcTrace()func(){//通过runtime.Caller函数获得当前Goroutine的函数调用栈上的信息,......
  • golang netlink 方便的网络管理包
    netlink可以方便的处理golang对于系统网络相关测试,比如我们需要设置网桥,配置ip,设置路由。。。。参考使用packagemain import("github.com/vishvananda/netlink") funcmain(){eth,_:=netlink.LinkByName("enp0s2")addr,_:=netli......