Linux的进程间通信 2021-12-30 Linux 约 11248 字 预计阅读 23 分钟 进程间通信(IPC) 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内 阅读更多
Linux的进程线程模型 2021-12-30 Linux 约 18109 字 预计阅读 37 分钟 进程模型 在Linux系统中进程由以下三部分组成: 进程控制块PCB 有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度。同时,这 阅读更多
布隆过滤器实现 2021-12-07 架构 约 4748 字 预计阅读 10 分钟 前言 想象一下遇到下面的场景你会如何处理: 手机号是否重复注册 用户是否参与过某秒杀活动 伪造请求大量 id 查询不存在的记录,此时缓存未命中,如何避免缓 阅读更多
如何保证缓存一致性 2021-11-28 架构 约 4663 字 预计阅读 10 分钟 旁路缓存 在实际业务中,我们经常采用的一种缓存策略如下: 缓存-数据库读流程 用户发起查询请求 业务服务首先根据关键参数作为key查询缓存 如果数据在 阅读更多
Memchache和redis的选型对比 2021-11-28 架构 约 1856 字 预计阅读 4 分钟 memcache memcache 提供简单的 kv cache 存储,value 大小不超过1mb。 我使用 memcache 作为大文本或者简单的 kv结构使用。 memcache 使用了slab 方式做内存管理,存在一定的浪费 阅读更多
MySQL如何实现ACID 2021-11-24 MySQL 约 8570 字 预计阅读 18 分钟 基础概念 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行 阅读更多
分布式CAP和ACID和BASE理论 2021-11-24 架构 约 8422 字 预计阅读 17 分钟 CAP 定义 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partit 阅读更多
Go如何使用MySQL的XA事务 2021-11-23 Go实践 约 5171 字 预计阅读 11 分钟 MySQL的XA事务 介绍 在开发中,为了降低单点压力,通常会根据业务情况进行分表分库,将表分布在不同的库中(库可能分布在不同的机器上),但是一 阅读更多
分布式事务实现原理 2021-11-19 架构 约 16876 字 预计阅读 34 分钟 事务 把多条语句作为一个整体进行操作的功能,被称为数据库事务。数据库事务可以确保该事务范围内的所有操作都可以全部成功或者全部失败。 事务具有 4 个 阅读更多
获取系统和硬件信息:gopsutil 2021-11-15 Go三方库 约 4097 字 预计阅读 9 分钟 简介 gopsutil是 Python 工具库psutil 的 Golang 移植版,可以帮助我们方便地获取各种系统和硬件信息。gopsutil为我们屏蔽了各个系统之间的差 阅读更多
BBR自适应限流算法实现 2021-11-14 服务治理 约 10573 字 预计阅读 22 分钟 TCP-BBR 算法 BBR(Bottleneck Bandwidth and Round-trip propagation time)是 Google 近年来提出的拥塞控制算法,诞生后大幅度提高了在高延迟等情况下网络传输的吞吐。从命名就 阅读更多
服务隔离与多集群设计 2021-11-11 架构 约 2312 字 预计阅读 5 分钟 隔离 隔离,本质上是对系统或资源进行分割,从而实现当系统发生故障时能限定传播范围和影响范围,即发生故障后只有出问题的服务不可用,保证其他服务仍 阅读更多
什么是云原生 2021-09-18 架构 约 1566 字 预计阅读 4 分钟 基本概念 公有云、私有云、混合云 构建可弹性扩展的应用 代表技术:容器、服务网格、微服务、不可变基础设施、声明式 API 容错性好、易于管理、便于观察的松 阅读更多
如何保证服务的稳定性 2021-09-18 架构 约 1376 字 预计阅读 3 分钟 方法论 事前 容量评估: 根据过往情况评估业务系统性能指标、容量指标 国内做的好的某巨头公司(你们应该知道是哪家),大促期间的系统性能,监控数据都是 阅读更多
Go如何多版本管理 2021-09-18 Go实践 约 2376 字 预计阅读 5 分钟 为什么需要多个 Go 版本 有些人可能觉得没有这样的需求。实际工作中,这样的需求还是很常见的。以下一些场景,可能会希望有多版本: 一般为了稳定,线上版 阅读更多
Goroutine的编排实践 2021-09-15 Go实践 约 4451 字 预计阅读 9 分钟 任务编排 这里的编排既指安排 goroutine 按照指定的顺序执行,也指多个 chan 按照指定的方式组合处理的方式。goroutine 的编排类似“击鼓传花”的例子,我们 阅读更多
服务发现方案介绍 2021-09-11 架构 约 1138 字 预计阅读 3 分钟 服务端服务发现(server side discovery) 在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如 F5,或者基于软件如 L 阅读更多
Go Perfbook 2021-09-11 Go调优 约 15471 字 预计阅读 31 分钟 编写和优化Go代码 本文档概述了编写高性能Go代码的最佳实践。 虽然有些讨论会提高单个服务的速度(通过缓存等),但设计高性能的分布式系统已经超出 阅读更多
哈希算法与哈希表介绍 2021-09-11 编解码 约 8147 字 预计阅读 17 分钟 哈希算法 下面简单介绍下几种比较常用的加密哈希算法: MD5 MD5 即 Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一 阅读更多
使用jemalloc在Go中手动管理内存 2021-09-11 Go三方库 约 6274 字 预计阅读 13 分钟 前言 Dgraph实验室自2015年成立以来一直是Go语言的用户。五年过去了,200K行的Go代码,我们很高兴地告诉大家,我们仍然相信Go是并 阅读更多