Posts
All the articles I've posted.
-
Nginx 模块开发 Hello World
最近在研究如何利用 Nginx 实现高性能网关,这里记录一下开发 Nginx 扩展模块 Hello World。 编译安装 Nginx 下载 Nginx 源代码,解压,进入源代码目录: 编译,安装 Nginx 到指定目录: 命令中使用了参数 是指将 Nginx 安装到目录 。 修改 ,调整 ...
-
Nginx 作 WebService 反向代理
WebService 对外提供 SOAP 接口,SOAP 接口基于 HTTP XML,因此,可以使用 Nginx 作用 WebService 的反向代理,以实现 WebService 请求的负载均衡功能。 本文使用 docker-compose 部署 nginx,有关 docker-compo...
-
Hexo 网站支持 HTTP/2
HTTP/2 具有以下的特性: 采用二进制传输数据 基于流的多路复用 头部压缩 服务端推送 由于 HTTP/2 可以提升网站访问速度,因此,本人决定对个人站点 Leo 的博客 进行 HTTP/2 升级改造。 leehao.me 网站采用 Ngninx Hexo NexT 实现,有关部署细节可以...
-
CMake 入门教程
文章 CMake 语言 15 分钟入门教程 介绍了 CMake 语言的基础知识,本文在此基础上,进一步说明说明如何利用 CMake 生成 Makefile,并实现编译安装功能。 CMake 除了可以生成 Makefile 外,还可以生成以下 IDE 的编译文件: Xcode Visual St...
-
GitLab 实现 C++ 项目持续集成
Gitlab 集成了 CI / CD (Continuous Integration,持续集成 / Continuous Delivery,持续交付)功能。下图是 gitlab 官网上有关 ci / cd 各阶段的图示: 本文重点讲述如何利用 gitlab 实现 c+项目的持续集成。 安装 g...
-
CMake 语言 15 分钟入门教程
cmake 是一个跨平台的编译安装工具,可以用简单的语句来描述所有平台的编译安装过程。 本文介绍 cmake 的基础语法。 第一个例子 使用任意的文本编辑器,输入: 然后保存为 文本文件,执行: 输出: > Hello world! 所有变量都是字符串 在 cmake 中,所有变量都是字符...
-
Dubbo 入门应用程序
Dubbo 是一款微服务框架,提供高性能 RPC 通信,服务发现,流量管理等服务治理能力,提供构建大规模微服务集群所需的整套解决方案。 本文讲述如何利用 Dubbo 快速构建一个完整的服务端 客户端程序,包括基于 XML,注解和 API 的方式实现一个 Dubbo 的 demo。 配置开发环境...
-
k8s 部署 nginx 入门
文章 《Mac docker desktop 搭建 kubernetes 环境》 介绍了如何在 mac 上利用 docker desktop 搭建 k8s 运行环境,本文在此基础上,说明如何利用 k8s 部署 nginx 。 创建 pod pod 是 k8s 最小的编排单位,通常来说不需要直接...
-
Mac docker desktop 搭建 kubernetes 环境
学习 kubernetes (下文简称为 k8s)的前提是需要一个 k8s 运行环境。k8s 官网上推荐使用 minikube 开始 k8s 的学习之旅。由于自己的 mac 上已安装了 docker desktop(下文简称 desktop),且 desktop 集成了 kubernetes ...
-
filebeat 日志输出至 kafka
[Filebeat]( https://www.elastic.co/cn/beats/filebeat) 是一款轻量级的日志采集器,可以用来收集日志,并将日志汇总起来处理。 Filebeat 的工具原理如下图所示: <small>图片来源: https://www.elastic.co/gu...
-
Kafka 生产者和消费者学习笔记
最近搭建 kafka 集群环境以便于收集应用程序日志并进行个性化的处理,因此学习了 kafka 生产者和消费者 python 程序的实现。这篇文章当是 kafka 的学习笔记。 一、搭建 kafka 集群 为方便测试,我们在 MacOS 单机上搭建具有三个 kafka 节点的集群。如果在生产上...
-
使用 prometheus python 库编写自定义指标
虽然 prometheus 已有大量可直接使用的 exporter 可供使用,以满足收集不同的监控指标的需要。例如,node exporter 可以收集机器 cpu,内存等指标,cadvisor 可以收集容器指标。然而,如果需要收集一些定制化的指标,还是需要我们编写自定义的指标。 本文讲述如何...
-
prometheus 发送企业微信
最近在公司搭建 prometheus 监控平台。文章 《Prometheus 使用阿里云邮件推送发送告警邮件》 已说明如何实现 prometheus 发送邮件告警的功能,这篇文章说明如何实现发送企业微信告警的功能。 申请企业微信账号 为实现发送企业微信告警消息,需要一个企业微信账号,在页面 企...
-
C++ Lambda 学习笔记
C+中,对于一个对象或一个表达式,如果可以对其使用调用运算符(),则称它是可调用的。即,如果 是可调用的,则可以这样使用: 其中, 是一个逗号分隔的一个或多个参数的列表。 C+中可调用对象除了我们熟悉的函数或函数指针外,还包括函数对象以及 lambda 表达式。 本文重点讲述 lambda ...
-
C++ 函数对象学习笔记
函数对象本质上是一个类对象,它重载了函数调用运算符 。调用运算符的函数体实现函数的功能。 例如,我们定义类 : 类 包含调用运算符的重载,调用运算符的函数体实现了函数的功能:小于操作。 调用运算符的定义第一次看起来有点令人迷惑,因为出现了两个小括号。第一个小括号: 告诉编译器我们在重载调用运...
-
Prometheus 使用阿里云邮件推送发送告警邮件
我们在文章 《使用 docker-compose 搭建 prometheus 监控系统》 的基础上,增加 prometheus 的告警功能。 Prometheus 指标的收集存储与告警是分开的,告警功能由 alertmanager 提供。我们需要在 prometheus 定义告警规则,这些规则...
-
使用 docker-compose 搭建 prometheus 监控系统
Prometheus 是当前一套非常流行的开源监控和报警系统,于 2016 年加入了 Clound Native Computing Foundation,是继 kubernates 之后的第二个托管项目。 本文讲述如何使用 docker 快速搭建 prometheus 监控系统。 概览 本文...
-
使用 gitlab 搭建 docker 私有仓库
我们知道,gitlab 可以用来管理 git 提交的源代码,此外,gitlab 还集成了 docker registry 的功能,可以用来作为一个 docker 镜像私有仓库使用。 启用 gitlab registry 功能 我们假设已安装好 gitlab,具体安装可参考 《使用 docker...
-
使用 docker 安装 gitlab
Gitlab 作为开源的 git 代码仓库,功能强大,使用起来非常方便。本文讲述如何使用 docker 来安装 gitlab。 本文假定已安装好 docker,可以输入 来验证是否已正常安装,输出: > Docker version 19.03.5, build 633a0ea 使用 doc...
-
Docker Compose 入门教程
Docker compose (以下简称为 compose)可用于定义和运行多容器 docker 应用程序。 通过 compose,我们可以使用 YAML 文件来配置应用程序的服务(services),然后只需要通过一个命令,就可以将配置的所有服务启动起来。 使用 compose 只需要三步:...