7 yefengzhichen

尚未进行身份认证

暂无相关简介

等级
TA的排名 2w+

go消息队列nsq源码调用分析

nsqdTopic: 标识一类消息,各个topic之间相互独立,nsqd会为每个topic创建一个Topic结构Channel:标识一个队列,用来实现消费者之间的负载均衡。一个topic可以有多个channel,发布者的消息会被发送到每一个channel,相当于是广播操作。对于channel中的消息,会任选一个连接的消费者来发送。如上图所示,对其中的一个topic有三个chan...

2019-06-29 13:34:34

golang mutex源码详细解析

目前golang的版本是1.12,其中的mutex是增加了普通模式和饥饿模式切换的优化版本,为了便于理解,这里先从最初版本的mutex开始分析,后面再对优化版本进行说明。Mutex结构说明定义最初版本锁的定义如下:// mutex是互斥锁// mutex的零值是没有加锁的//在使用之后不能被拷贝type Mutex struct { state int32 //状态标识 ...

2019-06-24 08:24:21

MongoDB索引-设置记录超时自动删除

MongoDB 索引说明索引介绍跟mysql一样,索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。同时,MongoDB的超时自动删除功能,也是基于索引来实现的。索引设置命令createIndex()...

2019-06-23 11:45:26

利用SpaceVim打造完美Go IDE

SpaceVim介绍下载安装go语言配置

2019-05-11 15:56:24

unikernel介绍

最近听了一个关于容器的讲座,里面提到docker未来很可能向Unikernel发展,因此查资料学习了下。定义参考维基:unikernel由库操作系统组成,是一个特殊的、单地址空间的机器镜像。开发者从中选择模块化栈和最小库集合,组成应用需要的最小化系统架构来运行。这些库跟应用和配置代码一起编译,来构建封闭的、固定用途的镜像(unikernels),可以直接在hypervisor或硬件上,而不需...

2019-05-11 15:55:47

编译protobuf静态库依赖顺序问题

在项目中要加入protobuf协议支持,在编译成功生成程序包动态库后,发现启动运行报错 未定义的protobuf符号xxx等等,用ldd查看so文件,发现确实提示了未找到。大致的makefile文件如下:CXX=g++CFLAGS= -g -Wall -O3 -pipeINCLUDE= -I. -I./pb/LIB= -lpthread -pthreadLIB+=$(THIRD)/pr...

2019-04-20 15:01:28

golang数组和切片深入分析

一、数组1.1 数组赋值给数组Go数组是值类型,因此赋值操作和函数传参数会复制整个数组的数据,例:func main() { a := [3]int{1, 2, 3} b := a fmt.Printf("a addr: %p, a[0] addr: %p\n", &a, &(a[0])) fmt.Printf("b addr: %p, b[0] addr: %p\n...

2019-02-14 21:13:21

spark使用总结--row_number使用和partial求多个字段均值

一、窗口函数取分组后的第一条数据第一条数据,可以是某个值最小最大等等,使用row_number和Window函数来实现。下面实列是获取每个班级里数学成绩最低的记录。其中,F.row_number().over(Window.partitionBy(“class”).orderBy(“math”))可以直接跟列名类似,在df的select中使用。from pyspark.sql import f...

2019-01-27 21:01:53

路由器NAT类型检测

考虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。值得指出的是,对于TCP协议而言,一般来说,目前NAT中针对TCP的实现基本上是一致的,其间并不存在太大差异,这是因为TCP协议本身 便是面向连接的,因此无需考虑网络连接无状态所带来复杂性。用语定义1.内部Tup...

2019-01-26 21:39:02

mp4格式详解

之前刚接触转码工作时,看到的一篇介绍mp4挺不错的文章,转载自:mp4文件格式解析1、概述  最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准。随后MP4概念被转移到视频上,对应的是MPEG-4标准。而现在我们流行的叫法,多半是指能播放MPEG-4标准编码格式视频的播放器。但是这篇文章介绍的内容跟上面这些都无关,我们要讨论的是MP4文件封装格式,对应的标准为ISO/IE...

2019-01-05 19:47:24

go开源项目学习--grpc

地址:https://github.com/grpc/grpc-go一、安装先尝试官方命令安装:go get google.golang.org/grpc结果报错:package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc "(https fetch: Get https://googl...

2019-01-01 14:28:40

go开源项目学习--cache2go

一、cache2go地址:https://github.com/muesli/cache2go主要特点:1、并发安全,使用RWMutex锁来保证并发执行2、可设置过期时间,过期自动删除3、可设置操作的回调函数,如增加、删除时的回调函数主要结构和关系为:cache:map类型,缓存器,根据设置的缓存数据名称来存取相应的缓存表CacheTableCacheTable:缓存表,存储一类数...

2019-01-01 11:18:22

golang string迭代和结构体初始化

1.golang字符串range时返回的类型为rune在某次测试时发现,string字符串,直接用下标访问和用range访问返回的类型不同,参看下面:func main () { str := "aA" fmt.Printf("type is %T \n", str[1], ) for _, i := range str { fmt.Printf("is type %T\...

2018-12-31 09:04:02

从蓝光到4K,腾讯视频高码率下载背后的技术

蓝光和4k视频正逐渐普及,4K视频峰值码率超10Mbit/s。架构平台部TVideo平台从资源,链路、缓存、接入进行调优,有效解决4k高码率视频的二次缓冲问题,播放体验全面领先竞品。背景随着音视频编解码、超分辨率、VR/AR等技术的发展,iPhone8、4K电视、VR眼镜等终端设备的更新换代,高码率高分辨率片源(4K视频、360°全景视频等)的层出不穷,多媒体用户观看体验正在逐步升级,整个...

2018-12-30 09:38:32

常见缓存算法和LRU的c++实现

常见缓存算法和LRU的c++实现对于web开发而言,缓存必不可少,也是提高性能最常用的方式。无论是浏览器缓存(如果是chrome浏览器,可以通过chrome:://cache查看),还是服务端的缓存(通过memcached或者redis等内存数据库)。缓存不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么,了解常见的缓存淘汰算法的策略和原理就显得特别重要。常见的缓存算法LRU (Lea...

2018-05-12 16:12:40

两种常见的缓存淘汰算法LFU&LRU

1. LFU1.1. 原理LFU(Least Frequently Used)算法根据数据的历史访问频率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”。1.2. 实现LFU的每个数据块都有一个引用计数,所有数据块按照引用计数排序,具有相同引用计数的数据块则按照时间排序。具体实现如下: 1. 新加入数据插入到队列尾部(因为引用计数为1);2. 队列中的数据被访问后,引...

2018-05-12 15:38:19

Ubuntu16上Nginx安装教程

之前了解过一些Nginx的知识,只是大概知道它的一些优良特性,如高性能,高并发,负载均衡等等。因为以后工作会用的原因,所以打算彻底的学习一番。一,依赖库安装为了简单,就直接使用apt-get自动安装。1. SSL支持需要的库OpenSSL。sudo apt-get install openssl libssl-devsudo apt-get install libssl-dev

2017-02-25 16:33:35

matlab视频保存以及速度矢量箭头

最近用matlab画图,主要涉及的matlab函数是:VideoWriter:保存视频的新函数,取代了之前的movie2avi。需要结合writeVideo函数。quiver:速度矢量绘图函数。做了一些动画效果的视频,截取效果如下:主要功能:1、显示目标在整个过程中的运动轨迹如图a所示2、显示目标的方向变化情况,右转为正,左转为负,如图b所示3、

2016-12-13 16:50:21

python抓取糗事百科文字内容

最近用python处理了蛮多数据,也自己稍微学习爬取了一些数据。主要是用requests和BeautifulSoup。代码如下:#!/usr/bin/env python3# -*- coding: utf-8 -*-"""@author: yefeng"""import requestsfrom bs4 import BeautifulSoup import reif

2016-12-01 17:48:18

centos7 mysql数据库安装和配置(mysql-server安装失败)

转载自: http://www.cnblogs.com/starof/p/4680083.html。 因为自己在用的时候安装时遇到相同的问题。centos7 mysql数据库安装和配置一、系统环境yum update升级以后的系统版本为[root@yl-web yl]# cat /etc/redhat-release CentOS Linu

2016-10-14 14:47:29

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。