相比于使用一个中间件来“暴力”缓存接口的响应,提高接口查询速度而言,Repository缓存能更好的控制缓存粒度和更新时机。
🐕🦺 Expand More 🚀AMQP重连机制实现
在生产测试过程中频繁遇到Producer和Consumer无法发送到RabbitMQ的队列中去,查阅日志后发现错误‘channel/connection is not open’。结合阅读AMQP协议,因此实现了一个 Wrapper 来提供重连机制。
🐕🦺 Expand More 🚀TCP拆包与粘包:从字节流特性到应用层协议设计
在RPC协议设计或网络编程面试中,TCP的拆包与粘包是无法绕开的话题。本文探究其背后的原理,并展示如何在应用层优雅地解决这一问题。
🐕🦺 Expand More 🚀初识Ring Buffer
Ring Buffer是一个圆形的,首尾相接的数据结构,可以用作缓存。
LRU和LRU-K
LRU(Least Recently Used) 是一种根据数据的历史访问频率来淘汰数据的算法,而LRU-K是这种算法的变种之一,其他变种还包括:MQ,2Q
🐕🦺 Expand More 🚀介绍一下snowflake和rc4
snowflake是twitter公司开源的生成唯一ID的网络服务,具有很强的伸缩性,这里只取用生成唯一ID的算法部分。rc4(Rivest Cipher 4)是一种流加密算法,密钥长度可变,它的加解密使用相同的密钥,因此也属于对称加密算法。
go-watcher-热重载轮子
Golang编写的热重载工具,自定义命令,支持监视文件及路径配置,环境变量配置。这是一个重复的轮子~
goswagger入门手册
本文旨在记录使用goswagger过程中遇到的一些问题(只在生成文档方面,不涉及其他功能)。
🐕🦺 Expand More 🚀Go 语言实现 QR Code 生成器:从原理到实践
二维码(QR Code)在现代生活中无处不在。本文基于自研的 go-qrcode 库,介绍如何在 Go 语言中生成二维码,并深入探究其背后的编码与纠错原理。
🐕🦺 Expand More 🚀go-get遇到🧱的解决方法
解决方法有两种