记录一次grpc的奇怪bug 1.起因今天和Python端商量好我这边使用go通过rpc方式调用Python的接口,发现死活调不通,用的是同一份proto文件,反复重启服务,检查协议版本发现还是解决不了,一直报下面的错误: 1gRPC call error: rpc error: code = Unavailable desc = connection error: desc = "error reading ser 2024-07-02 其他 #grpc
go zap日志库的使用 1. 前言在go项目中,日志记录是必不可少的一部分,可以帮助开发者调试和排查问题以及为系统的运行状况提供数据。本文介绍了go业内非常流行的zap日志库,同时结合Lumberjack实现日志的切割和归档。 2. zap 日志库2.1 为什么使用zapgo本身也有logger日志,但它仅有基本的日志级别,没有格式化日志的能力以及不提供日志切割,故舍弃。 zap官网描述Blazing fast, str 2024-06-27 Golang #zap
Docker 安装 Nginx 并挂载目录 1.拉取镜像1docker pull nginx 2.创建容器1docker docker run -d --name nginx -p 80:80 nginx Bash 执行 docker ps 查看 3.创建挂载目录为什么要创建挂载目录?因为docker容器内部有自己的文件系统,在主机创建挂载目录并关联 Nginx 容器的配置目录后,以后可以通过修改主机下的配置目录文件来直接影响到容器内 2024-06-18 Docker #Nginx
Docker国内最新可用镜像源 起因近期因为特殊原因国内可以的镜像源都挂了,找到了一个目前可使用的。 解决方案打开终端,设置 registry mirror 12345sudo tee /etc/docker/daemon.json <<EOF{ "registry-mirrors": ["https://dockerhub.icu"]}EOF 设置完 2024-06-16 Docker #images
Gin 结合 Gorm 开发示例 1.前言本文使用 Gin 和 Gorm 开发了一个增删改查的小项目。 2.安装 Gin 和 Gorm12go get -u github.com/gin-gonic/gingo get -u gorm.io/gorm 新建项目,main 函数import 他们的包 123"github.com/gin-gonic/gin""gorm.io/driver/mysql& 2024-06-15 Golang #gin #Gorm
Gin操作WebSocket并开启SSL 1.前言这段时间工作需求用到实现双工通信,因此选择WebSocket来开发,简单记录一下。 2.安装WebSocket在 Go 语言中操作 WebSocket 可以通过使用 gorilla/websocket 包来实现。 1go get github.com/gorilla/websocket 3.服务端代码123456789101112131415161718192021222324252627 2024-06-06 Golang #gin #websocket
Go 操作 Redis 1. 前言本文介绍如何在 Go 语言中使用 go-redis 包操作 Redis 的几种常见数据类型,包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。 2. 安装 go-redis 包使用 go get 命令安装 go-redis 包: Redis 版本小于等于 6,安装 v8 版本: 1go get github.co 2024-06-03 Golang #Redis
彻底卸载Nginx 1.停止Nginx1sudo service nginx stop 2.删除nginx及相关配置文件12sudo apt-get --purge remove nginxsudo apt-get autoremove 3.删除相关文件1234dpkg --get-selections|grep nginx #列举相关软件sudo apt-get --purge remove nginxsudo 2024-05-25 其他 #Nginx
后端开发环境快速搭建 1. 前言本文介绍了后端开发常用的环境配置以及常用中间件的安装。 2. 终端配置2.1 安装oh-my-zsh123sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh \ | sed 's|^REPO=.*|REPO=${REPO:-mirrors 2024-05-18 环境
关于缓存一致性的问题总结 0.前言记录一下面试过程中对于缓存一致性问题的回答方式,偏口语化。 对于解决这个问题我采取了两种策略,一种是超时剔除策略,一种是主动更新的策略。 1.超时剔除策略超时剔除的策略更多的可以依赖于redis对存储的数据设置TTL过期时间,当超时之后就剔除。适用于数据变更较小的低一致性的场景。 2.主动更新策略对于主动更新策略更多是程序员根据编码来实现数据一致性的问题,针对于对数据一致性要求较高且经常发 2024-05-07 面试 #interview