Juya Cai

GoCache技术点记录

简历描述 gCache(分布式缓存) 项目描述:该项目是参考groupcache实现的一个分布式缓存,其可以作为单独服务部署,亦可以作为一个lib来用,实现了分布式缓存节 点通信机制,并发访问控制机制,同时在原项目的基础上,增加了热点互备,TTL机制,基于etcd的服务注册发现等功能 主要工作: 实现基于HTTP+protobuf的分布式缓存节点通信机制 使用一致性哈希算法解决...

protobuf序列化反序列化原理剖析

protobuf的数据类型大致可以分为以下几种: 变长编码类型Varints 固定32bits类型 固定64bits类型 有长度标识的变量 根据这些类型,编码方式也就分成四种。下面我来一一介绍一下不同数据类型的编码方式。 Varints编码 Varints编码用于处理变长编码类型。 核心思想其实就一句话:数字小的占用空间小,数字大的占用空间大。那要如何实现这个结果呢...

MySQL集群主从复制原理剖析

为了提高系统数据的高可用,通常会集群化部署MySQL,MySQL中又是使用了什么技术来实现其高可用的呢?答案是主从复制。主从复制保证集群内MySQL的数据保持一致性。主从复制的前提是binlog。 binlog 什么是binlog?binlog是Mysql Server层提供的在表结构或者表数据发生修改的时候进行保存的日志。每产生一条更新操作时,Server层就会产生一条binlog,在...

春季实习面试备战指南

前言 在一月份的实习面试中发现不少问题和需要进行补充的地方,在2月份的春季实习面试开始前,进行一些针对性的准备和学习,在这里发帖记录需要学习的内容。 需要准备的内容大致可以分为两个方向:cpp方向和go方向。由于cpp岗是在太少、加上就业形势不好,全部押宝cpp实在不是明智之举,因此打算在这个寒假多学一门语言 / GO。不过学习一门语言需要掌握的模块基本一致,可以快速速成。速成完语言学习后...

使用单例模式编写工具类范式

单例模式是最常用的设计模式之一,当类对象只需要一个实例、或者重复创建的无意义且消耗资源的时候需要,通常用于全局唯一工具类的编写,比如:日志、配置、uuid生成器等。单例类需要提供一个全局访问的入口 / global access point。下面仅讨论cpp下单例类的实现。 cpp中单例类的编写范式有两种:Meyer’s Singleton 、 Lazy Singleton 和 Eager...