gin框架的6种热加载方法,你都知道吗

前言哈喽,大家好,我是asong,这是我的第九篇原创文章。今天给大介绍几种热加载的方法,大大提高我们的开发效率。本篇文章的所有实现都是基于GIN框架的,公众号有2020最新官方中文文档,后台回复:GIN(不区分大小写)即可获取。本文的所有项目效果演示都是基于gin_jwt_swagger开源项目,项目地址:https://github.com/asong2020/...。欢迎Star与使用。文章链接:听说你还不会jwt和swagger-饭我都不吃了带着实践项目我就来了什么是热加载如果你是一名py...阅读全文

Segmentfault 2020-08-21 10:32:34 asong

Nodejs 与 Golang 的比较:Web 开发人员选择哪个最佳?

Which One? 技术领域日新月异。全球的开发人员都关注技术趋势,这些技术最终将帮助他们在非常短的时间内设计出优秀的软件。很多时候,程序员很难根据客户的要求选择最佳语言来创建移动应用程序。Web 开发是发展最快的领域之一。每个行业都希望通过在线渠道扩展业务,以赢得更多的客户并加强营销。选择一流的技术(例如 Golang 应用程序开发或 NodeJS)变得至关重要。但是,哪个能为您的业务创造奇迹?继续向下阅读,以了解有关平台发展的更多信息。 在当今的数字世界中,企业可以通过改进网站的不同部分(...阅读全文

51CTO博客 2020-08-14 21:05:53 小几斤

async/await + Java NIO

虽然Java官方有loom项目来实现协程,但是实在等不住了。既然fanx支持async/await,所以就尝试和异步IO结合,来实现高性能网络框架。代码见这里:fanx-dev/fanxServer。架构类似于netty的reactor模式,像这样:示例代码:class TestServer : Handler { override async Void onService(Socket socket) { buf := NioBuf.makeMem(1024) n := await socke...阅读全文

Segmentfault 2020-08-21 10:32:34 chunquedong

【Golang小知识】中文字符串遍历

中文字符串遍历问题相信很多人都遇到过中文字符串遍历乱码的情况。遍历字符串一般有两种方式:下标遍历,for...range,如果字符换包含中文,使用下标遍历时则会出现乱码。解决方法将字符串转为[]rune类型,再使用下边遍历则不会出现乱码。package main import "fmt" func main(){ //str := "abc" str := "hi,你好" //下标遍历 for i,v := range str{ fmt.Printf("str[%d]=%v\n", i, str...阅读全文

Segmentfault 2020-08-20 17:32:33 moonbamboo

Golang之HTTP server 502问题分析

问题引入  生产环境Golang服务有时会产生502报警,排查发现大多是以下三种原因造成的:http.Server配置了WriteTimeout,请求处理超时,Golang断开连接;http.Server配置了IdleTimeout,且网关和Golang之间使用长连接,Golang断开连接;Golang服务出现了panic。  第三种case非常简单,本文将重点分析前两种case背后的深层原因。  注:请求链路为 客户端 ===> Nginx ===> GolangWriteTimeout  G...阅读全文

Segmentfault 2020-08-19 20:32:32 源代码

Redis『慢查询』分析

问题来源  高峰盯盘期间,通过kibana查询发现不定时存在一些redis慢查询日志(客户端日志);而且目前项目中记录redis慢查询日志的门限默为300ms。这种不知原因且不定时的慢查询是非常危险的。  注1:redis server实例配置的slow log门限为10ms,并且存在慢查询报警。  注2:客户端与redis之间还存在Twemproxy代理(以下简称tw)。  注2:客户端为Golang服务,与tw之间是长连接,基于连接池实现。【案例1】客户端问题排查  2020.07.29 1...阅读全文

Segmentfault 2020-08-19 19:32:33 源代码

Golang之HTTP server 502问题分析

问题引入  生产环境Golang服务有时会产生502报警,排查发现大多是以下三种原因造成的:http.Server配置了WriteTimeout,请求处理超时,Golang断开连接;http.Server配置了IdleTimeout,且网关和Golang之间使用长连接,Golang断开连接;Golang服务出现了panic造成服务重启。  第三种case非常简单,本文将重点分析前两种case背后的深层原因。  注:请求链路为 客户端 ===> Nginx ===> GolangWriteTime...阅读全文

Segmentfault 2020-08-14 15:32:39 源代码

Golang XORM实现分布式链路追踪(源码分析,分布式CRUD必学)

MyBlog: [Avtion](https://www.avtion.cn/post/10012/) 使用`XORM`和`Opentracing`,让你彻彻底底摆脱繁琐的`CRUD`的阴影,将工作重心转移至业务逻辑 > 系统环境 > go version go1.14.3 windows/amd64 > xorm.io/xorm 1.0.3 # 一、 ⚠️提醒 - XORM版本`1.0.2`及以上(支持以`Hook钩子函数`方式侵入XORM执行过程)...阅读全文

Go语言中文网 2020-08-13 22:54:05 avtion

Go 语言实现 RPC 调用

友情提示:此篇文章大约需要阅读 6分钟38秒,不足之处请多指教,感谢你的阅读。 订阅本站RPC在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC 是一种服务器-客户端( Client/Server )模式,经典实现是一个通过 发送请求-接受回应 进行信息交互...阅读全文

Segmentfault 2020-08-19 15:32:33 Meng小羽

TarsGo 服务获取自定义模版(配置)值

作者:amc导语:之前的文章中我们介绍了如何使用TarsGo创建HTTP服务和TARS RPC服务,本篇文章中,我们将介绍如何在TarsGo服务中获得自定义模板的配置值。TARS 模版是什么?TARS 框架中,有两种可以称之为 “配置” 的地方:其中一个是可以自定义的,在 TARS 管理页面中称为 服务配置。在这里,可以按照开发者喜欢的格式上传文件,并且支持配置的热更新。而另一个地方,则是本文要讲的。这个在 TARS 中称为 “模版”。模版可以在 TARS 管理平台顶部的 “运维管理” 进去后,...阅读全文

Segmentfault 2020-08-19 07:32:33 TARS基金会

m3db-node oom追踪和内存分配器代码查看

m3dbnode oomoom时排查内存火焰图: 80G内存 bytes_pool_get_on_empty qps 很高db read qps增长 80%node cpu kernel 暴涨看图结论m3dbnode 内存oom过程很短,很剧烈:总时间不超过7分钟内存从27G增长到250G节点sys态cpu暴涨:因为大量的mem_alloca sys_call内存增长曲线和db_read_qps曲线和bytes_pool_get_on_empty曲线高度吻合内存火焰图: 27G的rpc 40G的...阅读全文

Segmentfault 2020-08-18 17:32:35 ning1875