作者归档:salmonl

关于salmonl

成长,长成自己的样子。微博@动机在北京,欢迎来玩~

MySQL Limit用法笔记

最近用低代码平台amis, 2天搭了一个审核系统,为了快点看到效果,没有使用框架的ORM,直接写SQL,结果分页展示数据,总数比展示数据多一条,原因是在MySQL Limit上翻车了。特别震惊,工作这么多年了,自己真的不知道limit的用法。
继续阅读

许三观卖血记读书笔记

【生活从来都不容易,当你觉得活的异常艰辛的时候,特别建议来听听许三观讲讲他自己的故事,给你生活的勇气和决心】

余华的这本小说,用特别朴素的语言和简单的情节,记录了南方小城丝厂送茧工许三观靠卖血维持的一生以及那个时代,是山水墨画却意蕴深远⛰️
继续阅读

一致哈希Go实现及应用(一致哈希学习笔记三)

一致哈希算法介绍参考本站文章《一致哈希算法理解(一致哈希学习笔记一)》

回顾一致哈希算法步骤:
0、将每一个服务器节点按照ip或者server_name, 通过hash函数(eg: crc32)得到对应的一组hash整数值,这里称做hash_servers,并对得到的整数值按由小到大进行排序。
1、将key也通过上面同一个hash函数计算得到对应hash整数值, 这里称为hash_key。

2、遍历hash_servers,用hash_key与hash_servers中的数逐个比较,当hash_key最后小于hash_servers中的那个数存在时,这个数对应的节点就是这个key所存储的节点,否则存在第一个节点。

一、Go实现
这里主要是一致哈希算法Go的一种实现笔记,PHP的实现参考本站文章《一致哈希PHP实现及应用(一致哈希学习笔记二)
继续阅读

服务端对服务端的HTTP请求最好不要用HTTPS协议

注:本文描述的调用方和被调用方都是同一家公司内部。

一、背景
作为服务端研发,我们经常需要去调用公司内部其他部门提供的服务,发起HTTP请求调用API,印象中被调用的API默认都是http协议,也从来没有在这个协议上出现过任何问题,今天却遇到了问题,最后查名跟协议有关。
继续阅读

PHP curl 提示Connection time-out错误笔记

最近在整理电脑,发现备忘录中记了一笔关于curl timeout的问题,回想当时问题出现的场景,难得一见的问题,记录下来希望能帮助到大家。

一、问题描述
服务端对服务端API调用,使用PHP curl方法通过HTTP的方式调用API接口,压测的时候发现调用API出现大量错误”curl server is error: Connection time-out 错误码28″

我是API的提供者,通过traceid分析,我发现异常的请求根本没有到达我的服务,但是调用方拉着我不放,于是帮忙排查,也知道了问题的原因。
继续阅读

Go大切片并发查找问题笔记

一、问题描述
超长切片,切片元素类型为int,切片中元素乱序,使用多个goroutine查找给定值是否存在,找到目标值后立即结束所有的goroutine的执行

二、解决思路
把slice分成多段,每一段起一个task goroutine进行查找,找到目标值后在全局channel中放一条消息。在main goroutine中用select阻塞读取channel中的消息,读到后调用context包的cancel方法,在所有task goroutine的context Done通道中放一条消息, task goroutine读到消息后退出。
继续阅读