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

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

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

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

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

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

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

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

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

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

图文并茂解释内存池原理

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

XML 语法速查笔记

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

在 libevent 中使用 MariaDB(MySQL)

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

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

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

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

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

菜鸟的 GIS 基本概念学习

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

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

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

正则表达式速查笔记

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

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

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

Linux PostgreSQL 和 PostGIS 安装和使用

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

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

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

Makefile 速查笔记

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

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

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

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

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

研究一下 fork 的原理,并且还有 vfork 的一些使用场景

2017-07-29
阅读 2 分钟
7.3k
笔者一直试图从最基本的原理上去理解(甚至尝试原理性设计)一个服务器的架构,为此提出了一些问题。此外,笔者对 异步 I/O 也有不少学习。从几个方面学习了 vfork() 的用法。

在 C++ 中实现 super 关键字

2017-07-08
阅读 3 分钟
13.8k
我的工作历程是 C ==> Objective-C ==> C++,所以我的 OOP 习惯很大程度上是来自于 Objective-C 的。玩 C++ 的时候忽然就很不习惯了:因为没有 super 啊。于是就有了这篇文章。

Google Protocol Buffer(protoc, protobuf, pb)学习笔记

2017-07-07
阅读 4 分钟
24.5k
以前玩 C,Json、XML 什么的看多了,现在开始玩 C++,才发现我了解的世界太小了——原来 C++ 届还有 Google Protocol Buffers 这么好的东西。果然在 PC 上做开发真是好,不用考虑可执行程序的 size,可以放心放肆地用 C++。

基于 epoll 设计类似 libevent 的异步 I/O 库 - 接口

2017-06-13
阅读 4 分钟
6.4k
这篇文章可以算是我在 GitHub 上一个工程的设计概要了。简要说明了该工程的设计思路以及技术要点。 本文章纯原创,没有参考资料。不过有设计过程中记录下的相关文章: 使用 pipe 在程序正文中捕获和处理信号 本文地址:[链接] 工程简介 基本原理 总所周知,在 Linux 中实现异步 I/O,适用的系统 API 就是 epoll。这里主...

DNS 报文结构和个人 DNS 解析代码实现——解决 getaddrinfo() 阻塞问题

2017-05-10
阅读 5 分钟
23.2k
实际应用中发现一个问题,在某些国家/ 地区的某些 ISP 提供的网络中,程序在请求 DNS 以连接一些服务器的时候,有时候会因为 ISP 的 DNS 递归查询太慢,导致设备端认为 DNS 超时了,无法获取服务器 IP。

使用 pipe 在程序正文中捕获和处理信号

2017-05-03
阅读 2 分钟
4.6k
我的上一篇文章研究了一下如何在程序的正文(而不是信号处理函数)中捕获和处理信号。当时用的方案是 sigprocmask()。但那个方法理论上是可能漏掉一些信号的。

使用 sigprocmask 和 sigpending 在程序正文中捕获和处理信号

2017-04-20
阅读 4 分钟
6.3k
最近在尝试使用 epoll 写一个类似 libevent 的库。那么,如何像 libevent 一样,在 event loop 里加入对信号事件的观测呢?我查了一下资料,一个可行的方法,就是使用 sigprocmask() 及其相关功能来实现啦。

Swift 个人学习笔记 - 09: 属性

2017-03-25
阅读 2 分钟
2k
本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 本文地址:[链接] Reference: 原版...

Swift 个人学习笔记 - 08: 类和结构体

2017-03-10
阅读 2 分钟
2.4k
本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 本文地址:[链接] Reference: 原版...

Swift 个人学习笔记 - 07: 枚举

2017-03-09
阅读 3 分钟
2k
本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 本文地址:[链接] Reference: 原版...

Swift 个人学习笔记 - 06: 闭包(Clousures)

2017-03-01
阅读 2 分钟
2.6k
本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 本文地址:[链接] Reference: 原版...