4 思维的深度

尚未进行身份认证

暂无相关简介

等级
TA的排名 4k+

cannot assign requested address错误解决

最近压测tcp服务时发现会出现cannot assign requested address的错误,网上查了一下原因如下:client端频繁建立连接,而端口释放较慢,导致建立新连接时无可用端口。通过netstat可以看到许多TIME_WAIT状态的连接netstat -ae | grep TIME_WAIT 服务器在存在大量短连接的情况下,Linux的T...

2020-02-23 21:03:18

以alpine作为基础镜像构建Golang可执行程序

Alpine介绍 Alpine操作系统是一个面向安全的轻型Linux发行版。它不同于通常Linux发行版,Alpine采用了musl libc和busybox以减小系统的体积和运行时资源消耗,但功能上比busybox又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine还提供了自己的包管理工具apk,可以通过https://pkgs...

2020-01-20 10:24:37

Goland-golangcould not launch process decoding dwarf section info at offset 0x0 too short

goland debug报错Goland-golangcould not launch process decoding dwarf section info at offset 0x0 too short,是因为Go源码版本比较高,而调试工具dlv.exe版本比较低造成的,因此更新dlv.exe即可dlv的用法可参考:https://www.jianshu.com/p/737304...

2019-12-30 18:10:21

mysql常用错误总结

错误1Lost connection to MySQL server at 'waiting for initial communication packet原因分析:mysql开启了DNS的反向解析功能,这样mysql对连接的客户端会进行DNS主机名查找。mysql处理客户端解析过程:1)当mysql的client连过来的时候,服务器会主动去查client的域名。2)首先查找 /e...

2019-12-30 18:07:36

Linux根据进程名称获取pid的方法

以下通过两种方法来根据进程名称获取pid方法一最简单的方法是使用 pidof命令用法:pidof process_name示例官网的详细用法如下:NAME pidof -- find the process ID of a running program.SYNOPSIS pidof [-s] [-c] [-n] [-x...

2019-11-21 20:07:44

Linux配置静态ip

Linux配置静态ip使用nmtui命令进行使用nmtui命令配置网络,输入: nmtui ,回车出现以下界面,如图选择Edit a connection编辑网络连接回车,选择enp3s0,选择Edit编辑选中Automatic,空格,在下拉菜单中选择Manual来使用静态IP,然后设置相关IP,网关,DNS等,最后选择OK,退出service ne...

2019-11-21 19:48:43

Golang sync.Pool详解

Golang中sync.Pool用来提高对象复用几率,减少gc的压力,减少内存分配,它是线程安全的,常用来存储并复用临时对象。原理为了减小并发中锁的竞争,sync.pool为每个P(对象cpu线程)分配一个子池子poolLocal,每个poolLocal有private对象和shared共享列表对象,private对象只有对应的P可访问,无需加锁, shared共享列表对象可被其它P共享,...

2019-11-21 19:43:40

go pprof详细理解及使用

一、概述 在Go语言中,我们可以通过标准库的代码包runtime和runtime/pprof中的程序来生成三种包含实时性数据的概要文件,分别是CPU概要文件、内存概要文件和程序阻塞概要文件。cpu概要文件在默认情况下,Go语言的运行时系统会以100 Hz的的频率对CPU使用情况进行取样。内存概要文件内存概要文件用于保存在用户程序执行期间的内存使用情况。这里所...

2019-10-25 18:51:12

graphviz安装

Linux安装linux源码安装地址:https://graphviz.gitlab.io/_pages/Download/Download_source.html下载安装wget https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/graphviz.tar.gz./configuremakemake insta...

2019-10-25 18:35:56

Golang sync.Cond详细理解

sync.Cond用于goroutine之间的协作,用于协程的挂起和唤醒。结构体type Cond struct { noCopy noCopy // noCopy可以嵌入到结构中,在第一次使用后不可复制,使用go vet作为检测使用 L Locker // 根据需求初始化不同的锁,如*Mutex 和 *RWMutex notify notifyList // 通知列表,...

2019-10-24 20:03:53

MySQL添加索引

索引介绍 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。   MyISAM和InnoDB存储引擎:只支持BTREE索引, 也就是说默认使用BTREE,不能够更换MEMORY/HEAP存储引擎:支持HASH和BTREE索引  1、索引我们分为四类来讲 单列索引(普通索引,唯一索引,主键索引)、组合索引、全...

2019-10-15 19:42:47

Prometheus+Grafana监控EMQ

Prometheus和Grafana部署可以参考:https://blog.csdn.net/skh2015java/article/details/102572363,本文不再累述Prometheus的安装部署。简述 emq3.0以上版本和emq3.0以下版本使用的监控方法不同。emq3.0以下版本broker,需要使用emq_exporter,而3.0以上版本的插件中已经支持P...

2019-10-15 19:36:15

Prometheus+Grafana监控Kafka

Prometheus和Grafana部署可以参考:https://blog.csdn.net/skh2015java/article/details/102572363,本文不再累述Prometheus的安装部署。简述默认情况下, Kafka metrics 所有的 metric 都可以通过 JMX 获取,暴露kafka metrics 支持两种方式 1. 在 Kafka Br...

2019-10-15 19:26:53

Prometheus+Grafana监控应用程序(process-exporter)

Prometheus是一套开源的监控&报警&时间序列数据库的组合,Prometheus监控服务器的基础资源(如:内存、CPU、网络等资源),也可以监控Kafka、MySQL、EMQ等消息中间件、日志监控,当然也可以监控某个进程(应用程序)或某几个进程(进程组)。本文主要通过process-exporter 对进程进行监控,并介绍Process-exporter的...

2019-10-15 19:12:07

Prometheus和Grafana安装部署

一、概述Prometheus 介绍 Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常...

2019-10-15 18:34:54

CentOS 7 安装Kafka

由于Kafka依赖Zookeeper,而Zookeeper需要java环境,故需要先安装jdk一、安装JDK(以下为jdk8的下载地址)https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html1.下载并解压到/opt/java目录下tar -zxvf jdk-8u2...

2019-09-30 19:31:45

Golang zap框架应用(三)—— 按时间段存储日志

功能实现1.将error以下级别添加到info.log文件中2.将error及以上添加到error.log文件中4.将日志写入到kafka服务中4.按指定时间段记录日志下载:go get -u go.uber.org/zapgo get gopkg.in/Shopify/sarama.v1go get github.com/robfig/croncron...

2019-09-20 18:23:48

Golang zap框架应用(二)——将日志信息输出到多个输出流中

目标功能:1.将error以下级别添加到info.log文件中2.将error及以上添加到error.log文件中3.将日志数据写入到kafka中(kafka客户端使用sarama)下载:go get -u go.uber.org/zapgo get gopkg.in/Shopify/sarama.v1var( producerTopic = "klo...

2019-09-16 20:04:00

Golang zap框架应用(一)——根据日志级别将日志存储到不同文件中

目标功能:根据日志级别进行不同文件存储将error以下级别添加到info.log文件中将error及以上添加到error.log文件中下载: go get -u go.uber.org/zapgithub源码:https://github.com/uber-go/zapfunc main() { logger,err := getLogger("D:/log...

2019-09-16 19:53:55

Golang中的runtime.Caller理解

func Caller(skip int) (pc uintptr, file string, line int, ok bool) 参数:skip是要提升的堆栈帧数,0-当前函数,1-上一层函数,.... 返回值: pc是uintptr这个返回的是函数指针 file是函数所在文件名目录 line所在行号 ok 是否可...

2019-08-23 17:07:07

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。