信号

Django 包含一个信号调度器,它帮助已解耦的应用程序在框架中的其它地方发生操作时可以得到通知。简而言之,信号允许某些 发送器 通知一组 接收器 某些操作已经发生。当许多代码段可能对同一事件感兴趣时,它们特别有用。

Django 提供了 内置信号集 使用户代码能够获得 Django 自身某些操作的通知。其中包括一些有用的通知:

查看 内置信号文档 以获取每个信号的完整列表和说明。

你还可以 定义和发送自定义信号,详细实践见下文。

阅读全文 »

基础回顾

之前已经有两篇文章讲到Redis的数据类型使用场景,本文将继续学习Redis更多的高级特性,例如持久化事务与事件主从及哨兵等。

Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。

键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。

Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。

阅读全文 »

前言

最近工作中和Zabbix打了不少交道,大概分为两个用途。

一种是对接它的API接口,例如创建账号、媒介、触发器、动作等,这种比较简单,照着API文档来就行了,这里不多赘述。

另一种就是,使用Python脚本创建一套Zabbix告警推送的流程,将超过阈值的Zabbix告警按照指定的流程和动作推送到告警中心,而告警中心使用Zabbix作为其中一个告警源,不断拉取并且分发告警。这应该属于监控、告警等最常见的自动化运维的场景了,我对此也比较感兴趣,所有想从Zabbix较为基础的单机版安装及部署学习,也就有了这篇文章。

事先已在本地开发环境的虚拟机中安装与部署成功,现在期望将Zabbix部署到阿里云的机器上。

注意:安装部署时,由于环境和版本的问题也踩了不少坑,希望能给读者一些启示。

作者Zabbix网址https://zabbix.notspr.com/

阅读全文 »

前言

本文为 xorm - Go 语言 ORM 之后,对 xorm 的练习代码。

学习Go语言之初,在 Go语言之顺序编程 这篇文章中,记录了条件、循环、选择、跳转等语句的练习情况。而最近又学到了 xorm - Go 语言 ORM 的内容,我就想把这两部分内容结合起来,实现一个简单的需求场景。

需求具体为:使用shell作为交互界面,sqlite作为数据库,使用xorm实现类似于人员信息或者银行账户的增删改查,里面也会涉及到顺序编程的内容。

你可以在GitHub上找到本次代码:https://github.com/sususama5555/go-xorm

阅读全文 »

xorm简介

官方定义:

XORM is a Simple & Powerful ORM Framework for Go Programming Language

xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。xorm的目标并不是让你完全不去学习SQL,我们认为SQL并不会为ORM所替代,但是ORM将可以解决绝大部分的简单SQL需求。xorm支持两种风格的混用。

本文是xorm的操作手册,后续有原创文章记录xorm实例代码。

申明:以下大部分内容,是本人在遍历性阅读官方文档时的摘抄,不是本人原创,目的是迁移到自己博客,方便后续学习与查阅。小部分内容为个人代码。

阅读全文 »

async

async 是 ES6 才有的与异步操作有关的关键字,和 Promise , Generator 有很大关联的。

语法

1
async function name([param[, param[, ... param]]]) { statements }
  • name: 函数名称。
  • param: 要传递给函数的参数的名称。
  • statements: 函数体语句。

返回值

一个Promise,这个promise要么会通过一个由async函数返回的值被解决,要么会通过一个从async函数中抛出的(或其中没有被捕获到的)异常被拒绝。

阅读全文 »

前言

蓝鲸监控通过 job 部署 prometheus 社区的 Exporter,对目标组件进行性能数据采集。接着 bkmetricbeat 从 Exporter 上周期拉取性能数据并通过数据通道上报。

自定义组件采集导入流程

蓝鲸监控当前支持使用 go 编写 Exporter

  • 在社区找到适合自己的 Exporter 或者编写新的 Exporter

  • 将源码编译成二进制文件

  • 将编译的 Exporter 打成 zip 包

  • 上传配置文件

阅读全文 »

摘要

官方定义:

pyVmomi is the Python SDK for the VMware vSphere API that allows you to manage ESX, ESXi, and vCenter.

pyVmomi 是 VMware vSphere API 的一个 Python sdk,我们可以利用它来管理与交互vCenter、ESX、ESXi,获取我们需要的信息。

由于工作中需要对接vCenter,实现虚拟化平台、数据中心、物理机、物理机和存储的指标采集及监控,也需要通过启停虚拟机网卡来实现灾备切换,所以本文结合了笔者的经验和 pyVmomi 官方案例。

阅读全文 »

背景:为何要使用连接池

数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。

阅读全文 »

红黑树其实就是一种数据结构,设计它的目的就是为了高效地进行增删改查,我们可以从二叉查找树逐渐引入到红黑树:

一、二叉查找树

特性:
(1)左子树上所有结点的值均小于或等于它的根结点的值;
(2)右子树上所有结点的值均大于或等于它的根结点的值。

阅读全文 »