草庐IT

高可用linux 服务器搭建

最原始的服务部署,为单点部署,即直接把服务部署在一个服务器上。如果服务器出现故障,或者服务因为某个异常而挂掉,则服务就会发生中断。单点部署出现故障的概率最高。后来,出现了网关,比如nginxkong等。如下图所示:这样,所有客户请求都会经过网关,再由网关转发到各个服务。如果由服务出现故障,则网关会自动跳过故障服务,把请求分发到可用服务。因为网关只是起到服务转发的功能,所以网关出现故障的概率比应用出现故障的概率低很多。http{upstreammyserver{server192.168.12.181:80weight=3max_fails=3fail_timeout=20s;server192

golang中的选项模式

索引https://waterflow.link/articles/1663835071801当我在使用go-zero时,我看到了好多像下面这样的代码:...type( //RunOptiondefinesthemethodtocustomizeaServer. RunOptionfunc(*Server) //AServerisahttpserver. Serverstruct{ ngin*engine routerhttpx.Router })...//AddRoutesaddgivenroutesintotheServer.func(s*Server)AddRoutes(rs[]Ro

golang中的选项模式

索引https://waterflow.link/articles/1663835071801当我在使用go-zero时,我看到了好多像下面这样的代码:...type( //RunOptiondefinesthemethodtocustomizeaServer. RunOptionfunc(*Server) //AServerisahttpserver. Serverstruct{ ngin*engine routerhttpx.Router })...//AddRoutesaddgivenroutesintotheServer.func(s*Server)AddRoutes(rs[]Ro

Linux shell 动态条

#!/bin/bash#隐藏光标c_hide_cursor='\033[?25l' #显示光标c_show_cursor='\033[?25h' #函数体timeout(){ #隐藏光标 echo-en"$c_hide_cursor" #这是一个无限循环,如果要定时结束,可以在循环内添加条件. whiletrue;do printf"\b"#删除一个字符 printf"/"#添加一个字符"/" sleep0.1#等待0.1秒 printf"\b|"#删除一个字符,再添加一个字符"|" sleep0.1 printf"\b\\"#"\"反斜杠需要两个反斜杠才能显示 sleep0.1 print

Linux shell 动态条

#!/bin/bash#隐藏光标c_hide_cursor='\033[?25l' #显示光标c_show_cursor='\033[?25h' #函数体timeout(){ #隐藏光标 echo-en"$c_hide_cursor" #这是一个无限循环,如果要定时结束,可以在循环内添加条件. whiletrue;do printf"\b"#删除一个字符 printf"/"#添加一个字符"/" sleep0.1#等待0.1秒 printf"\b|"#删除一个字符,再添加一个字符"|" sleep0.1 printf"\b\\"#"\"反斜杠需要两个反斜杠才能显示 sleep0.1 print

【minikube】Docker Desktop for Linux 启动 minikube 时遇到无法连接到 API server 的错误: time out \ Enabling 'default-storageclass' returned an error \ dial tcp 192.168.49.2:8443: i/o timeout

在向k8s迈出第一步的时候,你是否遇到了这样的错误:ConfiguringRBACrules...|E080115:11:41.47644326762start.go:264]Unabletoscaledowndeployment"coredns"innamespace"kube-system"to1replica:timedoutwaitingfortheconditionEnabling'default-storageclass'returnedanerror:runningcallbacks:[Errormakingstandardthedefaultstorageclass:Error

【minikube】Docker Desktop for Linux 启动 minikube 时遇到无法连接到 API server 的错误: time out \ Enabling 'default-storageclass' returned an error \ dial tcp 192.168.49.2:8443: i/o timeout

在向k8s迈出第一步的时候,你是否遇到了这样的错误:ConfiguringRBACrules...|E080115:11:41.47644326762start.go:264]Unabletoscaledowndeployment"coredns"innamespace"kube-system"to1replica:timedoutwaitingfortheconditionEnabling'default-storageclass'returnedanerror:runningcallbacks:[Errormakingstandardthedefaultstorageclass:Error

go程序添加远程调用tcpdump功能

最近开发的telemetry采集系统上线了。听起来高大上,简单来说就是一个grpc/udp服务端,用户的机器(路由器、交换机)将它们的各种统计数据上报采集、整理后交后端的各类AI分析系统分析。目前华为/思科的大部分设备支持。上线之后,各类用户开始找来要求帮忙定位问题,一般是上报的数据在后端系统中不存在等等。在一通抓包分析后,百分之99都是用户自己的问题。但频繁的抓包定位问题,严重的压缩了我摸鱼的时间。而且,这套系统采用多实例方式部署在腾X云多个容器中,一个个的登录抓包,真的很烦。这让我萌生了一个需求:主动给采集器下发抓包任务。将抓包的信息返回。将抓包的文件暂存,以备进一步定位问题。方法1使用f

go程序添加远程调用tcpdump功能

最近开发的telemetry采集系统上线了。听起来高大上,简单来说就是一个grpc/udp服务端,用户的机器(路由器、交换机)将它们的各种统计数据上报采集、整理后交后端的各类AI分析系统分析。目前华为/思科的大部分设备支持。上线之后,各类用户开始找来要求帮忙定位问题,一般是上报的数据在后端系统中不存在等等。在一通抓包分析后,百分之99都是用户自己的问题。但频繁的抓包定位问题,严重的压缩了我摸鱼的时间。而且,这套系统采用多实例方式部署在腾X云多个容器中,一个个的登录抓包,真的很烦。这让我萌生了一个需求:主动给采集器下发抓包任务。将抓包的信息返回。将抓包的文件暂存,以备进一步定位问题。方法1使用f

tcp_tw_reuse、tcp_tw_recycle、tcp_fin_timeout参数介绍

参数介绍net.ipv4.tcp_tw_reuse=1表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表示关闭;net.ipv4.tcp_tw_recycle=1表示开启TCP连接中TIME-WAITsockets的快速回收,默认为0,表示关闭。net.ipv4.tcp_fin_timeout=30表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。客户端主动关闭tcpsocket时:客户端发送FIN报文段,进入FIN_WAIT_1状态。服务器端收到FIN报文段,发送ACK表示确认,进入CLOSE_WAIT状态。客户端收到F