自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AI世界- 客流统计

AI世界花哨技术展示AI世界-跨镜追踪 AI世界-行人属性分析 AI世界- 客流统计 AI世界-人体关键点 AI世界-热力图 AI世界-换脸 AI世界-人脸PS AI世界-三维人脸重建 AI世界-人脸密集关键点 AI世界-车辆检测客流统计精准人头检测,对输入图片进行人头的精细定位,结合跟踪、多边形ROI等技术,可以统计任何时间点或者时间段内,一个或者多个、规则或不规则区...

2018-12-11 09:21:20 2891 6

原创 go随聊-非常快的son解析包

A high-performance 100% compatible drop-in replacement of "encoding/json"吐槽一下,这么NB了一个logo都没有:)How to getgo get github.com/json-iterator/goUsage100% compatibility with standard lib和标准包完全兼容...

2018-10-31 10:49:51 2524

原创 rpcx服务框架浅析1-角色说明

RPCX分布式服务框架主要致力于提供高性能和透明化的RPC远程服务调用。RPCX服务框架角色节点角色说明:Provider: 暴露服务的服务提供方。  Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。  Monitor: 统计服务的调用次数、调用时间、服务机器状态监控的监控中心。 调用关系说明: 1. 服务提供者在启动时,向...

2018-09-18 09:44:52 2539 1

原创 10亿级人脸搜索

人脸检索      给定一张照片,与指定人脸库中的N个人脸进行比对,找出最相似的一张脸或多张人脸。 根据待识别人脸与现有人脸库中的人脸匹配程度,返回用户信息和匹配度,即1:N人脸检索。可用于用户身份识别、身份验证相关场景。人脸检索技术难点:单机由于内存和CPU性能限制,能够支持的人脸检索数始终都有上限,所以必须进行集群设计来提高容量。 10亿级别的人脸库存储是一个问题,按每张图片50...

2018-09-14 15:45:20 6340

原创 在linux下去除^M

 在Windows系统下编辑的文件,换行符回车的格式为'\r\n',在linux系统下,回车的格式为'\n',在Windows下编辑的文本文件在上传至linux服务器时,回车'\r\n'就显示成^M+'\n'。  在Windows环境下,用ultraedit或者notepad plus都有相应的选项可以将Windows下的文本格式文件转换成unix格式文件。比如:notepad plus中“编辑”—>“档案格式转换”—>“转换为UNIX格式”。用vi修改文件如果文件是在windows

2020-09-04 21:14:36 312

原创 Mongodb安装

安装过程1.到mongodb官网下载对应系统的压缩包,我下载的是mongodb-linux-x86_64-rhel70-4.0.9.tgz2.创建一个工作目录,如db,解压安装包 tar -zxvfmongodb-linux-x86_64-rhel70-4.0.9.tgz3.在解压后的目录创建一个data目录,用来保存数据4.在解压后的目录创建一个log目录,用来保存日志5.在解压后的目录创建一个etc目录,用来保存配置文件,在etc中创建mongodb.conf文件,内容如下:.

2020-05-27 15:00:40 227

原创 全局ID生成器

snowflake的结构如下(每部分用-分开): 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年),然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024个节点) ,最后12位是毫秒内的计数(12位的计数顺序号支持每个节点每毫秒产生4096个ID序号)一共加起来刚好64...

2020-05-24 15:12:30 1857 2

原创 跳表SkipList(go语言实现)

网上找到一个开源的代码https://github.com/AceDarkknight/ConcurrentSkipList数据结构我们用 ConcurrentSkipList 这个数据结构代表整个 skip list,可以看到里面是一个包含多个 skipList 的切片。// ConcurrentSkipList is a struct contains a slice of concurrent skip list.type ConcurrentSkipList struct {

2020-05-23 16:50:30 468

原创 跳表SkipList

跳表是redis的一个核心组件,也同时被广泛地运用到了各种缓存地实现当中,它的主要优点,就是可以跟红黑树、AVL等平衡树一样,做到比较稳定地插入、查询与删除。理论插入查询删除的算法时间复杂度为O(logN)。什么是跳表 链表,相信大家都不陌生,维护一个有序的链表是一件非常简单的事情,我们都知道,在一个有序的链表里面,查询跟插入的算法复杂度都是O(n)。我们能不能进行优化呢,比如我们一次比较两个呢?那样不就可以把时间缩小一半?同理,如果我们4个4个比,...

2020-05-23 16:36:04 171

原创 查看进程占用的句柄数

查看进程占用的句柄数linux下查看进程占用句柄数:ls -l /proc/进程ID/fd | wc -l

2020-04-14 16:53:07 1269

原创 分布式图片存储-1

搞AI应用的基本都会涉及到图片存储,特别是AI在安防行业的应用,基本都需要满足100亿级别的图片存储系统。需求大概是:写非常多而且频繁 读相对不是很多(访问长尾效应) 修改基本没有 删除非常少 需要支持循环删除(按时间删除,保留最新的,删除最老的)背景由于目录文件多了非常慢,所以根据文件名 hash 头几位,建立 00-FF 好多目录,来打散这些文件的存储。目录定位本身也是需...

2020-03-30 19:18:58 500

原创 linux系统函数posix_fadvise

posix_fadvise是linux上对文件进行预取的系统调用,其中第四个参数int advice为预取的方式,主要有以下几种:POSIX_FADV_NORMAL 无特别建议 重置预读大小为默认值POSIX_FADV_SEQUENTIAL ...

2020-03-21 15:58:47 3367

原创 keepalived启动报错 Configuration file '/etc/keepalived/keepalived.conf' is not a regular non-executable

keepalived启动报错如下:报错如下Configuration file '/etc/keepalived/keepalived.conf' is not a regular non-executable file解决方式更改 /etc/keepalived/keepalived.conf文件权限,命令如下:chmod 644 /etc/keepalived/keep...

2020-01-09 10:08:07 2094

原创 lvs+keepalived安装

本文主要记录下lvs和keepalived安装配置以及使用。主机ip 角色 安装软件 10.135.112.92 Lvs+keepalived MASTER Ipvsadm keepalived 10.135.112.91 Real server 测试用web服务 10.135.112.199 VIP 一、安装LVS10...

2020-01-09 09:12:03 174

原创 Mysql-安装

linux安装mysql5.7.25在linux 系统中mysql配置文件的读取顺序为:/etc/my.cnf/etc/mysql/my.cnf/usr/local/mysql/etc/my.cnf~/.my.cnf第一步 创建mysql用户groupadd mysqluseradd -g mysql -d /home/mysql mysqlmkdir /var/lib/...

2020-01-08 08:42:43 207

原创 docker-Dockerfile

Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。Dockerfile的基本结构Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。如下:FROM mysql:latest#作者信息...

2020-01-07 18:23:00 126

原创 docker命令

1、下载镜像docker pull centos 2、查看已经下载的镜像docker images[root@rs-dev-facego01 mysql]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql ...

2020-01-07 17:47:37 117

原创 linux查看端口被哪个进程占用

1、lsof -i:端口号2、netstat -tunlp|grep 端口号都可以查看指定端口被哪个进程占用的情况[root]# netstat -tunlp|grep 12345tcp6 0 0 :::12345 :::* LISTEN 175894/./xqplatform ...

2019-11-23 22:59:07 119

原创 go随聊- chan使用(close关闭通道)

chan不需要显示关闭(close),只要没有goroutine持有channel,相关资源会自动释放。chan最好是发送端调用close,此时读取端会收到一个空消息,如下:ch:=make(chan string,1)go func(){ for{ i:=<-ch if i==""{ fmt.Println("通道被close") break }els...

2019-11-22 19:22:50 5424

原创 限流算法

计数器算法计数器算法是限流算法里最简单也是最容易实现的一种算法。比如某个接口我们1分钟的访问次数不能超过100个。那么我们可以设置一个计数器counter,每当一个请求过来的时候,counter就加1,如果counter的值大于100并且该请求与第一个请求的间隔时间还在1分钟之内,那么说明请求数过多;如果每到1分钟间隔counter就清0重新计数,具体算法的示意图如下:这个算法虽然简单...

2019-11-01 15:19:08 146

原创 linux查看系统类型和版本

首先大致普及下linux系统的版本内容。1.内核版本和发行版本区别我的理解,内核版本就是指linux中最基层的代码,版本号如Linux version 3.10.0-327.22.2.el7.x86_64发行版本就是在某版本内核的基础上加了发行商自己想加进去的很多软件代码,比如CentOS Linux release 7.2.1511 (Core)2.redhat和centos...

2019-10-14 15:28:41 743

转载 设计模式可以增加系统的可扩展性

工厂模式抽象工厂模式观察者模式:很方便增加观察者,方便系统扩展模板方法模式:很方便的实现不稳定的扩展点,完成功能的重用适配器模式:可以很方便地对适配其他接口代理模式:可以很方便在原来功能的基础上增加功能或者逻辑责任链模式:可以很方便得增加拦截器/过滤器实现对数据的处理,比如struts2的责任链策略模式:通过新增策略从而改变原来的执行策略...

2019-10-11 19:23:39 1029 1

转载 如何设计高可用系统

设计建议减少单点– 去单点首先要识别整个系统所有主链路的单点,如机房(同城异地双机房),应用服务器,DNS服务器,SFTP服务器,LBS,缓存服务器,数据库,消息服务器,代理服务器和专线等,如系统通过专线调用对方服务,需要考虑同时拉联通和电信的专线,联通或电信的专线还是有一定概率会出现问题的,但是同时出问题的概率会小非常多。优先使用软负载,使用硬负载兜底。 减少依赖– 减少DNS依赖,减...

2019-10-11 17:51:54 127

转载 如何将Win7做为NTP服务器

将计算机作为NTP服务器,可以让其他设备以该设备为时间基准进行时间校正,比如我当前的应用是目标板上有时钟芯片进行计时,但是由于目标板面积有限,无法在板上布置纽扣电池,所以上电时需要利用时钟基准对其进行校正,因此利用一台计算机作为NTP服务器。 修改注册表项 HKEY_LOCAL_MACHINE—>SYSTEM—>CurrentControlSet—>Services—&...

2019-06-26 14:34:26 1694

转载 go随聊-golang官方实现如何对httpserver做频率限制(最大连接数限制)

一般海量处理服务,都会对服务做个最大连接数限制,超过该限制之后,拒绝服务,避免发生雪崩,压坏服务。使用golang来编写httpserver时,如何进行呢?官方已经有实现好的包。使用示例:import("golang.org/x/net/netutil")l, err := net.Listen("tcp", "127.0.0.1:0")if err != nil { ...

2019-05-30 17:04:41 1236

原创 socket程序listen之后,不写accept函数,会是怎样一种情况?

socket程序listen之后,不写accept函数,会是怎样一种情况?int listen(int sockfd, int backlog);backlog,就是默认最大的等待队列长度不用accept最大的监听个数就是这个backlog了,因为一直没有accept,所以这个里的队列会一直在,不会减少虽然这个backlog是可以手动设置的,但是linux是最大值128,如果超过...

2019-05-22 11:32:16 1015

原创 linux文件系统系统调用 fallocate

int fallocate(int fd, int mode, off_t offset, off_t len);功能  为文件预分配物理空间。头文件  #include<fcntl.h>返回值  成功返回0,失败返回-1。参数  fd 文件描述符 mode 目前两种mode:   1.FALLOC_FL_KEEP_SIZE:从off...

2019-05-05 11:31:34 1047

转载 判断Linux进程在哪个CPU核运行的方法

方法一”如果一个进程使用taskset命令明确的被固定(Pinned)到CPU的特定内核上,你可以使用taskset命令找出被固定的CPU内核:taskset -c -p <pid>例如,如果你对PID为5357的进程感兴趣,你可以使用如下命令来查看其运行在哪个CPU上:taskset -c -p 5357方法二ps 命令可以告诉你每个进程/线程目前分配到的...

2019-03-22 17:46:43 274

原创 linux中的TCP连接数查看

(1)统计80端口连接数netstat -nat|grep -i "80"|wc -l(2)统计已连接上的,状态为“establishednetstat -na|grep ESTABLISHED|wc -l(3)查看80端口TIME_WAIT数netstat -nat | grep -i "80" |grep TIME_WAIT | wc -l(4)查看80端口ESTABLIS...

2019-03-22 11:01:53 1771

原创 linux优化time_out

修改文件vi /etc/sysctl.confnet.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻 击,默认为0,表示关闭n...

2019-03-22 10:42:01 423

原创 go随聊-go编译so库让C++引用

有时C++需要引用go的一些开源库,这时就需要go编译成C++可调用的库go代码package main//包必须是mainimport( "C"//需要C库的支持,方便类型转换)func main() {}//export HelloWorldfunc HelloWorld() *C.char { return C.CString("hello world")}...

2019-03-18 14:08:21 529

转载 redis配置详细解析

# redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位,# 通常的格式就是 1k 5gb 4m 等酱紫:## 1k =&gt; 1000 bytes# 1kb =&gt; 1024 bytes# 1m =&gt; 1000000 bytes# 1mb =&gt; 1024*1024 bytes# 1g =&gt; 1000000000 b...

2019-01-29 15:50:12 278

转载 vm内核参数优化设置

vm.min_free_kbytescat  /proc/sys/vm/min_free_kbytes        centos6.4默认66M67584该文件表示强制Linux VM最低保留多少空闲内存(Kbytes)。当可用内存低于这个参数时,系统开始回收cache内存,以释放内存,直到可用内存大于这个值。vm.vfs_cache_pressure该项表示内核回收用于...

2019-01-17 15:58:11 2783

转载 linux系统swappiness参数在内存与交换分区间优化

 swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60,具体如下:    [root@timeserver ~]# cat /proc/sys/vm/swa...

2019-01-17 15:52:03 158

原创 linux清除缓存

清除linux缓存命令Kernels 2.6.16 and newer provide a mechanism to have the kernel drop the page cache and/or inode and dentry caches on command, which can help free up a lot of memory. Now you can throw aw...

2019-01-17 15:51:09 850

原创 InfluxDB-Retention Policy

备份数据的策略,主要包括数据保留时间和备份个数两个信息。官网中retention policy的两个作用“A retention policy describes how long InfluxDB keeps data (DURATION) and how many copies of those data are stored in the cluster (REPLICATION)”...

2018-12-18 17:29:51 4541

原创 InfluxDB-数据库、表操作命令(CLI方式)

连接直接通过influx登录,也可以通过如下命令进行远程登录。influx -host xx.xx.xx.xx -port 8086数据库操作创建数据库:create database db_metric查看数据库:&gt; show databasesname: databasesname----_internaldb_metric&gt; 切换...

2018-12-17 18:29:21 5497

原创 InfluxDB-重点概念

表结构database,和mysql一样,表示数据库。 measurement,类似SQL数据表。和mysql数据表不同的是,不再需要我们自己建立数据表,在我们插入一个Point时,可以理解为根据measurement建立一个数据表。 ponint,相当于一行数据,point可以理解为一个 时间点 的数据,因为influxDb是基于时间序列的。&lt;measurement&gt;...

2018-12-17 17:42:02 1108

原创 linux scp命令

Linux scp命令用于Linux之间复制文件和目录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。语法scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file][-l limit] [-o ssh_option] [-P port] [-S pro...

2018-12-13 15:23:45 133

原创 InfluxDB-权限管理

身份验证与授权InfluxDB的HTTP API和CLI(command line interface),通过简单的基于证书的内建权限控制,使用API链接数据库。启动身份验证后,http请求只有加入证书才能被接受。  设置身份验证创建一个admin用户 默认情况下,在配置文件中,身份验证是关闭的。可以通过设置 [http] 中的 auth-enabled=true 来开启 重启...

2018-12-12 14:27:50 2273

空空如也

空空如也

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

TA关注的人

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