- 博客(6)
- 收藏
- 关注
原创 go 关闭channel的正确方式
第 4 种情更为复杂一点,不能够像第 3 种情况那样直接在。1. 单sender,单receiver。2. 单sender,多receiver。3. 多sender,单receiver。4. 多sender,多receiver。监听到关闭信号后,不再向数据。,这样会导致重复关闭已关闭的。增加一个传递关闭信号的。因此需要再加个中间人。在发送端直接关闭即可。在发送端直接关闭即可。
2024-08-31 14:31:37 298
原创 mysql 脏读、幻读、不可重复读
在实际应用中,需要权衡事务隔离级别和系统性能之间的关系,来选择最合适的隔离级别。在不需要处理并发事务的场景中,可以选择更高的隔离级别以确保数据的一致性;而在并发性能要求较高的场景中,则可能需要选择较低的隔离级别。MySQL 中的脏读、幻读和不可重复读是由事务隔离级别引起的并发访问问题。这些问题可以通过调整事务隔离级别以及采取其他措施来解决。
2023-11-29 16:07:22 389 1
原创 redis缓存穿透、缓存击穿、缓存雪崩解决方案
请求数据的时候获取锁,若获取成功,则操作后释放锁;缓存数据库在整个系统不是必须的,也就是缓存宕机不会影响。如果因为设置了相同的过期时间,造成缓存集中失效;如果因为系统重启的时候,造成缓存数据消失;缓存穿透,数据最终压力依然堆积在。设置随机过期值或者其他机制错开失效时间;如果因为缓存数据库宕机,造成所有数据涌向。,有可能搞垮数据库,使整个服务失效;采用高可用的集群方案,如哨兵模式、表示一段时间内,缓存集中失效(也不存在,而且一直尝试读。)再去获取,当获取成功,取失败,则休眠一段时间(
2023-11-28 15:08:33 50
原创 如何处理消息队列中的消息丢失、重复、积压
在处理这些问题时,还需要考虑监控和报警机制,以便能够及时发现并解决潜在的问题。对于不同的消息队列系统,可能会有不同的特定解决方案,需要根据具体的场景和需求进行调整。
2023-11-28 14:49:38 202
原创 cgo编译失败的定位过程
尝试用了单独把该部分代码剥离出来,发现编译后的二进制文件没有库本身大,意识到动态库没有链接进去,用ldd命令查看发现果然没有动态链接库,之后在编译环境中安装了openssl库遂成功。在做一次项目过程中用到了cgo编译,c函数的代码直接写在go文件上,调用时总是panic。刚开始以为是cgo写的方法不对,又尝试了将c函数单独写入一个文件和编译成静态库的方法,还是不行,怀疑是c函数不能在多个地方重入的原因,遂更改,也还是不行。
2023-06-14 14:30:46 141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人