用 Docker 在单台宿主机启动多个 etcd 节点

2021-02-24
阅读 4 分钟
4.8k
在学习和开发基于 etcd 的服务和功能时,需要自己在本地部署一套 etcd 集群。原以为这是一个简单的事情,但意外地花了我几个小时才搞定……本文介绍有效的部署方法和踩过的一些坑。
封面图

入门 Kafka 你所需要了解的基本概念和开发模式

2020-12-22
阅读 6 分钟
2.7k
团队在日常工作中,一般情况下使用的消息队列是腾讯云 CKafka。CKafka 提供了高可靠的开箱即用消息队列能力,让我们在日常能够放心使用,减少花在运维上的投入。不过即便如此,我们还是需要学习 Kafka 的一些基本概念和功能,从而在实际应用中嗯能够充分高效、高质量地利用 Kafka 的能力。

小面试官教你 MySQL——引擎、索引和算法

2020-12-01
阅读 5 分钟
4.8k
我在面试中,经常喜欢针对 MySQL 的知识由浅入深地问下去,了解候选人对 MySQL 知识的了解到了哪一个层级。上一篇文章中的那些知识太基础了,我是不会拿来问的。因此我会问的第一个问题必然是 MySQL 的索引。

小面试官教你 MySQL —— 简介和功能

2020-11-04
阅读 3 分钟
3.4k
MySQL 是我们作为后台开发中非常重要的软件。前段时间作为面试官,面试了几位后台开发的候选人——MySQL 的知识由浅入深一路问下去,并没有人能够完整地回答出来。

还在用 map[string]interface{} 处理 JSON?告诉你一个更高效的方法——jsonvalue

2020-08-10
阅读 7 分钟
21.2k
本文介绍的是 jsonvalue 库,这是我个人在 Github 上开发的第一个功能比较多而全的 Go 库。目前主要是在腾讯未来社区的开发中使用,用于取代 map[string]interface{}。

用 etcd/raft 组建能够选举的最简集群 demo

2020-07-06
阅读 6 分钟
3.7k
当今互联网行业中,对于分布式一致性算法,个人觉得实用性最高并且应用最广泛的就是 Raft 算法了。Raft 非常适合用于所有的节点均为可信节点时的必要数据同步场景中。Raft 的基本原理理解起来并不难,网上很多文字简介,都不如一个很生动的动画来得直观。

JSON 序列化中的转义和 Unicode 编码

2020-05-31
阅读 2 分钟
17.6k
其实这是我上一篇文章的姊妹篇。在研究 Unicode 颜文字的时候,由于我们的数据传输是通过 JSON 串来完成的,在对颜文字进行转码传输的过程中,也发现了一个问题。解决问题之后,便有了本总结文。

Unicode 颜文字(emoji)格式和 Go 代码处理

2020-03-22
阅读 5 分钟
11.5k
前几天时间测试同学在我们的前端输入了颜文字,之后软件就出 bug 了。借修 bug 机会我花了点时间学习了一下 Unicode 颜文字(emoji)的一些知识。本文记录我对 emoji 的一些认识,并且简单介绍一下我为此而做的一个 Go 语言颜文字提取库的用法。

如何写高大上的 godoc(Go 文档)

2019-11-08
阅读 5 分钟
14.1k
点击徽章,就可以打开 godoc.org 的网页,网页中给出了这个开源项目所对应的 Go 文档。作为 Go 语言的新手,我一度以为,godoc.org 上面的文档是需要开发者上传并审核的——要不然那些文档咋都显得那么专业呢。

Go 语言 time 包常用用法笔记

2019-11-08
阅读 4 分钟
12.8k
Go 的时间操作基本上都用 time 包,比 C 的 time 函数和 timeval 等 struct 好用多了。不过 time 包还是有不少用法和其他语言不同的,所以有必要写个笔记记录一下。

MySQL/MariaDB 语句速查笔记

2019-07-04
阅读 2 分钟
2.8k
平时实际开发的时候,其实并不太依赖 MySQL 作为 关系型数据库 中的 “关系” 这一属性,更多地只是把 MySQL 作为数据存储的介质。因此 MySQL 语句其实很少写,所以本文用于记录一些 MySQL 在常规数据操作中的常用语法,备查。少用或者不用的知识就不列了。

腾讯 Tars Web 管理端用户体系对接

2019-07-03
阅读 4 分钟
4.5k
这段时间一直在基于 Tars 作开发。最近的文章也多是针对 Tars 的一些学习笔记。前面我们搭建了 Tars 基础框架,打开了 Tars web 管理界面进行服务的运维操作。不过读者肯定很快就会发现:这好像不用登录啊,那怎么保证只有有权限的用户才能更改服务呢?

腾讯 Tars-Go 服务获取自定义模版(配置)值

2019-02-25
阅读 5 分钟
5.4k
腾讯 Tars 框架中,有两种可以称之为 “配置” 的地方:其中一个是可以自定义的,在 Tars 管理页面中称为 “服务配置”。在这里,可以按照开发者喜欢的格式上传文件,并且支持配置的热更新。

腾讯 Tars-Go 服务 Hello World——从 HTTP 开始

2019-01-12
阅读 5 分钟
8.1k
本人上一篇文章《腾讯 Tars 基础框架手动搭建》简单介绍了 Tars 框架及其搭建方法。在我们的实际应用中,目前基于 Taf / Tars,主要采用 Node.js 和 C++ 进行开发。对于 C++ 程序员来说,目前最热门的后台开发语言莫过于 Google 的 Go。Tars 框架最新的版本已经把内部的 Taf-Go 开源为 Tars-Go。作为与时俱进的程序员,...

腾讯 Tars 基础框架手动搭建——填掉官方 Guide 的坑

2018-12-22
阅读 11 分钟
8.7k
腾讯 Tars 是腾讯内部使用的 TAF(Tencent Application Framework)的对外开源版,去掉了许多冗杂多余的部分。该框架集开发、运维、微服务、RPC 等为一体。对程序员而言,这就是一个能够快速搭建整个微服务体系的开发框架。这个框架支持基于 C++、Node.js、PHP、Java 等语言开发,最新版本已经支持后台开发语言新贵——Go。

一张图清晰解释微信三方平台获取授权流程

2018-12-17
阅读 3 分钟
9.8k
微信公众平台体系,大家最为熟悉的,一个是公众号,另一个就是小程序。如果需要使用公众号的高级功能,那么大家首先想到的就是自组开发团队来干这些活儿。绝大多数情况下,公众号运营方会把这些工作外包出去;但是外包出去之后会有一个风险:账号的所有权总不能外包出去吧,万一有风险,我能够把外包工作收回。

图文并茂解释内存池原理

2018-11-13
阅读 4 分钟
7.9k
在 C 语言的动态申请内存技术中,相比起 alloc/free 系统调用,内存池(memory pool)是与现在系统中请求一大片连续的内存空间,然后在运行时根据实际需要分配出去的技术。使用内存池的优点有:

XML 语法速查笔记

2018-10-11
阅读 3 分钟
2.8k
相比起 Json,XML 是一种相对古老和复杂、但功能更加强大的数据存储/传输格式。也因为其复杂,有一些语法需要记录一下,在使用多种语言进行 XML 操作的时候备查。

在 libevent 中使用 MariaDB(MySQL)

2018-10-02
阅读 4 分钟
6.2k
在之前我翻译的官方文档中提到了 MariaDB 提供了对异步 I/O 的支持。那篇文章是一个比较简要的介绍。不过实际适配中,官方也提供了一个完整适配 libevent 的示例代码。本文算是对我上述示例代码的阅读笔记吧。

在 C/C++ 异步 I/O 中使用 MariaDB 的非阻塞接口

2018-09-14
阅读 5 分钟
6.5k
对 C/C++,MySQL 提供的库传统上都是阻塞操作,因此适合多线程 / 进程服务器架构编程。但是如果用 C/C++ 编写服务器,往往对性能会有极致要求,此时采用非阻塞的异步 I/O 才是更好的框架。

基于汇编的 C/C++ 协程 - 实现

2018-08-01
阅读 8 分钟
8.6k
基于汇编的 C/C++ 协程(用于服务器),我之前已经在下面两篇文章中详细阐述了原理: 基于汇编的 C/C++ 协程 - 背景知识 基于汇编的 C/C++ 协程 - 切换上下文 而这篇文章,就终于是 C/C++ 协程的实现了。正如上面两篇文章所说的,我们需要实现的目标有两个: 有同步式服务器编程的顺序思路,便于功能设计和代码调试——我...

菜鸟的 GIS 基本概念学习

2018-07-18
阅读 5 分钟
16.5k
因为一些缘故,工作中了解了一下 GIS。本文算是菜鸟的学习笔记吧,如有错误,衷心希望专业的 GIS 同学指正~ 本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 原文最早发布于:[链接],同为本人的专栏。 Reference 地理信息系统导论(原著第八版) ArcGIS for Server入门教程 用 ArcGIS绘...

Python 调用 C 动态链接库,包括结构体参数、回调函数等

2018-02-23
阅读 6 分钟
18.9k
研究了一些资料,采用 python 的 ctypes 来完成这项工作。已经验证通过,本文记录一下适配流程。验证采用 cpp 来设计,不过暂时还没有涉及类的内容。以后如果需要再补足。

正则表达式速查笔记

2018-02-20
阅读 2 分钟
3.6k
和之前我的 Makefile 速查笔记 一样,正则表达式也是相对少用,但是一旦用起来也挺复杂的知识。所以本文记录一下正则表达式的常用要点,备查。 本文地址:[链接] 参考资料 《学习正则表达式》,Michael Fitzgerald regexper:这是个图形化的分析器,首先推荐 regexpal.com regexr.com 正则表达式基本 匹配单个字符 匹配...

基于汇编的 C/C++ 协程 - 切换上下文

2018-02-06
阅读 5 分钟
9.1k
其中调度,其实在技术实现上与其他的线程、进程调度没有什么特别的差异,同时也要看具体业务的需求。限制 C/C++ 协程应用的最大技术条件是上下文切换。理由在前文也说了。

Linux PostgreSQL 和 PostGIS 安装和使用

2018-02-05
阅读 5 分钟
14.7k
最近研究基于 GeoServer 的开源 GIS 框架,其中构建 GIS database 需要使用 PostgreSQL + PostGIS 插件。花了些时间学习,这里记录一下。如有错误,感谢不吝指正~~

基于汇编的 C/C++ 协程 - 背景知识

2018-01-31
阅读 4 分钟
8.2k
近几年来,协程在 C/C++ 服务器中的解决方案开始涌现。本文主要阐述以汇编实现上下文切换的协程方案,并且说明其在异步开发模式中的应用。 本文地址:[链接] 首先,我们来看一下 C/C++ 服务器开发的历史。 参考资料 协程 - 维基百科,自由的百科全书 异步IO - 维基百科,自由的百科全书 基于 epoll 设计类似 libevent 的...

Makefile 速查笔记

2017-11-21
阅读 6 分钟
8.9k
做 Linux C++,一个稳定的工程,Makefile 是很少改动的。但是如果需要修改的时候,Makefile 的语法和用法一时半会就回忆不出来(原谅我记忆力差……)。在此把自己以前的 Makefile 学习笔记记录一下吧,也作为分享。本文假设读者已经懂得了 Makefile,因此主要是作为备忘和速查用。

高性能磁盘 I/O 开发学习笔记 -- 软件手段篇

2017-11-02
阅读 4 分钟
10.5k
上一篇文章我们讲了一下硬盘(磁盘 & SSD)在硬件上的一些限制,总结了两个优化硬盘 I/O 的方向。本篇我们就从 Linux 软件开发的角度,讲一下在软件设计中我们应该如何提高硬盘 I/O。

高性能磁盘 I/O 开发学习笔记 -- 硬件原理篇

2017-10-27
阅读 5 分钟
7.2k
曾经做嵌入式开发的我,现在做服务器开发,很多思路要转变。今天学习了服务器高性能IO设计,同时自己也还发散开去学习了其他的一些参考资料,顺便结合自己已有的一些知识,做为自己的学习笔记,总结和记录一下吧~~