自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 基于redis+lua的限速器

基于redis+lua的限速器源码地址支持功能注意点源码地址一个基于redis+lua的限速器支持功能功能含义算法quota配额计数器rate限速滑动窗口注意点当超过配额或者限速时,是返回错误,是直接拒绝式的请求返回不像令牌桶是阻塞式的...

2021-08-27 19:35:36 172

原创 etcd性能监控平台

etcd性能监控平台代码地址架构图目前支持的监控TODO代码地址一个基于prometheus、grafana、alartmanager的性能监控架构图目前支持的监控etcd预览:TODO除etcd以外,增加更多的监控到prometheus、grafana、alartmanager这套通用的监控系统中去...

2021-08-27 18:17:06 232

原创 分布式性能测试框架

分布式性能测试框架一、目的二、框架1、telegraf2、influxdb3、grafana4、locust一、目的机器资源合理配置,资源利用率最大化更快排查系统瓶颈,提高系统代码质量性能测试规范化、体系化,快速应对接口性能测试报告把更多精力放在性能分析上,而非测试脚本开发、数据采集统计上二、框架1、telegraf定时收集系统和服务的统计数据采集传统的CPU、内存、网速等传统系统指标通过其他服务或第三方API采集,如ActiveMQ、Kafka、Consul、Elasticse

2021-08-26 17:27:24 334

原创 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 2600

原创 librdkafka自动源码编译

librdkafka自动源码编译一、背景介绍二、项目地址三、使用预览一、背景介绍自动化源码编译librdkafka二、项目地址librdkafka-build三、使用预览$ cd docker/# 修改DORKERFILE内git拉取的分支,决定编译哪个版本的librdkafka# resource下放置的是自定义yum源配置文件$ vim Dockerfile# 确认DORKERFILE无误后,即可编译$ sh build.sh# 完成后,将镜像中编译好的文件取出,在

2021-08-05 18:37:54 234

原创 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 129

原创 golang配置库viper使用教程

golang配置库viper使用教程前言一、配置文件加载二、配置文件热更新三、命令行参数绑定四、环境变量五、默认值设置六、远程监听前言viper作为golang的配置库:多种格式配置文件配置优先级覆盖(个人觉得最好用的地方):overrides:显示设置flags:命令行参数env. variables:环境变量(容器服务非常好用)config file:配置文件key/value store:远程kv数据库defaults:默认值这里简单地介绍一下库使用一、配置文件

2021-07-27 23:09:23 1703

原创 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 1720

原创 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 81

原创 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 204

原创 一个基于分布式系统的etcd监听者

config-watcher一个基于分布式系统的etcd监听者依赖etcd v3功能监听不丢失:利用etcd revision概念,即使网络不稳定,导致监听器重连,也不会丢失订阅消息封装了etcd watch模块,用户只需关心:获取、设置、更改监听对象时,回调函数触发的相关业务逻辑带有初始值设置功能:分布式系统环境下,利用etcd事务操作,多个节点只会有一个节点执行初始化,无需担忧重复执行,以及开发额外的代码去做初始化操作用法见main.go预览

2021-07-23 11:41:14 262

原创 vscode快捷键以及插件整理

vscode快捷键以及插件整理快捷键含义ctrl+shift+F全文格式化ctrl+shift+G行数跳转ctrl+shift+L全文替换

2020-05-05 17:01:33 205

原创 谈谈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 2435

原创 基于python multiprocessing库的多进程服务框架

基于python multiprocessing库的多进程服务框架前言正文功能架构代码注意参考前言python由于解析器CPython中GIL(Global Interpreter Lock)的缘故,使得多线程python服务并没有想象中的那么高效率(没有发挥CPU多核的优势),具体原因这边不多做展开(细节可参考《python中的GIL详解》)。因此,考虑通过使用python multipr...

2020-04-12 18:51:46 1106

原创 基于python logging库的自定义日志

基于python logging库的自定义日志前言功能代码预览前言平时开发、维护项目的同时,需要写一些python脚本,一个好用的日志库方便记录信息、回溯问题。下面列一下我自己平时常用的、基于python logging库的自定义日志使用方式。功能这边用到的功能:按级别输出打印一些辅助信息(日期、进程ID、行号、函数名等等)日志持久化日志滚动切割(每天凌晨作切割,备份三天日志)...

2020-04-11 17:11:19 215

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除