自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fei的专栏

C/C++/Go Linux/Web 全栈之路

  • 博客(45)
  • 资源 (9)
  • 收藏
  • 关注

原创 获取所有网卡的名称

ifconfig | awk -F'[ :]+' '!NF{if(eth!=""&&ip=="")print eth;eth=ip4=""}/^[^ ]/{eth=$1}/inet addr:/{ip=$4}'

2017-09-30 11:47:42 5550

转载 环境变量,include搜索路径,lib库搜索路径

环境变量系统环境变量我们知道,我们经常要设置一些环境变量,系统环境变量我们非常容易理解。其实我们在windows中经常容易接触。其实环境变量是一个非常广泛的一个概念,它与web应用程序中的web.config所处的角色很像。什么意思呢?就是说,程序(系统或应用)要运行的时候,它的基本业务逻辑可能是一定的,但是实现业务逻辑的时候有些设置性的东西却可以改变程序很多。如web应用程序,编

2017-09-30 11:38:11 9042

原创 指定Keepalived输出日志文件

默认日志存放在系统日志:/var/log/messages下[root@lb01 /]# tail -f /var/log/messagesOct 6 13:30:07 lb01 Keepalived_vrrp[3671]: Kernel is reporting: interface eth0 UPOct 6 13:30:07 lb01 Keepalived_vrrp[36

2017-09-29 10:34:26 17017

转载 Linux Lvs负载均衡集群技术(一)

1.1集群简介1.1.1集群的含义  集群是一种并行或分布式系统。  集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。  集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务

2017-09-29 09:19:44 796

转载 Linux Lvs负载均衡集群技术(二)

1.6安装LVS软件1.6.1 安装LVS的准备1.6.1.1 需要三台服务器或VM虚拟主机1、数据库及memcache等对内业务的负载均衡环境管理IP地址角色备注10.0.0.51LVS(负载均衡器)对外提供VIP 10.0.0.5610.0.0.5

2017-09-29 09:18:49 438

转载 Linux下头文件搜索路径

C++编译时,教科书中写道:#include “headfile.h”优先在当前目录查找头文件;#include 从系统默认路径查找头文件。先前以为系统默认路径是环境变量$PATH指定的路径,在系统上一查,傻了眼:-bash-3.2$ echo $PATH/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/u

2017-09-27 17:44:04 2891

转载 linux 编译 'aclocal-1.14' is missing on your system

centos编译出现:类似情况:     $tar -xvf libpcap-1.0.0.tar.gz      $cd libpcap-1.0.0.tar.gz      $./configure      $make      $sudo make install  5.'aclocal-1.14' is missing on your system. You

2017-09-27 17:42:43 7364

转载 一分钟了解负载均衡的一切

什么是负载均衡负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。常见的负载均衡方案常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,就能

2017-09-27 09:11:30 375

转载 Centos6.8编译安装keepalived-1.3.5步骤

Centos6.8编译安装keepalived-1.3.5步骤keepalived-1.3.5 下载 http://keepalived.org/software/keepalived-1.3.5.tar.gz一 首先安装依赖和编译器yum -y update kernel kernel-headers #升级内核reboot #重新启动电脑yum -y ins

2017-09-26 19:58:13 1455

转载 keepalived 配置文件参数详解

global_defs 全局配置vrrpd 1. vrrp_script添加一个周期性执行的脚本。脚本的退出状态码会被调用它的所有的VRRP Instance记录。 2. vrrp_sync_group将所有相关的VRRP实例定义在一起,作为一个VRRP Group,如果组内的任意一个实例出现问题,都可以实现Failover 3. garp_group 4. vr

2017-09-26 19:57:06 2647

转载 使用LVS实现负载均衡原理及安装配置详解

负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍    LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户

2017-09-26 19:55:58 360

转载 “SSL peer certificate or SSH remote key was not OK”的分析和解决

今天在给路由器配置安装程序的时候,出现了一个这样的问题:     “SSL peer certificate or SSH remote key was not OK”  这是程序在使用libcurl发送https请求时证书验证出问题导致的,这个提示是curl获取内容出错所返回的内容。  那么有两种解决办法:1、不验证证书。  2、使用正确的证书。

2017-09-22 09:10:54 23313 1

转载 curl 不支持 https

如果curl是默认安装的话,是不支持https,当你在使用libcurl去访问https时,就会报以下的错误* Protocol https not supported or disabled in libcurl* Unsupported protocol可以通过下面的命令查看curl现在支持哪些协议  可以看到现在curl是不支持https的如果curl

2017-09-21 17:13:21 3601

转载 undefined reference to `clock_gettime' 链接错误问题解决

当你编译程序时, 碰到下面的链接错误, timeval.c:(.text+0x6f): undefined reference to `clock_gettime' 则你只需要在你的Makefile文件里面添加    -lrt  ,重新编译即可。

2017-09-21 15:36:01 1774

转载 HTTP 2.0 协议详解

一、HTTP 2.0:改进传输性能HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量。从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响。所有HTTP 首部、值,以及它们的使用场景都不会变。现有的任何网站和应用,无需做任何修改都可以在HTTP 2.0 上跑起来。不用为了利用HTTP 2.0 的好处而修改标记。HTTP 服务器必须运行HTTP 2.

2017-09-19 16:50:21 1165

转载 聊聊HTTPS和SSL/TLS协议

要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识。1. 大致了解几个基本术语(HTTPS、SSL、TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”)3. 大致了解加密算法的概念(尤其是“对称加密与非对称加密”的区别)4. 大致了解 CA 证书的用途考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下。如果你

2017-09-19 14:25:07 544

转载 Go实战--golang中读写文件的几种方式

生命不止,继续 go go go !!!读写文件应该是在开发过程中经常遇到的,今天要跟大家一起分享的就是在golang的世界中,如何读写文件。使用io/ioutil进行读写文件先回忆下之前的ioutil包介绍: Go语言学习之ioutil包(The way to go)其中提到了两个方法: func ReadFilefunc ReadFile(filen

2017-09-19 11:31:36 2115 1

转载 golang 中fmt用法

fmt包实现了格式化的I/O函数,这点类似C语言中的printf和scanf,但是更加简单.占位符:通用占位符:%v 值的默认格式。当打印结构体时,“加号”标记(%+v)会添加字段名%#v 相应值的Go语法表示%T 相应值的类型的Go语法表示%% 字面上的百分号,并非值的占位符 用法如下:[html] view plain copy

2017-09-19 09:15:16 3066

转载 golang 中bufio包的用法

本文转自GOlove博客:http://www.cnblogs.com/golove/p/3282667.html   并在此基础上进行了一些添加修改.     bufio 包中的函数和方法// bufio 包实现了带缓存的 I/O 操作// 它封装一个 io.Reader 或 io.Writer 对象// 使其具有缓存和一些文本读写功能--------

2017-09-19 09:03:20 3698 1

转载 Golang之bytes.buffer学习笔记

bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte Buffer 是 bytes 包中的一个 type Buffer struct{…}A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buf

2017-09-15 16:42:41 936

转载 计算音频帧的播放时间(音频码流 音频帧)

音频码流(冗余数据占的比例):先简单讲一下对于ADTS header的结构的理解: 1)ADTS header位于每一个aac帧的开头,长度一般是7字节(也可以是9字节的,没见过)。 2)每个aac帧的长度固定为1024个sample(可以是1024*n,没见过n>1的情况)。 3)ADTS header中大部分信息无用,有用的只有采样率(4bit)、声道数(3bi

2017-09-15 14:10:34 3694 1

转载 AAC音频文件时长计算

1.如何计算音频文件的时长?大致的思路如果文件是CBR,则总时长为t=file_size/bitratebitrate则是文件的固定码率。对于固定码率的音频文件必定有文件头可以读取到这个消息。file_size为整个音频文件的长度。如果文件是VBR,则总时长为t=file_size/average_bitrateaverage_bitrate为文件的平均码率。1.2如何计算

2017-09-15 14:04:59 5372

转载 坑爹的golang日期时间格式format()

今天重拾golang,用到了format()函数格式化字符串,用了语句time.now().format(“2015-11-12 12:00:00”),结果输出结果就是不能达到理想的结果,然后把golang文档中的”2006-01-02 15:04:05“放进去就可以了,搞了好久没搞明白怎么回事,随意百度了一下,原来golang规定必须要用这个时间点,此刻我的心情,你们意会去……

2017-09-14 18:05:33 1359

转载 os.Open()和os.OpenFile()

一直以来都以为Open()和OpenFile()没有什么大的区别,今天操作日志文件才发现,两者有很大的区别。 这是我刚开始写的代码: logFile,err:=os.Open("log/system.txt") if err!=nil{ log.Fatalln("读取日志文件失败",err) } defer logFile.Close()

2017-09-14 18:00:10 2905 1

转载 golang返回值为interface{}的类型判断

看标题就知道,这是一个很简单的问题,就一个函数的事,但是,今天一同学golang的几个人中,已经不止一个人问我了,在这里我就说一下,也希望对不清楚的娃有些许帮助,大神别喷,飘过就行了。 大家知道,golang对于不确定返回值可以用interface{}代替,这确实很方便,但是也带来了问题,那就是如何判断返回值是什么类型的?其实可以用反射也就是reflect来判断,通过函数reflect.T

2017-09-14 17:58:15 5414

转载 关于gethostbyname_r调用后是否会有内存泄漏问题?

int gethostbyname_r(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop);为了避开非线程安全的gethostbyname,想用这货,用起来类似这样:int host2addr(const ch

2017-09-14 13:52:20 2048 1

转载 Go conversion between struct and byte array

package mainimport ( "bytes" "encoding/binary" "fmt")type T struct { A int64 B float64}func main() { // Create a struct and write it. t := T{A: 0xEEFFEEFF, B: 3.14} buf := &bytes.Buffe

2017-09-14 10:57:05 5158

转载 golang float32/64与[]byte互转

网络协议开发中经常需要将int、float、bool等转为二进制数据,float32、64 与[]byte处理:import ( "encoding/binary" "math")func Float32ToByte(float float32) []byte { bits := math.Float32bits(float) bytes := make(

2017-09-14 10:51:14 7922

转载 线上服务CPU100%问题快速定位实战

功能问题,通过日志,单步调试相对比较好定位。 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底。 58到家架构部,运维部,58速运技术部联合进行了一次线上服务CPU问题排查实战演练,同学们反馈有收获,特将实战演练的试题和答案公布出来,希望对大家也有帮助。 题目某服务器上部署了若干tomcat实例,

2017-09-13 17:42:23 3042

转载 golang make()的第三个参数

学习了一段时间golang,大概可以用golang做一些小东西了,于是回顾了一下一些基础的东西。golang分配内存有一个make函数,该函数第一个参数是类型,第二个参数是分配的空间,第三个参数是预留分配空间,前两个参数都很好理解,但我对第三个参数却一脸懵逼,例如a:=make([]int, 5, 10), len(a)输出结果是5,cap(a)输出结果是10,然后我对a[4]进行赋值发现是可以得

2017-09-13 17:27:10 11234 1

转载 Go 关键字 defer 的一些坑你需要踩踩

预览目录一些结论闭包与匿名函数巩固一下参考文档什么是 defer?如何理解 defer 关键字?Go 中使用 defer 的一些坑。defer 意为延迟,在 golang 中用于延迟执行一个函数。它可以帮助我们处理容易忽略的问题,如资源释放、连接关闭等。但在实际使用过程中,有一些需要注意的地方(坑),下面我们一一道来。一些结论首先,我们来了解 defer

2017-09-13 17:26:16 434

转载 [转载][翻译]Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[1]

Golang作为一个略古怪而新的语言,有自己一套特色和哲学。从其他语言转来的开发者在刚接触到的时候往往大吃苦头,我也不例外。这篇文章很细致地介绍了Golang的一些常见坑点,读完全篇中枪好多次。故将其转载。由于文章很长,分为上下两部分,第一部分记录初级篇,第二部分记录进阶和高级篇:此为第一部分,若要看第二部分,请转至这里感谢原文作者Kyle Quest以及翻译者影风LEY。出处见下: 原文

2017-09-13 16:43:00 652

转载 golang使用Nsq

为什么要使用Nsq最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯。一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golang原汁原味的东西,功能齐全,关键是性能还不错。其中支持动态拓展,消除单点故障等特性,  都可以很好的满足我的需求下面上一张Nsq与其他mq的对比图,看上去的确强大。下面简单记录一下Nsq

2017-09-13 16:40:21 736

转载 Golang(Go语言)中append函数返回值必须有变量接收的原因探究

append函数返回更新后的slice(长度和容量可能会变),必须重新用slice的变量接收,不然无法编译通过为了弄明白为什么,首先我们需要清楚几件事:slice的底层是数组,一片连续的内存,slice变量只是存储该slice在底层数组的起始位置、结束位置以及容量。它的长度可以通过起始位置和结束位置算出来,容量也可以通过起点位置到底层数组的末端位置的长度算出来,多个slice可以指

2017-09-13 16:31:19 679

转载 Go语言的那些坑

Golang是我最喜欢的一门语言,它简洁、高效、易学习、开发效率高、还可以编译成机器码…虽然它一出世,就饱受关注,而且现在在市面上逐渐流行开来,但是,它毕竟是一门新兴语言,还有很多让人不太习惯的地方(即坑,(^__^)),我作为新手,一边学习,一边踩坑,也希望对其他人有借鉴作用。一、文件名字不要轻易以__test.go为结尾Golang的source文件的命名和其他语言本无差别

2017-09-13 16:24:57 3511 1

转载 Golang面试题解析

最近在很多地方看到了golang的面试题,看到了很多人对Golang的面试题心存恐惧,也是为了复习基础,我把解题的过程总结下来。面试题1. 写出下面代码输出内容。package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() {

2017-09-13 11:34:11 34656 16

转载 AAC音频格式分析与解码

一直在做一个语音项目,到了测试阶段,近来不是很忙,想把之前做的内容整理一下。 关于AAC音频格式基本情况,可参考维基百科http://en.wikipedia.org/wiki/Advanced_Audio_Coding AAC音频格式分析AAC音频格式有ADIF和ADTS:ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特

2017-09-11 14:02:20 804

转载 golang中os包用法

os包中实现了平台无关的接口,设计向Unix风格,但是错误处理是go风格,当os包使用时,如果失败之后返回错误类型而不是错误数量.os包中函数设计方式和Unix类似,下面来看一下.func Chdir(dir string) error   //chdir将当前工作目录更改为dir目录.func Getwd() (dir string, err error)    //获取

2017-09-08 11:35:54 9893

原创 golang面试

交替打印数字和字母问题描述使用两个 goroutine 交替打印序列,一个 goroutinue 打印数字, 另外一个goroutine打印字母, 最终效果如下 12AB34CD56EF78GH910IJ 。package mainimport ( "fmt" "sync")func PrintNums(printChar chan int, wg

2017-09-08 11:22:37 2072

转载 Ffmpeg框架结构解读

下面这篇文章解读的框架比较到位,解码流程也很清楚,值得每天读一两遍。 转载地址:  http://blog.csdn.NET/allen_young_yang/article/details/65763031、    FFMEPG结构说明    1.1》介绍    ffmpeg(Fast Forward Moving Pictures Experts Group)是音视频的

2017-09-07 17:24:19 789

zeromq-Use ZeroMQ and learn how to apply different message patterns.pdf

zeromq-Use ZeroMQ and learn how to apply different message patterns.pdf

2016-01-03

Go Programming Blueprints - Mat Ryer - 2015 (1).pdf

Go Programming Blueprints - Mat Ryer - 2015 (1).pdf

2015-11-26

The-Golang-Standard-Library-by-Example-master.zip

The-Golang-Standard-Library-by-Example-master.zip

2015-11-26

Effective Go (中文版).pdf

Effective Go (中文版).pdf

2015-11-26

makefile说明手册

makefile说明手册,

2014-10-26

利用剪贴板实现进程之间的通信

该程序包括一个发送端和一个接收端窗口,发送端窗口将数据放到剪贴板中,然后接收端窗口就可以从剪贴板将数据读出,进而实现了两个进程之间的通信

2010-10-15

使用多线程模拟火车站售票系统

程序模拟了火车站售票系统,程序中使用了多线程的实现方法,并用多种方法实现了线程的同步,麻雀虽小,五脏俱全。

2010-10-09

空空如也

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

TA关注的人

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