在用 goreman 管理整个 TiDB 集群的时候,我发现 goreman 的 run stop 功能并不能正常的干掉 TiDB 组件,开始我觉得是我们自己代码的没有,没有很好的处理相关信号,但后来发现,TiDB 这边是压根没有收到信号,所...
#{}和${}的用法和区别
#{}的用法: 我们发现,在Mapper.xml映射文件中,经常使用#{属性名} 来作为SQL语句的占位符,来映射Sql需要的实际参数 如果只有一个参数 <select id="getUserById" parameterType="int" resultType...
SpringBoot 页面跳转的几种方式
一、使用框架提供的方法 转发 @RequestMapping({"/","/forward"}) public String test1() { return "forward:res/index.html"; } 完整的请求路径为:http://域名/虚拟目录/res/ind...
Jackson全面解析–注解讲解之(@JsonProperty,@JsonPropertyOrder)
@JsonProperty @JsonProperty可以说是用的频率非常高的一个注解,如下 @AllArgsConstructor(staticName = "of") @NoArgsConstructor @Getter @Setter class JsonPropertyPojo{ ...
手机号码、邮箱格式正则验证
邮箱格式验证 func VerifyEmailFormat(email string) bool { //pattern := `\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*` //匹配电子邮箱 pattern := `^[0-9a-z][_.0-9a-z-]{0,31}@([0-9a-z][0-...
初识go语言—<<和>>分别表示什么
今天有个同事问我是什么意思。。。如此简单的问题出自一个2年开发经验的嘴里略显尴尬。。还是总结一下吧。。 简单的来说就是像左移位和像右移位 比如说0010 向左移1位就是0100,所左移位就是*2 向右移位...
golang 的Command启动的进程如何关闭
在用exec包调用的其他进程后如何关闭结束,可以使用context包的机制进行管理,context包的使用详见:https://godoc.org/context exec.CommandContext方发实现了context,通过context可以对exec启动的进程结束...
golang runner服务平滑重启——子进程处理
现在线上服务多实例在滚动升级时总是会出现部分任务失败,尽管有失败任务交由其他实例重试的策略,但是有时候滚动升级较快,分配到的新实例又要升级,则导致二次失败,任务就彻底失败了。因为上线时总要注意下上...
go如何热重启服务端进程
热重启方式 使用负载均衡等技术分批次灰度机器 使用fork系统调用来实现平滑重启 go的平滑重启实现 具体原理就是子进程与父进程共享文件描述符,当开启子进程时文件描述符引用计数增加,父进程结束了引用计数减...
go框架之gin上传文件
创建接口: func main() { r := gin.Default() r.POST("/upload",upload) r.Run() } // upload 上传 func upload(c *gin.Context) { file, err := c.FormFile("file") if er...