自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

早先生

共同学习,共同进步

  • 博客(194)
  • 资源 (1)
  • 收藏
  • 关注

原创 树莓派4B安装ffmpeg

【代码】树莓派4B安装ffmpeg。

2023-10-28 15:22:59 515

原创 golang http文件上传操作

beego作为服务器 通过post formData的格式上传报文格式如下:package mainimport ( "bytes" "fmt" "io" "io/ioutil" "mime/multipart" "net/http" "os")func main() { req, _ := newfileUploadRequest("http://192.168.2.144:8956/v1/body-eval/data-info", nil, "file_name"

2021-01-18 15:42:26 2616

原创 操作系统知识整理

一、全局解释器锁(GIL)1、什么是全局解释器锁   每个CPU在同一时间只能执行一个线程,那么其他的线程就必须等待该线程的全局解释器,使用权消失后才能使用全局解释器,即使多个线程直接不会相互影响在同一个进程下也只有一个线程使用cpu,这样的机制称为全局解释器锁(GIL)。GIL的设计简化了CPython的实现,使的对象模型包括关键的内建类型,如:字典等,都是隐含的,可以并发访问的,锁住全局解释器使得比较容易的实现对多线程的支持,但也损失了多处理器主机的并行计算能力。2、全局解释器锁的好处1

2021-01-05 22:22:36 193 1

转载 并发环境下,先操作数据库还是先操作缓存?

前言在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。缓存维护方案一假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库。,如下流程图所示:1)线程A发起一个写操作,第一步del cache2)线程A第二步写入新数据到DB3)线程B发起一个读操作,cache miss,4)线程B从DB获取最新数据5)请求B同时set cache这样看,没啥问题。我们再看第二

2020-12-15 10:37:09 186

转载 Linux服务器性能查看分析调优

一 linux服务器性能查看1.1 cpu性能查看1、查看物理cpu个数:cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l2、查看每个物理cpu中的core个数:cat /proc/cpuinfo |grep "cpu cores"|wc -l3、逻辑cpu的个数:cat /proc/cpuinfo |grep "processor"|wc -l物理cpu个数*核数=逻辑cpu个数(不支持超线程技术的情况下

2020-10-28 16:05:09 647

转载 Go orm框架gorm学习

之前咱们学习过原生的Go连接MYSQL的方法,使用Go自带的"database/sql"数据库连接api,"github.com/go-sql-driver/mysql"MYSQL驱动,通过比较原生的写法去写sql和处理事务。目前开源界也有很多封装好的orm操作框架,帮我们简省一些重复的操作,提高代码可读性。gorm就是这样的一款作品,我们来学习一下gorm的操作流程。安装#go get...

2020-03-31 10:44:27 2125

转载 Linux下查看CPU信息[/proc/cpuinfo]

最近在研究linux系统负载的时候,接触到一些关于CPU信息查看的知识,和大家分享一下。通过对/proc/cpuinfo文件中的参数的分析,也学到了不少东西。在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下:上图是本人电脑的CPU信息,下面我们来分析其中几个比较重要的指...

2020-03-02 18:33:02 498

原创 问题总结

简单归纳:fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp。文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用;而流(如: fopen)返回的是一个FILE结构指针, FILE结构是包含有文件描述符的,FILE结构函数可...

2020-03-02 18:20:57 2184

转载 虚拟地址和物理地址及其映射

前一段时间在面试总监的时候,总监问了我这样的一个问题:你个我说说物理内存和虚拟内存到底是怎么一回事?其实之前我看过这个问题,据我理解的,当时是这么回答的“进程在运行的时候,操作系统都为其分配一个4GB的地址空间,即所谓的虚拟地址空间,一般情况下,当我们的程序很大的时候,实际的物理内存根本不能满足我们的需求的时候,这个时候操作系统就会借助磁盘空间来做虚拟的内存空间,把当前进程不需要的数据放在磁盘上,...

2020-03-02 15:46:55 3014 1

转载 [Linux] 同步异步阻塞非阻塞的区别

第一次有人形容的这么形象同步和异步传统意义上的同步,指的是两种事物一样进行同样的动作或者处于同样的状态。在计算机术语中:同步指的是在一次同步方法调用开始时,调用方必须主动等待被调用对象返回才能进行下一步操作。而异步指的是再一次方法调用开始调用者不必等待调用者返回才能去处理别的事情,而是被调用者主动或者其他方通知调用者被调用对象返回了。举例子:你现在需要照顾一个小宝宝,现在小宝宝睡着了...

2020-02-28 18:35:58 212

转载 分布式事务

前言不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。事务的具体定义事务提供一种机制将一个活动涉及的...

2019-02-21 10:07:36 1658

转载 Golang GC 垃圾回收机制详解

摘要在实际使用 go 语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究。本文对研究的结果进行一下总结。什么是垃圾回收?曾几何时,内存管理是程序员开发应用的一大难题。传统的系统级编程语言(主要指C/C++)中,程序员必须对内存小心的进行管理操作,控制内存的申请及释放。稍有不慎,就可能产生内存泄露问题,这种问题不易发现并且难以定位,一直成为困扰开...

2019-01-29 12:11:35 1109

原创 Linux awk+uniq+sort

需要用到的命令简介cat命令  cat命令主要有三大功能  1.一次显示整个文件 cat filename  2.创建一个文件 cat > fileName  3.将几个文件合并为一个文件 cat file1 file2 > file  参数:    -n 或 –number 由 1 开始对所有输出的行数编号    -b 或 –number-nonblank 和 -n...

2019-01-14 15:24:56 532

转载 Sublime text 3搭建Python开发环境及常用插件安装

一、环境准备1、官方网站地址2、Windows 103、Sublime Text 3 + 官网购买license(Just a suggestion,$80)  购买链接,Sublime Text may be downloaded and evaluated for free, however a license must be purchased for continued u...

2018-12-22 11:30:39 378

原创 reflect反射机制

1 概述          reflect 实现运行时反射,允许程序使用任意类型操作对象。典型的用法是用静态类型接口{}取值并通过调用返回类型的TypeOf 来提取其动态类型信息。反射是程序执行时检查其所拥有的结构。反射在程序中应用非常多,例如:动态生成数据:json 序列化/反序列化; orm 映射, proxy 透明代理对象 动态调用方法:plugin 实现 框架自动处理程序:...

2018-10-21 15:02:38 882

原创 go unsafe的用处

解释不为安排指针:  unsafe.Pointer其实就是类似C的void *,在golang中是用于各种指针相互转换的桥梁。uintptr是golang的内置类型,是能存储指针的整型,uintptr的底层类型是int,它和unsafe.Pointer可相互转换。  正常的情况来说go语言的中的结构私有变量不能直接被访问或者直接被修改,但是可以通过unsafe的操作来直接对么有变量进入取值...

2018-09-21 19:29:27 705 1

原创 go语言限制Goroutine数量

package mainimport ( _ "ORMTest/routers" "fmt" "runtime" "time")func main() { runtime.GOMAXPROCS(runtime.NumCPU()) c := make(chan bool, 100) t := time.Tick(time.Second) go func() { fo...

2018-09-21 17:02:32 2789

转载 [区块链技术] 吐血推荐!区块链从入门到放弃(区块链入门汇总整理)

一个完整的入门整理帖,所以到处搜罗搬运了一些觉得挺不错的来,直接贴链接应该不算侵权吧 入门介绍与原理: 一、比特币1.比特币白皮书这是一切的开始2.精通比特币讲比特币很详细的一本书,看完基本对比特币的认识就清楚了。3.TheProof-of-Work ConceptPoW机制理论介绍,英文4.比特币的原理及运作机制这篇是新手向,适合向圈外人介绍什么是比...

2018-08-31 21:28:16 436

转载 fastdfs 原理与过程

前言:(1)每次上传文件后都会返回一个地址,用户需要自己保存此地址。(2)为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。 网摘...

2018-07-23 19:06:44 310

转载 beego orm的使用

在使用beego model 去操作数据库时 有一些疑惑  找到了一个比较好的博文 原文地址 : https://my.oschina.net/u/252343/blog/829912 (KelvinQ )侵删  模型定义复杂的模型定义不是必须的,此功能用作数据库数据转换和自动建表默认的表名规则,使用驼峰转蛇形:AuthUser -> auth_userA...

2018-07-22 12:03:27 9977

转载 go-ethereum 部署私有链

go-ethereum 部署私有链说明服务器上传 geth 可执行程序第一台服务器节点创建创世区块配置文件初始化启动节点查看信息第二台服务器节点创建创世区块配置文件初始化启动节点查看信息添加静态节点文件第三台服务器节点挖矿测试go-ethereum 部署私有链说明服务器这里使用 30303 端口,所以需要确定该端口在三台服务器上都打开了,否则不能添加其他服务器节点。代号内网 IP操作目录说明eve...

2018-06-09 21:48:35 1185

转载 只用200行Go代码写一个自己的区块链!

“用不到200行 Go 代码就能实现一个自己的区块链!” 听起来有意思吗?有什么能比开发一个自己的区块链更好的学习实践方法呢?那我们就一起来实践下! 因为我们是一家从事医疗健康领域的科技公司,所以我们采用人类平静时的心跳数据(BPM心率)作为这篇文章中的示例数据。让我们先来统计一下你一分钟内的心跳数,然后记下来,这个数字可能会在接下来的内容中用到。通过本文,你将可以做到: 创建自己的区块链理解 h...

2018-02-28 21:26:53 634

转载 深入理解HDFS的架构和原理

 (一) HDFS主要是用于做什么的?        HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large ...

2018-02-26 12:14:03 621

原创 zookeeper关于go的负载均衡实例

搭建zookeeper的服务就不说,上网一大堆,直接上代码common.gopackage mainimport ( "fmt" "time" "github.com/go-zookeeper/zk")func GetConnect() (conn *zk.Conn, err error) { hosts := []string{"localhost:8090"} conn,...

2018-02-08 17:33:22 2293

转载 RabbitMQ分布式集群架构

RabbitMQ分布式集群架构和高可用性(HA)(一) 功能和原理设计集群的目的允许消费者和生产者在RabbitMQ节点崩溃的情况下继续运行通过增加更多的节点来扩展消息通信的吞吐量1 集群配置方式RabbitMQ可以通过三种方法来部署分布式集群系统,分别是:cluster,federation,shovelcluster:不支持跨网段,用于同一个网段内的

2017-11-13 16:19:57 643

转载 nginx如何做到TCP的负载均衡

如有转载,请声明出处: 极致博客: http://blog.csdn.net/u011218159TCP 的 负载均衡这个片段描述了如何通过nginx plus进行负载均衡在版本5中,nginx plus 能够代理和负载均衡通过TCP路径,TCP对于一些流行应用和服务是一个协议:LDAP、MYSQL、RTMPstream 模块TCP

2017-11-13 15:24:39 1733

转载 日志监控filebeat中文指南

Filebeat中文指南翻译自:https://www.elastic.co/guide/en/beats/filebeat/current/index.htmlpower by kerwin一、概述Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到e

2017-11-02 12:10:58 6567

原创 最自恋的golang的time.Format的坑

我想格式化输出日期fmt.Println(time.Now().Format("2010-10-10 15:04:05"))结果输出了9060-60-60 11:11:36这什么鬼百度了一个fmt.Println(time.Now().Format("2006-01-02 15:04:05"))这就输出正确了201

2017-06-09 11:14:00 3230 3

转载 Docker 命令详解

Docker 子命令:attach   commit   diff     export   history import  insert   kill       login   port    pull       restart    rmi     save      start    tag       version  build   cp       ev

2017-05-11 11:46:40 978

转载 supervisor配置详解(转)

原文:http://lixcto.blog.51cto.com/4834175/1539136    有阵子没写博客了,这段时间一直在研究python django框架和前端相关的东西。楼主学通信的,对web这一块啥也不懂,学了一个礼拜django,接着学了2个礼拜前端,感觉还是做不出来一个好看的页面。周末去了趟上海,蹭大神的讲课,学会了套用bootstrap框架和heighcharts,

2017-05-05 14:48:50 1336

转载 redis3.0.0 集群安装详细步骤

Redis集群部署文档(ubuntu系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:7005

2017-05-05 10:56:40 357

转载 Goroutine + Channel 实践

背景在最近开发的项目中,后端需要编写许多提供HTTP接口的API,另外技术选型相对宽松,因此选择Golang + Beego框架进行开发。之所以选择Golang,主要是考虑到开发的模块,都需要接受瞬时大并发、请求需要经历多个步骤、处理时间较长、无法同步立即返回结果的场景,Golang的goroutine以及channel所提供的语言层级的特性,正好可以满足这方面的需要。goroutine不

2017-05-02 18:03:09 643

转载 git删除远程文件夹或文件的方法

背景:想删除一个git目录里的文件,当时提交了,但想删除master里的,怎么办?git rm -r -n --cached  *git rm -r --cached *git commit -m"移除src目录下所有文件的版本控制"git push origin master[xiangdong@localhost SPEC]$  git rm SPECS -rfata

2017-05-02 15:46:45 13882 1

转载 redis.conf配置详细解析

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

2017-04-20 16:38:47 505

转载 container_of 函数

container_of  2010-05-23 22:34:32|  分类: 默认分类 |  标签: |字号大中小 订阅在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/** * container_of - cast a member of a s

2017-04-15 11:53:04 1027

转载 Mysql数据库调优和性能优化的21条最佳实践

作者:andyao原文link: http://andyao.iteye.com/admin/show/144033转载请留名1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL

2017-04-10 21:59:28 3455

转载 数据库索引的实现原理

强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在

2017-03-14 10:16:55 315

转载 TCP的三次握手(建立连接)和四次挥手(关闭连接)

参照:http://course.ccniit.com/CSTD/Linux/reference/files/018.PDFhttp://hi.baidu.com/raycomer/item/944d23d9b502d13be3108f61 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用

2017-03-10 14:37:25 772

转载 c++模板之SFINAE

什么是SFINAE?Substitution failure is not an error,匹配失败并不是错误,意思是用函数模板匹配规则来判断类型的某个属性是否存在,也就是说SFINAE可以作为一种编译期的不完整内省方法具体参见http://en.wikipedia.org/wiki/Substitution_failure_is_not_an_error案例:使用SFINAE判

2017-03-06 18:00:00 728

转载 C++必知必会(十五) 指向类的成员的指针并非指针

“指向类成员的指针”这个描述中有“指针”这个术语,其实,这是不合适的,因为它们既不包括地址,行为也不像指针。     如果你已经熟悉常规指针的声明语法,那么声明一个指向成员的指针,语法并不是太可怕:int*ip; // 一个指向int的指针int C::*pimC; //一个指针,指向C的一个int成员    所要做的全部事情

2017-03-06 17:58:16 615

android播放器

该产品为android音乐播放器,实现本地播放,音乐播放器的有功能都有了,并可以收藏,管理你的音乐文件,并有歌词同步的功能,相当不错

2012-12-22

空空如也

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

TA关注的人

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