Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml.

Thrift是一个可扩展、跨语言的服务开发框架。它使用代码生成引擎,形成了一个可以高效和无缝连接Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml等语言的开发栈。

Thrift使用IDL描述语言来定义软件服务,并经过它的编译器将IDL服务翻译成骨架文件以及通信协议代码。它通常被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。

阅读全文 »

Google Test,简称gtest,是Google出品的C++单元测试框架。基于该框架,我们可以编写和运行单元测试、集成测试和功能测试。我这一系列的博文,重点讲解gtest的使用方法和实现原理。

阅读全文 »

众所周知,我们在Linux系统上采用源码编译安装软件,一般就是 ./configure & make & make install 这三步。而 configure 是做什么用途?是怎么生成的?简单来说通过Autotools工具包以及辅助文件生成congfigure,然后该脚本文件生成定制化的Makefile。本系列文章,来探究Autotools的使用方法和实现原理。

阅读全文 »

从上文可知,目前已知有两处源代码下载地址,代码稍微不同,我们分别使用不同的源代码包进行编译安装。方法如下所述。

安装依赖项

1
2
$ sudo apt install zlib1g-dev
$ sudo apt install gettext

源代码编译(1)

使用如下命令进行编译安装:
下载地址:https://cdn.kernel.org/pub/software/scm/git
下载举例:https://cdn.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz

1
2
3
4
5
6
7
8
$ wget https://cdn.kernel.org/pub/software/scm/git/git-2.43.0.tar.gz
$
$ tar -zxvf it-2.43.0.tar.gz
$ cd git-2.43.0
$
$ ./configure --prefix=/home/mancode/apps/git/git-2.43.0
$ make
$ make install
阅读全文 »

学习Git源代码之前,需要熟练使用Git。本文收集Git相关图书、教程等资料,用于使用学习。

参考图书

书名 ISBN 作者 出版社 出版日期 备注
Pro Git 2nd 9781484200773 [美]Scott Chacon Apress 2014年09月 P, E, M
Pro Git 2nd 中文版 9781484200773 [美]Scott Chacon Apress 2014年09月 P, E
精通Git 第2版 9787115463067 [美]Scott Chacon 人民邮电出版社 2017年09月 P
Git团队协作 9787115454676 [加]艾玛.简.霍格宾.韦斯特比 人民邮电出版社 2017年05月 P
Git版本控制管理 第二版 9787115382436 [美]乔恩·罗力格 人民邮电出版社 2022年07月
Git从入门到精通 9787301305874 高见龙 北京大学出版社 2019年12月
Git学习指南 9787115436764 [德]普莱贝尔 人民邮电出版社 2023年04月 P
阅读全文 »

参考图书

书名ISBN作者出版社出版日期备注
云原生分布式存储基石:etcd深入解析 9787111611929 华为云容器服务团队 机械工业出版社 2018年11月 P
etcd技术内幕 9787121343865 百里燊 电子工业出版社 2018年07月 W
etcd工作笔记:架构分析、优化与最佳实践 9787113282219 朱荣鑫 中国铁道出版社 2021年10月

参考网站

ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Google的Chubby一个开源实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper以Fast Paxos算法为基础,Paxos算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos做了一些优化,通过选举产生一个leader ,只有leader才能提交proposer。因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解。

0x00 基础编程

书名ISBN作者出版社出版日期备注
从Paxos到Zookeeper:分布式一致性原理与实践 9787121249679 倪超 电子工业出版社 2021年01月 W
ZooKeeper:分布式过程协同技术详解 9787111524311 [美]Flavio Junqueira 机械工业出版社 2016年02月
阅读全文 »

原理分析

书名 ISBN 作者 出版社 出版日期 备注
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版) 9787111498582 龚正 电子工业出版社 2021-05-01 JB
Kubernetes网络权威指南:基础、原理与实践 9787121373398 杜军 电子工业出版社 2019-10-01 P,W,JB
Kubernetes源码剖析 9787121389146 郑东旭 电子工业出版社 2020-06-01 P,W
Kubernetes生产化实践之路 9787121399176 孟凡杰 电子工业出版社 2020年11月 W
Kubernetes实战:构建生产级应用平台 9787111705529 乔希 机械工业出版社 2022年06月 W
深入剖析Kubernetes 9787115560018 张磊 人民邮电出版社 2021-03-01
云原生Kubernetes全栈架构师实战 9787302603887 杜宽 清华大学出版社 2022-04-01 W
Kubernetes in Action中文版 9787121349959 [美]Marko Luksa 电子工业出版社 2019-01-01 P
精通Kubernetes 9787115536112 [美]吉吉·塞凡 人民邮电出版社 2020-07-01 W
Kubeflow: 云计算和机器学习的桥梁 9787121392771 何金池 电子工业出版社 2020-08-01 P,W
Kubeflow学习指南:生产级机器学习系统实现 9787111699378 特雷弗 机械工业出版社 2022-02-01 P,W
Linux网络安全技术与实现(第2版) 9787302278863 陈勇勋 清华大学出版社 2012年03月 P
阅读全文 »

crun是一个快速轻量级、低内存、全功能、符合OCI规范、用于运行容器的Runtime,与runc一样可以用于创建、部署容器,它使用C语言开发。

本文记录手工编译crun以及使用crun创建容器的方法,供后续学习源代码做准备。

阅读全文 »

参考图书

书名ISBN作者出版社出版日期备注
数据密集型应用系统设计 9781849510103 [美]Martin Kleppmann 中国电力出版社 2018-10-01 P
深入理解分布式事务:原理与实战 9787111692232 肖宇/冰河 机械工业出版社 2021-10-01 P
分布式系统架构:架构策略与难题求解 9787111724223 [美]Neal Ford等 机械工业出版社 2023-04-01
正本清源分布式事务之Seata 9787121421648 姜宇 电子工业出版社 2021-10-01
阅读全文 »

出了使用apt包管理器安装PostgreSQL之外,我们还可以自己手工编译源代码来安装。虽然自己编译,比较复杂,但我们却可以使用最新的版本。

本文记录使用源码编译的方法,安装PostgreSQL的过程。

阅读全文 »