Toggle navigation
LiZ'blog
Home
About
Tags
Tags
keep hungry keep foolish
linux
virtualBox
pgsql
api
RESTful
go
PostgreSQL
Lock
error
postgresql
interface
docker
mongo
k8s
gc
bazel
helm
gitlab-runner
ConfigMap
Secret
PV和PVC
etcd
raft
设计模式
算法
消息队列
Redis
Tcp
plan
Linux
tcp/ip
MySQL
Docker
MongoDB
业务思考
随笔
架构
AI
充值
linux
virtual box设置网络,使用nat网络和仅主机(Host Only)网络进行连接
virtual box设置网络,使用nat网络和仅主机(Host Only)网络进行连接
virtualBox
virtual box设置网络,使用nat网络和仅主机(Host Only)网络进行连接
virtual box设置网络,使用nat网络和仅主机(Host Only)网络进行连接
pgsql
PostgreSQL中的B-TREE索引
PostgreSQL中的B-TREE索引
EXPLAIN分析pgsql的性能
EXPLAIN分析pgsql的性能
数据库的设计规范
数据库的设计规范
api
RESTful API设计
RESTful API设计
RESTful
RESTful API设计
RESTful API设计
go
使用 docker-compose 部署 golang 的 Athens 私有代理
部署 go 中的私有代理
go 中 go mod 如何使用
如何配置和使用 go mod
go 中 sync.Map 源码刨铣
go 中 sync.Map 使用,源码刨铣
go 中 sort 包排序使用,源码刨铣
go 中的 sort 排序功能如何使用,排序功能如何实现的,源码阅读
gitlab-runner自动化构建go项目
gitlab-runner使用bazel和helm实现go项目的自动化构建
Bazel使用了解
Bazel使用了解,部署go应用
记go中一次http超时引发的事故
记go中一次http超时引发的事故
使用kubespray部署k8s
使用kubespray部署k8s
使用vagrant搭建centos虚拟机
使用vagrant搭建centos虚拟机
记一次go中map并发引起的事故
记一次go中map并发引起的事故
go中的panic源码解读
go中发生panic具体是如何处理的呢?
go中如何控制goroutine的数量
go中如何控制goroutine的数量,goroutine的复用?
go中semaphore源码解读
go中的semaphore是如何实现的?
go中x-sync.semaphore源码解读
go中的x-sync.semaphore是如何实现的?
go中sync.RWMutex源码解读
go中的sync.RWMutex是如何实现的?
go中sync.Mutex源码解读
go中的sync.Mutex是如何实现的?
go中sync.Cond源码解读
go中的sync.Cond是如何实现的?
go中sync.Once源码解读
go中的sync.Once是如何实现的?
go中errgroup源码解读
go中的errgroup是如何实现的?
go中waitGroup源码解读
go中的waitGroup是如何实现的?
go中atomic
go中的atomic源码分析
go中unsafe
go中的unsafe包分析
go中内存对齐分析
什么是内存对齐,go中内存对齐分析
go中context源码刨铣
go中context源码刨铣
字符编码笔记
字符编码笔记
go中string是如何实现的呢
go中string是如何实现的呢
go中的内存泄露排查
go中的内存泄露排查
什么是内网穿透
什么是内网穿透
理解flannel网络
理解flannel网络
二进制部署k8s
二进制部署k8s
gRPC学习小札
gRPC相关的tokenen校验,证书认证,restful接口互转
go中channel源码剖析
channel
docker-compose部署mongo的replica set
docker-compose部署mongo的replica set
docker配合Nginx部署go应用
docker配合Nginx部署go应用
go中的类型转换成interface之后如何复原
go中的类型转换成interface之后如何复原
MYSQ创建联合索引,字段的先后顺序,对查询的影响分析
MYSQ创建联合索引,字段的先后顺序,对查询的影响分析
Markdown自动生成目录
Markdown自动生成目录
defer笔记
defer笔记
PostgreSQL
pgsql中的行锁
pgsql中的行锁
RECURSIVE使用小结
RECURSIVE使用小结
Lock
pgsql中的行锁
pgsql中的行锁
error
go中的error小结
go中的error
postgresql
centos7下安装postgresql-10.3
centos7下安装postgresql-10.3
interface
go中的类型转换成interface之后如何复原
go中的类型转换成interface之后如何复原
docker
docker-compose部署mongo的replica set
docker-compose部署mongo的replica set
docker配合Nginx部署go应用
docker配合Nginx部署go应用
mongo
docker-compose部署mongo的replica set
docker-compose部署mongo的replica set
k8s
k8s 为什么会抛弃docker
k8s 为什么会弃用docker
k8s中的网络
k8s 中的网络
容器中的网络
docker 容器如何进行网络通信
声明式API和命令式API对比
k8s 中的声明式 API
Docker 容器原理分析
Docker 是如何工作的,原理分析
k8s中ingress
k8s 中的 ingress 如何使用
k8s中的service如何找到绑定的Pod以及如何实现Pod负载均衡
k8s 中的 service 如何调度后面的 pod,如何实现负载均衡
k8s 中 Pod 的控制器
k8s 中 Pod 都有那些控制器
k8s 中 Pod 的深入了解
k8s 中 pod 使用细节
k8s中几个基本概念的理解
k8s 中 pod,service,ingress 的作用
k8s中的PV和PVC理解
k8s中的PV和PVC理解
k8s中的Secret理解
k8s中的Secret理解
k8s中的ConfigMap理解
k8s中ConfigMap几种类型的使用
helm(V3)使用了解
helm(V3)使用了解
什么是内网穿透
什么是内网穿透
理解flannel网络
理解flannel网络
二进制部署k8s
二进制部署k8s
gc
go中内存对齐分析
什么是内存对齐,go中内存对齐分析
bazel
gitlab-runner自动化构建go项目
gitlab-runner使用bazel和helm实现go项目的自动化构建
helm
gitlab-runner自动化构建go项目
gitlab-runner使用bazel和helm实现go项目的自动化构建
gitlab-runner
gitlab-runner自动化构建go项目
gitlab-runner使用bazel和helm实现go项目的自动化构建
ConfigMap
k8s中的ConfigMap理解
k8s中ConfigMap几种类型的使用
Secret
k8s中的Secret理解
k8s中的Secret理解
PV和PVC
k8s中的PV和PVC理解
k8s中的PV和PVC理解
etcd
ETCD对比Consul和zooKeeper如何选型
ETCD对比Consul和zooKeeper如何选型
ETCD中的存储实现
ETCD中的存储实现
ETCD中Lease如何续期
ETCD中Lease如何续期
ETCD中raft如何实现线性一致性
ETCD中raft如何实现线性一致性
ETCD中raft实现源码解读
ETCD中raft实现源码解读
ETCD的Raft一致性算法原理
ETCD的Raft一致性算法原理
centos7中部署etcd
centos7中部署etcd
grpc使用etcd 做服务发现
grpc使用etcd 做服务发现
etcd使用
etcd使用场景
etcd中watch的源码实现
etcd中watch的源码实现解读
raft
ETCD对比Consul和zooKeeper如何选型
ETCD对比Consul和zooKeeper如何选型
ETCD中的存储实现
ETCD中的存储实现
ETCD中Lease如何续期
ETCD中Lease如何续期
ETCD中raft如何实现线性一致性
ETCD中raft如何实现线性一致性
ETCD中raft实现源码解读
ETCD中raft实现源码解读
ETCD的Raft一致性算法原理
ETCD的Raft一致性算法原理
设计模式
中介者模式
设计模式学习,使用golang实现中介者模式
解释器模式
设计模式学习,使用golang实现解释器模式
命令模式
设计模式学习,使用golang实现命令模式
备忘录模式
设计模式学习,使用golang实现备忘录模式
访问者模式
设计模式学习,使用golang实现访问者模式
迭代器模式
设计模式学习,使用golang实现迭代器模式
状态模式
设计模式学习,使用golang实现状态模式
责任链模式
设计模式学习,使用golang实现责任链模式
模板模式
设计模式学习,使用golang实现模板模式
观察者模式
设计模式学习,使用golang实现观察者模式
享元模式
设计模式学习,使用golang实现享元模式
组合模式
设计模式学习,使用golang实现组合模式
外观模式
设计模式学习,使用golang实现外观模式
适配器模式
设计模式学习,使用golang实现适配器模式
装饰模式
设计模式学习,使用golang实现装饰器模式
桥接模式
设计模式学习,使用golang实现桥接模式
代理模式
设计模式学习,使用golang实现代理模式
原型模式
设计模式学习,使用golang实现原型模式
建造者模式
设计模式学习,使用golang实现建造者模式
单例模式
单例模式学习,使用golang实现单例模式
一些常用的代码规范
如何写出优良的代码,一些常用的代码规范
策略模式学习
策略模式学习,使用go实现策略模式
工厂模式学习
使用go语言学习工厂模式
如何画UML
如何画UML,几种简单的模型分析
算法
如何使用分治算法的思想,分治的技巧详解
如何使用分治,有哪些需要注意的点
如何使用递归,递归使用的技巧详解
如何使用递归,有哪些需要注意的点
算法中的复杂度分析
什么是空间复杂度和时间复杂度,如果和分析
消息队列
RabbitMQ 中的分布式模式,普通 cluster 模式的构建
RabbitMQ 中分布式的三种模式cluster,federation,shovel,不同模式之间的区别,普通 cluster 模式的构建
RabbitMQ中 prefetch_count,死信队列和延迟队列的使用
RabbitMQ中使用prefetch_count优化,通过死信队列和延迟队列实现消息的定时重传
RabbitMQ,RocketMQ,Kafka 事务性,消息丢失,消息顺序性和消息重复发送的处理策略
常见消息队列中事务,消息丢失,消息顺序性,消息重复发送的处理方式
RabbitMQ,RocketMQ,Kafka 消息模型对比分析
常见消息队列的消息模型分析
RabbitMQ,RocketMQ,Kafka,Pulsar 几种消息队列的对比
如何选择最适合自己的消息队列
Redis
Redis 中的事务分析
Redis 中的事务可以满足ACID属性吗?
Redis 中的原子操作(3)-使用Redis实现分布式锁
如果使用 Redis 实现分布式锁
Redis 中的原子操作(2)-redis 中使用Lua来保证命令的原子性
Redis 中使用组合命令,如何保证命令的原子性呢?
Redis 中的原子操作(1)-Redis 中命令的原子性
Redis 中引入了多线程,命令的执行是如何保证原子性的呢?
如何使用 Redis 缓存
Redis 作为缓存,经常遇到的几种情况:缓存中的数据和数据库中的不一致;缓存雪崩;缓存击穿和缓存穿透
go 中 select 源码阅读
go 中 select 中是如何监听多个 channel 的
Redis 中的过期键如何删除
Redis 中的过期删除策略和内存淘汰机制
Redis 中的 set 和 sorted set 如何使用,源码实现分析
Redis 中的 set 和 sorted set 如何使用,源码实现分析
Redis 中实现消息队列的几种方法
Redis 中使用 list,Streams,pub/sub 几种方式实现消息队列
Redis 中 String 类型的内存开销比较大
Redis 中 String 类型内存开销比较大,来了解下那些地方比较浪费内存
Redis 中常见的集群部署方案
Redis 中几种集群部署方案,切片集群,哨兵模式
Redis 中如何保证数据不丢失,持久化是如何进行的
Redis 中数据存储在内存中,如何保证数据不丢失
为什么 Redis 的查询很快
为什么 Redis 的查询总是很高效呢
Tcp
什么是跨域,后端工程师如何处理跨域
作为服务端开发应该了解的跨域知识点
plan
Redis 切片集群的数据倾斜分析
Redis 切片集群中如果出现数据倾斜如何处理?
一个4年后端开发的职业生涯
职业规划真的很好做吗?
Linux
机械硬盘和ssd固态硬盘的原理分析
机械硬盘和ssd固态硬盘有什么差别,数据是如何写入和存储的呢?
tcp/ip
什么是三层网络
为什么网络要分成三层,有什么优点
计算机网络-DNS和HTTPDNS
使用 HTTPDNS 替代 DNS
计算机网络-应用层
计算机网络中应用层的作用
计算机网络-运输层
计算机网络中运输层的作用
计算机网络-网络层
计算机网络中网络层的作用
计算机网络-数据链路层
计算机网络中数据链路层的作用
计算机网络-物理层
计算机网络中物理层的作用
计算机网络为什么要分层
计算机网络是个非常复杂的系统,相互通信的两个计算机必须高度协调工作,但是这种协调是很复杂的,分层可以将庞大复杂的问题,转化成若干个较小的局部问题,这些局部的较小的问题就比较易于研究和处理。
MySQL
MySQL 中阻塞语句的定位和分析
MySQL 中分析和定位阻塞的语句
MySQL 中的分区表
MySQL 中的分区表
MySQL 中的主从数据同步延迟
MySQL 中的主从数据同步,会存在数据延迟吗
MySQL 中的高可用架构部署方式都有哪些
MySQL 中常见的高可用部署架构?
MySQL 中有哪些类型的索引,如何优化索引,索引是如何实现的
MySQL 中索引是如何实现的?
MySQL 中的锁有哪些类型,MySQL 中加锁的原则
MySQL 中在什么场景下会加锁呢?
MySQL 中的事务理解
MySQL 中的事务有四大特性是什么,是如何实现的呢?
MySQL 中一条 sql 的执行过程
MySQL 中一条 sql 的执行需要用到那些模块
Docker
复原 docker 容器的启动命令
docker 容器如何查看启动的命令
MongoDB
MongoDB 中的分布式集群架构
MongoDB 中的有哪些分布式集群架构?
MongoDB 中的事务
MongoDB 中支持事务吗?
MongoDB 中的锁
MongoDB 中在什么条件下会加锁呢?
MongoDB 中的索引分析
MongoDB 中建索引有哪些注意条件呢?
MongoDB 中的 explain 使用
如何判断 MongoDB 中索引计划创建的是否合理
MongoDB 介绍
什么是 MongoDB,MongoDB 对比 MySQL 有什么特点
业务思考
苹果支付
苹果支付有哪些坑,为什么苹果支付比支付宝和微信容易丢单?
随笔
2023年度总结
2023年度总结
架构
架构学习-什么是工程师思维
架构学习-什么是工程师思维
架构学习-多任务
架构学习-多任务
架构学习-编程语言的演进
架构学习-编程语言的演进
AI
AIGC-ai小说推文
AIGC-ai小说推文
充值
充值遇到的到账延迟
充值遇到的到账延迟