自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 php生成唯一订单

//生成唯一订单  function build_order_no(){      return date('ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, ...

2018-01-25 10:42:23

阅读数 147

评论数 0

原创 php+mysql存储html文件

$fileContent = trim($fileContent); $fileContent=$queueList->characet($fileContent); $fileContent = addslashes(ht...

2020-02-26 13:55:19

阅读数 13

评论数 0

转载 php-rdkafka手动提交偏移量

在项目中使用php-rdkafka的高级消费者时,发现设置了: $topicConf->set('enable.auto.commit', 'false'); 没有效果,还是会自动提交offset,查了各种资料,正确的应该是这样设置: $conf...

2020-02-24 14:28:53

阅读数 14

评论数 0

转载 New state of 'nil' is invalid

背景:docker terminal执行jar程序的时候,报New state of 'nil' is invalid的错误,但是docker ps发现docker还是up状态的。 原因:docker在windows上某些字符无法显示,比如我程序中出现“【】”,我改成[]...

2020-02-24 13:58:21

阅读数 20

评论数 0

转载 windows环境下给PHP增加rdkafka扩展

因为工作需要kafka作为消息中间件,所以在本地开发环境进行测试的时候需要给PHP添加rdkafka扩展,使用PHP作为producer或者cosumer,在此纪录一下rdkafka的安装过程。 扩展下载地址:http://pecl.php.net/package/rdkafka 根据自身PH...

2020-02-24 13:37:09

阅读数 11

评论数 0

原创 sarama-cluster消费者运行时报panic: non-positive interval for NewTicker

笔者是go新手,照着例子运行customer代码如下: package main import ( _"flag" "fmt" "log" "os" "os/signal" _&q...

2020-02-23 19:53:05

阅读数 10

评论数 0

转载 记一次golang定时器引发的诡异错误

作为一只在9127工作制下摸鱼的程序猿,周六自然是愉快的加班了。一早上除了一位新同学在我们的“敏捷迭代”下错删了接口之外没什么大事。 临近中午,突然隔壁组大佬找到我,表示有个go语言服务偶现panic的问题需要求助。了解了一下,原来是他们组的一个妹子(小姐姐??)写的代码的问题。okok,既然大...

2020-02-23 19:18:19

阅读数 57

评论数 0

转载 Golang如何正确的停止Ticker

Golang可以利用time包的Ticker实现定时器的作用,最近使用Ticker时,发现调用Ticker的Stop方法无法正确的停止Ticker,协程会阻塞在等待Ticker的C通道处,精简后的代码如下: func UseTickerWrong() *time.Ticker { ticker...

2020-02-23 19:10:22

阅读数 12

评论数 0

转载 [Golang] timer可能造成的内存泄漏

背景 前两天,跟一位学长交流Golang;然后,他突然问我:你知道timer可能造成内存泄漏嘛? 当时,甚是一脸懵逼,毕竟之前写的Agent测了好久,都没发现这个问题啊。今天,就索性了解了下。这里先说下结论,timer的误用可能造成某些等待timer的Goroutine无法正常退出,导致资源无法释...

2020-02-23 19:07:46

阅读数 22

评论数 0

转载 Golang 定时器timer和ticker

两种类型的定时器:ticker和timer。两者有什么区别呢?请看如下代码: ticker package main import ( "fmt" "time" ) func main() { d := time.Du...

2020-02-23 19:04:23

阅读数 13

评论数 0

转载 GO标准库flag

Go语言内置的flag包实现了命令行参数的解析。 os.Args os.Args是一个[]string类型。 获取命令参数示例: func main() { if len(os.Args) > 0{ for index,args := range os.Ar...

2020-02-22 15:57:30

阅读数 11

评论数 0

转载 Linux cron输出导致僵尸进程案例及解决

登录到主机发现服务器上有近40个名称为[sh] <defunct>的进程 Ps –ef带进程号查发现是僵尸进程是 发送邮件的/usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t进程 杀掉这些僵尸进程 kill -9 `ps ...

2020-02-22 13:20:48

阅读数 36

评论数 0

转载 go build 不同系统下的可执行文件

Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。 1、Mac下编译Linux, Windows平台的64位可执行程序: $ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go $ CGO_ENABLED=0 ...

2020-02-22 09:22:25

阅读数 15

评论数 0

转载 golang 将kafka的offset置为最新

需要解决: 当需要用同一个group_id去消费kafka的partition时,如果程序down掉,可能存在已经消费的数据尚未提交的可能,此时会造成重复消费的问题,且在重启这段时间会产生新的数据,重启这段时间的kafka消息不想再消费。 采用方案: 1、创建consumer时将offset...

2020-02-21 14:45:38

阅读数 137

评论数 0

转载 kafka的go版本api介绍及使用示例

一、概述 go语言版本的kafaka API,使用sarama和sarama-cluster包,支持offset追踪。生产和消费的过程,都是通过设置一个配置结构体开始的。并发量小时,可以用同步生产者,但是并发量大时,必须使用异步生产者。 1.1 安装依赖库sarama go get github...

2020-02-21 14:33:05

阅读数 11

评论数 0

原创 docker 启动kafka宿主机无法访问

先看我启动命令: docker run -e TZ="Asia/Shanghai" --privileged -itd -h single.com -p 127.0.0.1:9092:9092 -p 127.0.0.1:2181:2181 -v D:\soft:/var/s...

2020-02-21 14:12:10

阅读数 11

评论数 0

转载 kafka的go版本api使用

概述 go语言版本的kafakaAPI 准备 golang sarama 简单使用 生产和消费的过程都是通过一个配置开始的. 生产者 //设置配置 config := sarama.NewConfig() //等待服务器所有副本都保存成功后的响应 config.Producer.R...

2020-02-20 18:54:23

阅读数 10

评论数 0

原创 kafka添加ssl认证

主要是生成证书: 请先安装java和openssl. 生成证书脚本ca.sh: #!/bin/bash #Step 1 keytool -keystore /var/soft/ca/server.keystore.jks -alias localhost -validity 365 -ge...

2020-02-20 14:58:49

阅读数 7

评论数 0

原创 kafka添加ssl认证

主要是生成证书: 请先安装java和openssl. 生成证书脚本ca.sh: #!/bin/bash #Step 1 keytool -keystore /var/soft/ca/server.keystore.jks -alias localhost -validity 365 -ge...

2020-02-20 14:58:20

阅读数 22

评论数 0

原创 kafka集群搭建

首先搭建zookeeper集群: 拷贝zoo_sample.cfg为zoo.cfg(启动时会默认调用这个文件) zoo.cfg # The number of milliseconds of each tick tickTime=2000 # The number of ticks tha...

2020-02-19 18:43:21

阅读数 80

评论数 0

转载 CentOS下如何查看并杀死僵尸进程

昨天服务器到期,之前的服务器由于空间小,不能满足现在的服务要求,就新购买了一个服务器,目前正在调试安装中! 在调试过程中,发现系统中有很多僵尸进程,现在就是找出这些僵尸进程,并将其杀死。 用top查看系统中的僵尸进程情况 再看看这些僵尸是什么程序来的 ps -A -o stat,ppi...

2020-02-14 10:39:15

阅读数 12

评论数 0

转载 CentOS下如何查看并杀死僵尸进程

昨天服务器到期,之前的服务器由于空间小,不能满足现在的服务要求,就新购买了一个服务器,目前正在调试安装中! 在调试过程中,发现系统中有很多僵尸进程,现在就是找出这些僵尸进程,并将其杀死。 用top查看系统中的僵尸进程情况 再看看这些僵尸是什么程序来的 ps -A -o stat,ppi...

2020-02-14 10:37:43

阅读数 28

评论数 0

转载 CentOS下如何查看并杀死僵尸进程

昨天服务器到期,之前的服务器由于空间小,不能满足现在的服务要求,就新购买了一个服务器,目前正在调试安装中! 在调试过程中,发现系统中有很多僵尸进程,现在就是找出这些僵尸进程,并将其杀死。 用top查看系统中的僵尸进程情况 再看看这些僵尸是什么程序来的 ps -A -o stat,ppi...

2020-02-14 10:36:11

阅读数 25

评论数 0

转载 Golang中 Context包深入浅出

控制并发有两种经典的方式,一种是WaitGroup,另外一种就是Context,今天我就谈谈Context。 什么是WaitGroup WaitGroup以前我们在并发的时候介绍过,它是一种控制并发的方式,它的这种方式是控制多个goroutine同时完成。 func main() { ...

2020-02-13 11:34:52

阅读数 8

评论数 0

原创 内存对齐

结构体字段顺序不同,所占内存大小也不同。原因是内存对齐导致的. 比如如下结构体: type user5 struct { j int64 b byte i int32 } 在64位机子上,#pragma pack(n)默认为8字节对齐.32位上是4字节对齐. 现在我开始计算: a. int6...

2020-02-12 14:46:48

阅读数 62

评论数 0

转载 iota的一个特别用法

const( a = iota // 0 b // 1 c // 2 ) const( a = iota // 0 b = 100 // 100 c = iota // 2 d // 3 ) ...

2020-02-10 13:15:30

阅读数 51

评论数 0

转载 golang json用法讲解

简介 json格式可以算我们日常最常用的序列化格式之一了,Go语言作为一个由Google开发,号称互联网的C语言的语言,自然也对JSON格式支持很好。但是Go语言是个强类型语言,对格式要求极其严格而JSON格式虽然也有类型,但是并不稳定,Go语言在解析来源为非强类型语言时比如PHP等序列化的JS...

2020-02-07 16:22:03

阅读数 11

评论数 0

转载 Go 文本和HTML模板

文本模板: package main import ( "log" "os" "text/template" ) type Student struct { Name string A...

2020-02-07 15:55:23

阅读数 11

评论数 0

转载 golang 详解 defer

什么是defer defer用来声明一个延迟函数,把这个函数放入到一个栈上, 当外部的包含方法return之前,返回参数到调用方法之前调用,也可以说是运行到最外层方法体的"}"时调用。我们经常用他来做一些资源的释放,比如关闭io操作 func doSomething(fi...

2020-02-06 14:24:59

阅读数 24

评论数 0

转载 golang语言defer特性详解.md

[TOC] golang语言defer特性详解 defer语句是go语言提供的一种用于注册延迟调用的机制,它可以让函数在当前函数执行完毕后执行,是go语言中一种很有用的特性。由于它使用起来简单又方便,所以深得go语言开发者的欢迎。但是,真正想要使用好这一特性,却得对这一特性深入理解它的原理,不...

2020-02-06 14:24:13

阅读数 29

评论数 0

原创 docker下nginx+php7.2

运行命令如下: docker run -itd -p 9000:9000 -v D:/wwwroot/test/:/var/wwwroot/fym/ php:7.2-fpm /bin/bash 再看我nginx配置: location ~ \.php$ { ...

2020-02-04 17:45:17

阅读数 12

评论数 0

原创 单台机子配置多个git帐号

业务需求是这样: 我有两个项目分别是不同的git帐号。我开发时要分别拉取和push.现在开始配置: 正常在~/.ssh下生成新的公钥。但要注意,应该你第一个项目已经生成了一个公钥,所以这里就不要直接全部回车了。把生成的默认名改一下: $ ssh-keygen -t rsa -C "邮箱&...

2020-02-03 19:33:27

阅读数 20

评论数 0

转载 解决cron无法运行报错:FAILED to authorize user with PAM (Module is unknown)

查看cron运行日志 tail -f /var/log/cron 报如下错误: May 8 10:14:01 localhost crond[9399]: (root) FAILED to authorize user with PAM (Module is unknown) May 8 ...

2020-02-01 19:01:41

阅读数 35

评论数 0

转载 CentOS + Selenium 用法小结

CentOS + Selenium 用法小结 使用场景 在CentOS下使用Selenium,这里的CentOS是指无GUI的Server版,其特殊性在于,没有可以供输出的显示界面,除了常见的headless方法以外,还有xvfb等工具可以使用,本文即记录我使用时碰到的一些流程及坑点。 解决方案...

2020-02-01 15:59:20

阅读数 17

评论数 0

原创 GLIBC_2.xx not found(GLIBC升级)

系统默认一般是2.12.我在centos上运行chromedriver的时候报了glibc_2.14和2.16没找到,所以要升级.下面是参考文档: 场景需求 默认的Centos6.5 glibc版本最高为2.12, 而在进行Nodejs开发时项目所依赖的包往往需要更高版本的glibc库支持, ...

2020-02-01 15:54:29

阅读数 15

评论数 0

原创 vue去路由的#以及刷新404

首先,去#直接在路由加: export default new Router({ mode: 'history', //去掉url中的# routes: [ { path: '/', name: 'Inde...

2020-01-30 15:26:56

阅读数 8

评论数 0

原创 pymongo随机查询以及聚合情况下获取所有值

随机查要用聚合: db.answers.aggregate([ { $sample: { size: 20 }} ]) 但我用出来始终查不出来所有字段,这样就好了: data = curTableObj.aggregate([ {"$match&quo...

2020-01-29 20:00:35

阅读数 39

评论数 0

原创 mongodb搜索两个字段值相同的记录

db.re_local_stars.update({$where:function(){ for(var current in this){ for(var other in this){ if(current != other && this["n...

2020-01-28 13:32:45

阅读数 72

评论数 0

转载 shell编程报错:“syntax error near unexpected token `”

在UE下使用16进制看了一下,是0D0A结尾的,修改为OA结尾的。使用b.cat filename1 | tr -d "\r" http://blog.csdn.net/xyp84/article/details/4435899 今天写了个shell脚本,在...

2020-01-23 10:01:34

阅读数 43

评论数 0

转载 sh文件命令行可以执行crontab里不执行

先查看cron的日志(/var/log/cron),看一下定时任务是否已经执行 如果命令crontab已经执行 1、如果是sh脚本的,直接在脚本的前面加上下面一句就OK了 source /etc/profile 2、如果是python的话 source /etc/profile &...

2020-01-23 10:00:01

阅读数 12

评论数 0

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