- 博客(15)
- 收藏
- 关注
原创 基于redis+lua的限速器
基于redis+lua的限速器源码地址支持功能注意点源码地址一个基于redis+lua的限速器支持功能功能含义算法quota配额计数器rate限速滑动窗口注意点当超过配额或者限速时,是返回错误,是直接拒绝式的请求返回不像令牌桶是阻塞式的...
2021-08-27 19:35:36
266
原创 etcd性能监控平台
etcd性能监控平台代码地址架构图目前支持的监控TODO代码地址一个基于prometheus、grafana、alartmanager的性能监控架构图目前支持的监控etcd预览:TODO除etcd以外,增加更多的监控到prometheus、grafana、alartmanager这套通用的监控系统中去...
2021-08-27 18:17:06
492
原创 分布式性能测试框架
分布式性能测试框架一、目的二、框架1、telegraf2、influxdb3、grafana4、locust一、目的机器资源合理配置,资源利用率最大化更快排查系统瓶颈,提高系统代码质量性能测试规范化、体系化,快速应对接口性能测试报告把更多精力放在性能分析上,而非测试脚本开发、数据采集统计上二、框架1、telegraf定时收集系统和服务的统计数据采集传统的CPU、内存、网速等传统系统指标通过其他服务或第三方API采集,如ActiveMQ、Kafka、Consul、Elasticse
2021-08-26 17:27:24
476
原创 golang竞态检测
背景在阅读golang runtime相关代码时,发现有个变量raceenabled,于是查了下文档了解了下具体案例了解raceenabled前,先看这么段代码package mainimport ( "fmt" "sync")var x int = 0func Add(y int) { x = x + y}func Race() { var wg sync.WaitGroup for i := 0; i < 1000; i++ { wg.Add(1
2021-08-25 10:02:32
2733
原创 librdkafka自动源码编译
librdkafka自动源码编译一、背景介绍二、项目地址三、使用预览一、背景介绍自动化源码编译librdkafka二、项目地址librdkafka-build三、使用预览$ cd docker/# 修改DORKERFILE内git拉取的分支,决定编译哪个版本的librdkafka# resource下放置的是自定义yum源配置文件$ vim Dockerfile# 确认DORKERFILE无误后,即可编译$ sh build.sh# 完成后,将镜像中编译好的文件取出,在
2021-08-05 18:37:54
351
原创 kafka简易命令行工具
kafka简易命令行工具一、背景介绍二、项目地址三、功能预览一、背景介绍基于sarama实现的kafka命令行工具主要用于测试、debug、运维kafka不依赖额外的so,开箱即用二、项目地址kafka-cmd三、功能预览$ ./kafkacli kafka简易命令行工具(v0.0.1)Usage: kafkacli [command]Available Commands: brokers 列出所有broker信息 completion g
2021-08-05 18:33:11
196
原创 golang配置库viper使用教程
golang配置库viper使用教程前言一、配置文件加载二、配置文件热更新三、命令行参数绑定四、环境变量五、默认值设置六、远程监听前言viper作为golang的配置库:多种格式配置文件配置优先级覆盖(个人觉得最好用的地方):overrides:显示设置flags:命令行参数env. variables:环境变量(容器服务非常好用)config file:配置文件key/value store:远程kv数据库defaults:默认值这里简单地介绍一下库使用一、配置文件
2021-07-27 23:09:23
2071
原创 golang调用c库函数
golang调用c库函数c语言相关代码golang相关代码golang编译本文章介绍了golang如何调用c语言库函数。如果想调用c++库函数,建议在c++上再封一层c语言代码,编译成c语言动态库,再被golang调用。c语言相关代码cc文件、so编译省略c头文件,mytest.h#ifndef __MYTEST_H_#define __MYTEST_H_#ifdef __cplusplusextern "C" {#endif int TestCgo(const char
2021-07-27 22:11:36
1795
原创 Docker实战
Dockerfilecentos7# 基础镜像选择FROM docker.io/centos:centos7.2.1511# 环境变量设置,系统语言、字符集设置ENV LANG=en_US.UTF-8# 时区设置RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone && rm -rf /etc/yum.re
2021-07-27 16:05:53
109
原创 JsonCpp使用细节
JsonCpp使用细节常用方式#include "json/json.h"#include <string>using namespace std;void test(){ Json::Value root; Json::Value data; data.resize(0); // 生成空数组 root["data"] = data; Json::StreamWriterBuilder streamWriter; streamWrite
2021-07-23 12:09:00
310
原创 一个基于分布式系统的etcd监听者
config-watcher一个基于分布式系统的etcd监听者依赖etcd v3功能监听不丢失:利用etcd revision概念,即使网络不稳定,导致监听器重连,也不会丢失订阅消息封装了etcd watch模块,用户只需关心:获取、设置、更改监听对象时,回调函数触发的相关业务逻辑带有初始值设置功能:分布式系统环境下,利用etcd事务操作,多个节点只会有一个节点执行初始化,无需担忧重复执行,以及开发额外的代码去做初始化操作用法见main.go预览
2021-07-23 11:41:14
315
原创 vscode快捷键以及插件整理
vscode快捷键以及插件整理快捷键含义ctrl+shift+F全文格式化ctrl+shift+G行数跳转ctrl+shift+L全文替换
2020-05-05 17:01:33
249
原创 谈谈cgo字符串传递过程中的一些优化
谈谈cgo字符串传递过程中的一些优化前言正文v1.0实现v1.1实现golang string数据结构最终代码注意前言最近做了一些关于golang的开发,由于有些相关模块是c++编译得到的动态库so,且不打算用golang重构一遍,想通过golang直接调用so的方式,来完成模块搭建。查阅了一些golang调用so的方式,最终决定通过cgo的方式去调用so。cgo是golang调用C语言的...
2020-04-19 16:14:03
2808
原创 基于python multiprocessing库的多进程服务框架
基于python multiprocessing库的多进程服务框架前言正文功能架构代码注意参考前言python由于解析器CPython中GIL(Global Interpreter Lock)的缘故,使得多线程python服务并没有想象中的那么高效率(没有发挥CPU多核的优势),具体原因这边不多做展开(细节可参考《python中的GIL详解》)。因此,考虑通过使用python multipr...
2020-04-12 18:51:46
1332
原创 基于python logging库的自定义日志
基于python logging库的自定义日志前言功能代码预览前言平时开发、维护项目的同时,需要写一些python脚本,一个好用的日志库方便记录信息、回溯问题。下面列一下我自己平时常用的、基于python logging库的自定义日志使用方式。功能这边用到的功能:按级别输出打印一些辅助信息(日期、进程ID、行号、函数名等等)日志持久化日志滚动切割(每天凌晨作切割,备份三天日志)...
2020-04-11 17:11:19
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人