go mysql 中间件_Golang常用的中间件使用总结

从接触go到现在大概接近一年时间了吧,主要用它来开发GPU集群管理的client端以及一些小的工具,例如:服务端mock测试、ID生成器等,给我的感觉就是高性能、低消耗、够轻量,所以在目前容器化、微服务化火热的今天,其扮演着重要角色,如:docker、k8s、istio、prometheus等都是基于go开发,国内很多一线大厂都开始主推go作为他们的服务端开发语言,如:头条、B站、流利说等,其生态也在不断的发展,今天主要将我之前用到过的常用组件和中间件总结分享一下,便于后续快速搭建开发环境。

Gin(github.com/gin-gonic/gin):web开发框架,适合api接口、微服务开发,相较于其他框架(iris、beego)更轻量级和更好的性能。其路由功能很强大提供分组功能,非常适合做api开发,具体demo如下:

route := gin.Default()

// get method

route.GET("/testGet", func(c *gin.Context) {

name := c.Query("name")

c.String(http.StatusOK, "hello " + name)

})

// post method

route.POST("/testPost", func(c *gin.Context) {

param := Param{}

if err := c.BindJSON(&param); err != nil {

c.JSON(http.StatusBadRequest, gin.H{

"code": 1,

"msg" : "error",

})

return

}

s := fmt.Sprintf("name:%s, age:%s", param.Name, param.Age)

c.JSON(http.StatusOK, gin.H{

"code": 0,

"msg": s,

})

})

// route group

v1 := route.Group("/v1")

{

v1.POST("/getInfo", func(c *gin.Context) {

name := c.PostForm("name")

c.JSON(http.StatusOK, gin.H{"msg": "hello " + name})

})

}

v2 := route.Group("/v2")

{

v2.POST("/getInfo", func(c *gin.Context) {

name := c.PostForm("name")

age := c.PostForm("age")

s := fmt.Sprintf("hello %s, i'm %s", name, age)

c.JSON(http.StatusOK, gin.H{"msg": s})

})

}

route.Run(":8080")

Mysql(github.com/go-sql-driver/mysql):mysql第三方开源库的实现,提供原生sql功能,喜欢框架的童鞋可以去看看国人写的Gorm,挺不错的一个orm框架(我还是比较习惯写原生sql ^ _ ^ )。

// init

dataSourceName := fmt.Sprintf("%s:%s@tcp(%s:3306)/iray_proxy?charset=utf8mb4", "root", "root123", "127.0.0.1")

conn, err := sql.Open("mysql", dataSourceName)

if err != nil {

panic(err)

}

db.SetMaxOpenConns(30)

db.SetMaxIdleConns(10)

db.SetConnMaxLifetime(10 * time.Minute)

db.Ping()

// select

rows, err1 := conn.Query("select name, age from t_user where age > ? and age < ?", 20, 30)

defer rows.Close()

if err1 != nil {

panic(err1)

}

result := make([]map[string] interface{}, 0)

for rows.Next() {

var name s

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值