- 博客(4)
- 资源 (1)
- 收藏
- 关注
原创 Golang 类型断言引发的一系列线上问题(协程通道有进不出,协程异常终止,interface断言(dotType方式)不匹配的类型会panic,)
问题引出场景近期公司某个功能模块线上运行异常。异常情况:某个接口阻塞不通,但服务状态OK. heart-beat /ping 可以通;代码背景:由于需要防止以避免服务器资源耗尽,接口内部使用了 全局的channel 缓冲通道 对该接口进行全局访问次数限制,此处贴代码从执行顺序上看,似乎没有什么问题。但真实运行后问题出在了业务 fn()方法内部,重点 :fn方法若内部异常Panic时,被 recover 以后,是不会 走到 业务的出通道里,因此导致此次业务任务的通道一直被占用。重复70次同样类型数据
2021-07-05 18:50:14
414
原创 本地发布到K8S测试环境遇到的一些问题
本地发布到K8S测试环境遇到的一些问题http客户端Header之接收编码工作目录静态资源找不到空目录未被创建http客户端Header之接收编码或许在本地测试调试没问题,但打包镜像发布到容器里就出现服务端返回乱码问题,这时需要在http客户端header内新加accept-encoding=application/json工作目录静态资源找不到近期做了一个画图的功能,底图资源放在了项目根目录,一切测试OK,但发布到容器后发现工作路径静态目录没有检索到,是因为打包发布时如果存在静态目录,需要Doke
2021-06-17 10:24:49
299
原创 GO切片传值/引用/指针
GO切片传值/引用/指针鄙人一直以为切片,map 在函数调用过程中传递是值传递。这一点没错。和大家想的一样但是此处有一个坑需要规避就是 当所传原切片长度变大后。就是增长后,Go底层会为其分配新的地址来存储更多的值,这时候你传的原切片地址就会变成新的。原理:append()添加数据时并不会影响实参(的长度)。 (可以通过返回值覆盖(修改)实参的值(长度);或者通过切片的指针修改实参)因此当函数中对原切片的长度进行扩增,调用append后,地址发生了变化。在不做返回值覆盖的情况下,需要传入原切片的指
2020-11-24 12:34:33
1199
1
转载 scoket和TCP/IP协议族的关系
数据链路层、 网络层、传输层协议是在内核中实现的。实现这组系统调用的API(Application Programming Interface, 应用程序编程接口)实现一组系统调用,使得应用程序能够访问这此协议提供的服务。主要有两套:socket 和XTI。XTI协议族的关系。现在基本不再使用,木书仅讨论socket。图1-1显示了socket 与TCP/IP由soo定义的这一组 API提供如下两...
2019-03-30 10:41:39
211
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人