自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(602)
  • 资源 (4)
  • 收藏
  • 关注

转载 channel 的底层原理

channel 的底层原理

2022-08-25 14:59:28 4526

转载 分布式事务面试八股文(2022最新整理)

分布式事务详解

2022-08-16 11:24:10 401

转载 【音视频开发FFmpeg】适合新手入门,Linux OS 环境下 FFmpeg 操作指南

ffmpeg是一个处理媒体文件的命令行工具 (command line based) 。它是一个拥有非常多功能的框架,并且因为他是开源的,很多知名的工具如 VLC,YouTube, iTunes 等等,都是再其之上开发出来的。ffmpeg最吸引我的地方就是它可以用非常简练的方式(通过一两个命令)完成许多的处理任务,当然,作为一个强大的工具,他也有很多较为复杂的使用方式,有些时候甚至可以代替一个完整的视频处理流程。在这个ffmpeg教程中,我会告诉你如何安装ffmpeg,以及各种使用方法,也会讲解一.

2022-05-12 16:49:38 749

原创 Gin框架使用通用http.Handler中間件

Gin框架使用通用http.Handler中間件Gin GolangshareSHAREShare to Weibo Share to Twitter Share to Facebook Share to Google+Gin是一个Go语言编写的Web框架。Gin有着一系列自己专用的中间件(middleware),通过Use()方法即可调用。那如果想要使用那些采用net/http包里标准接口的中间件该怎么办呢? 以下是在Gin框架中调用常见中间件类型的方法:参数为http.Handl

2022-02-18 13:07:52 2509

转载 Kafka水位(high watermark)与leader epoch的讨论

Kafka水位(high watermark)与leader epoch的讨论~~~这是一篇有点长的文章,希望不会令你昏昏欲睡~~~本文主要讨论0.11版本之前Kafka的副本备份机制的设计问题以及0.11是如何解决的。简单来说,0.11之前副本备份机制主要依赖水位(或水印)的概念,而0.11采用了leader epoch来标识备份进度。后面我们会详细讨论两种机制的差异。不过首先先做一些基本的名词含义解析。水位或水印(watermark)一词,也可称为高水位(high watermark),通常

2021-08-09 15:42:53 469

原创 gin框架timeout超时

package timeoutimport ( "net/http" "net/http/httptest" "testing" "time" "github.com/gin-gonic/gin" "github.com/stretchr/testify/assert")func emptySuccessResponse(c *gin.Context) { time.Sleep(200 * time.Microsecond) c.String(http.StatusOK, "".

2021-06-01 14:23:21 4488 2

原创 gin框架路由拆分与注册

gin框架路由拆分与注册本文总结了我平时在项目中积累的关于gin框架路由拆分与注册的若干方法。gin框架路由拆分与注册基本的路由注册下面最基础的gin路由注册方式,适用于路由条目比较少的简单项目或者项目demo。package mainimport ( "net/http" "github.com/gin-gonic/gin")func helloHandler(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ ".

2021-05-27 15:32:55 229

原创 看完这篇再也不怕 Redis 面试了

看完这篇再也不怕 Redis 面试了0x00.前言Redis是跨语言的共同技术点,无论是Java还是C++都会问到,所以是个高频面试点。笔者是2017年才开始接触Redis的,期间自己搭过单机版和集群版,不过现在大一些的公司都完全是运维来实现的,我们使用者只需要在web页面进行相关申请即可,很多细节都被屏蔽了,这样当然很方便啦,不过我们还是要深入理解一下的。在工作几年中笔者接触过Redis、类Redis的SSDB和Pika、谷歌的Key-Value存储引擎LevelDB、FackBook的K

2021-04-20 14:26:49 556

转载 为什么 Redis 选择单线程模型

为什么 Redis 选择单线程模型为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。Redis 作为广为人知的内存数据库,在玩具项目和复杂的工业级别项目中都看到它的身影,然而 Redis 却是使用单线程模型进行设计的,这与很多人固有的观念有所冲突,为什么单线程的程序能够抗住每秒几百万的请求量呢?这.

2021-04-20 12:01:55 122

原创 Golang是怎么利用epoll的

Golang是怎么利用epoll的飞雪无情1月21日LinuGo名不见经传的Gopher,公众号主要分享一些关于Golang,Linux,Kubernetes的经验与学习踩坑总结。使用Golang可以轻松地为每一个TCP连接创建一个协程去服务而不用担心性能问题,这是因为Go内部使用goroutine结合IO多路复用实现了一个“异步”的IO模型,这使得开发者不用过多的关注底层,而只需要按照需求编写上层业务逻辑。这种异步的IO是如何实现的呢?下面我会针对Linux系统进行分析。...

2021-04-20 11:52:28 3017

转载 1.8 万字详解 Go 是如何设计 Map 的

1.8 万字详解 Go 是如何设计 Map 的Go语言精选|1342020-10-19 02:15000 由于本文篇幅较长,故将目录整理如下什么是Map 维基百科的定义 In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs,...

2021-04-16 15:01:17 263

转载 Kafka 架构原理解析

Kafka 架构原理解析臧远慧分布式实验室2020-04-10本文主要讲解 Kafka 是什么、Kafka 的架构包括工作流程和存储机制,以及生产者和消费者。最终大家会掌握 Kafka 中最重要的概念,分别是 Broker、Producer、Consumer、Consumer Group、Topic、Partition、Replica、Leader、Follower,这是学会和理解 Kafka 的基础和必备内容。定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(M...

2021-04-07 12:56:57 142

原创 nginx大全

nginx大全1.1什么是nginx?nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor-Sysoev所开发,官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,所以现在很多知名的公司都在使用nginx。1.2 nginx应用场景1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。2、虚拟主机。可以实现在一台服务器虚拟出多个网.

2021-04-06 18:49:57 738

转载 [灵魂拷问]MySQL面试高频问题(工程师方向)

[灵魂拷问]MySQL面试高频问题(工程师方向)程序君JAVA高级架构2020作者丨呼延十juejin.im/post/5d351303f265da1bd30596f9前言本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水.前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面试文章,发现其中的一些问题自己也回答不好,虽然知识点大部分都知道,但是无法将知识串联起来.因此决定搞一个MyS...

2021-03-30 13:48:25 176

原创 一致性哈希算法的理解与实践

一致性哈希算法的理解与实践过往记忆大数据2019-03-05本文原文(点击下面 阅读原文即可进入):https://yikun.github.io/2016/06/09/一致性哈希算法的理解与实践/在维基百科中,是这么定义的一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中K是关键字的数量, n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。引出我们在上文中已经介绍了一致性.

2021-03-28 22:13:04 155

转载 说说MySQL事务的实现原理

面试官:说说MySQL事务的实现原理小小木的博客业余草2020-09-27你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起精进!编辑:业余草来源:cnblogs.com/wyc1994666/p/11367051.html推荐:https://www.xttblog.com/?p=5107开篇相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及..

2021-03-28 11:38:06 171

原创 数据库面试没那么难,不信你看这24道题!

数据库面试没那么难,不信你看这24道题!让我来处理高并发关注12020.12.29 13:21:53字数 5,298阅读 3,936一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE

2021-03-28 11:02:29 143

转载 一文读懂Redis中的多路复用模型

一文读懂Redis中的多路复用模型服务端思维5天几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而I/O 多路复用就是为了解决这个问题而出现的。阻塞IO先来看一下传统的阻塞 I/O 模型到底是如何工作的:当使用read...

2021-03-28 10:55:32 231

转载 如果叫你设计一个短链接系统,你会从那些方面来提高性能呢?

如果叫你设计一个短链接系统,你会从那些方面来提高性能呢?# 前言今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。本文将会从以下几个方面来讲解,每个点包含的信息量都不少,相信大家看完肯定有收获短链跳转的基本原理 短链生成的几种方法 高性能短链的架构设计1、链接变..

2021-03-28 10:48:35 392

原创 深入了解MySQL主从复制的原理

深入了解MySQL主从复制的原理原创SHSH的全栈笔记1月12日收录于话题#MySQL2个欢迎微信关注「SH的全栈笔记」0. 主从复制首先主从复制是什么?简单来说是让一台MySQL服务器去复制另一台MySQL的数据,使两个服务器的数据保持一致。这种方式与Redis的主从复制的思路没有太大的出入。如果你对Redis的主从复制感兴趣可以去看看《Redis的主从复制》。那既然Redis和MySQL都采用了复制这种方式,主从复制所带来的意义是什么呢?通过复制功能,构建一...

2021-03-26 12:40:10 207

原创 出现这 4 种情况,才是考虑分库分表的时候!

出现这 4 种情况,才是考虑分库分表的时候!点击关注 ????架构之路1月25日点击上方“架构之路”,关注、置顶公众号架构干货,第一时间送达!前言当数据库的数据量过大,大到一定的程度,我们就可以进行分库分表。那么基于什么原则,什么方法进行拆分,这就是本篇所要讲的。数据库瓶颈不管是 IO 瓶颈还是 CPU 瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务 Service 来看, 就是可用数据库连接少甚至无连接可用,接下来就可以想象

2021-03-24 14:18:09 121

转载 微博千万级规模高性能高并发的网络架构设计

微博千万级规模高性能高并发的网络架构设计zhishengFlink 实时计算框架基础&进阶&实战&源码解析,死磕Flink&Spark&ElasticSearch&Kafka&...! 坑要一个个填,路要跟着zhisheng走!137篇原创内容公众号架构以及我理解中架构的本质在开始谈我对架构本质的理解之前,先谈谈自己的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战...

2021-03-17 19:07:01 98

转载 golang 结构体作为map的元素时,不能够直接赋值给结构体的某个字段

golang 结构体作为map的元素时,不能够直接赋值给结构体的某个字段引入: 错误 Reports assignments directly to a struct field of a map1. 问题的产生这个问题在github上可以追溯到2012年提交的一个issue,链接为https://github.com/golang/go/issues/3117;如上图,结构体作为map的元素时,不能够直接赋值给结构体的某个字段,也就是map中的struct中的字段不能够直接寻址..

2020-11-11 13:27:22 949

转载 golang按key值进行升序排序(ksort),对字符串进行sha1哈希

golang按key值进行升序排序(ksort),对字符串进行sha1哈希在对接PHP语言实现的签名的时候,看见对方用了ksort,由于golang里面对map的遍历是无序的,所以用golang实现了对map按key值进行升序排序:package mainimport ( "crypto/sha1" "encoding/hex" "fmt" "sort" "strconv" "time")func main() { ti..

2020-08-11 13:05:46 3608

转载 golang | Go语言入门教程——结构体初始化与继承

golang | Go语言入门教程——结构体初始化与继承今天是golang专题第10篇文章,我们继续来看golang当中的面向对象部分。在上一篇文章当中我们一起学习了怎么创建一个结构体,以及怎么给结构体定义函数,还有函数接收者的使用。今天我们来学习一下结构体本身的一些使用方法。初始化在golang当中结构体初始化的方法有四种。new关键字我们可以通过new关键字来创建一个结构体的实例,这种方法和其他语言比较类似,这样会得到一个空结构体指针,当中所有的字段全部填充它类型对应..

2020-07-14 11:11:41 475

转载 HTTP包默认路由匹配规则

HTTP包默认路由匹配规则内容简介:最近看到 http 包的相关内容,写了几个路由发现规则好像不是正则匹配,下面从源码触发分析下路由匹配和执行的过程上面的代码的执行情况如下,对于一般中间件的结构如下最近看到 http 包的相关内容,写了几个路由发现规则好像不是正则匹配,下面从源码触发分析下路由匹配和执行的过程问题引入//路由1http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt...

2020-05-22 11:00:54 503

转载 leetcode回溯算法

LeetCode--回溯法心得​武汉大学 软件工程硕士在读​关注他206 人赞同了该文章这两天在刷LeetCode37题解数独时,被这个回溯法折腾的不要不要的,于是我疼定思疼发誓一定要找个能解决这类回溯法的套路出来,方便以后快速解决此类题目。于是我在网上找了两个很经典的回溯法题目--八皇后问题和迷宫问题,认真总结了一番,发现其中还真的有一些共同之处,我会...

2020-04-28 16:03:09 307 1

转载 堆排序

堆排序之前的随笔写了栈(顺序栈、链式栈)、队列(循环队列、链式队列)、链表、二叉树,这次随笔来写堆1、什么是堆?堆是一种非线性结构,(本篇随笔主要分析堆的数组实现)可以把堆看作一个数组,也可以被看作一个完全二叉树,通俗来讲堆其实就是利用完全二叉树的结构来维护的一维数组按照堆的特点可以把堆分为大顶堆和小顶堆大顶堆:每个结点的值都大于或等于其左右孩子结点的值小顶堆:每个结点的值...

2020-01-20 11:40:10 866

原创 最长公共子序列

动态规划+优化,双100%思路1、考虑从后往前推导,随着字符串的变长,两个字符串的最后一个字符相同或者不同,对最长公共子序列的长度影响。2、使用arr[i][j]表示text1的前i个字符和text2的前j个字符的最长公共子序列长度,得到以下状态转移方程:   若text1的第i个字符和text2的第j个字符相同,则     arr[i][j] = arr[i - 1][j - 1] ...

2020-01-17 13:17:32 174

转载 什么是动态规划?

什么是动态规划?动态规划(Dynamic Programming)是一种分阶段求解决策问题的数学思想,它通过把原问题分解为简单的子问题来解决复杂问题.动态规划在很多领域都有着广泛的应用,例如管理学,经济学,数学,生物学.动态规划适用于解决带有最优子结构和子问题重叠性质的问题.最优子结构: 即是局部最优解能够决定全局最优解(也可以认为是问题可以被分解为子问题来解决),如果问题的最...

2020-01-13 14:11:04 8932 1

转载 什么是动态规划

作者:阮行止链接:https://www.zhihu.com/question/23995189/answer/613096905来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。0. intro  很有意思的问题。以往见过许多教材,对动态规划(DP)的引入属于“奉天承运,皇帝诏曰”式:不给出一点引入,见面即拿出一大堆公式吓人;学生则死啃书本,然后突然...

2020-01-13 12:09:24 326

原创 [图解] 归并排序

[图解] 归并排序1. 图示过程(1) 归并排序的流程(2) 合并两个有序数组的流程2. 动图展示3. Java代码实现public static void mergeSort(int[] arr) { sort(arr, 0, arr.length - 1);}public static void sort(int[] arr, int ...

2020-01-06 14:45:32 96

转载 手摇算法-----字符串

手摇算法怎样实现字符串倒置呢。直接用头尾两个指针从两边向中间扫。而且不断交换两个指针的内容。void reverse(int a[], int n){ if(n < 2) return; for(int i = 0; i <= n;) swap(a[i++], a[--n]);}然后,如果要实现字符串反转呢,比方,有字符串abcdefg。如果...

2020-01-06 11:48:50 99

原创 PHP设计模式:装饰器模式

PHP设计模式:装饰器模式前言装饰器模式可以随心所欲动态的添加属性,最大程度上实现了灵活性主要分为被装饰的物品 装饰的组件装饰器模式中,可以随意的将组件和被装饰品抽象被装饰的物品抽象 装饰的组件抽象 两个一起抽象 两个都不抽象 爱怎么搞怎么搞其中,带着抽象的代码示例为:<?php//声明一个装饰抽象类abstract class Compon...

2019-12-17 16:48:02 147 1

原创 LeetCode-3 无重复字符的最长子串

LeetCode-3 无重复字符的最长子串题目:3. 无重复字符的最长子串 难度:中等 分类:字符串 解决方案:双指针、滑动窗口<!-- more -->LeetCode前几道题都是经典题,今天我们学习第3题无重复字符的最长子串,这道题在秋招面试中遇见过,再次相遇,如此亲切。下面我们看看这道题的题目描述。题目描述给定一个字符串,请你找出其中不含有重复...

2019-12-16 21:19:23 100

原创 SPU和SKU都是什么意思

SPU和SKU都是什么意思六月的帅发布时间:18-09-1623:19做电商的需要厘清两个概念SPU和SKUSPU = Standard Product Unit (标准产品单位)SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。在商品信息电子化过程中,商品的特性可以由多个“属性|属性值对”进行描述。“属性|属性值对”完全相...

2019-12-16 19:56:32 2197

原创 Go并发之Context篇

Go并发之Context篇前言介绍:在学习Go并发的时候,我们总是能够看到context,而这个context却只在go语言中存在。笔者在看到context的时候,便问了自己几个问题。context是什么?是用来干什么的?我们为什么需要context? context是如何使用的?它为什么被设计成这个样子?基于上面的这些问题,笔者做了整理,笔者觉得在知道了这些问题的答案之后,...

2019-11-29 13:34:03 137

转载 图解Go语言内存分配

图解Go语言内存分配码农桃花源原文作者:Stefno 基础概念 内存管理单元 内存管理组件 mcache mcentral mheap 内存分配流程 总结 参考资料 Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以...

2019-11-29 10:45:13 133

原创 经常说的CPU上下文切换是什么意思?(上)

经常说的CPU上下文切换是什么意思?(上)学习倪鹏飞老师linux性能优化实践的笔记,文中大量内容来源于老师的文档材料,如果喜欢请移步文末截图中的二维码支持老师的课程:有时候看系统的资源利用率,我们会发现,cpu的use值不搞但sys值特别高,同时负载也会比较高,这时我们就会比较疑惑,我程序明明用的cpu很少啊,为什么负载特别高?嗯 原因就是上下文切换了。我们都知道,Linux是...

2019-11-28 11:05:47 663

转载 Golang中的CPU占满100%及解决方案

Golang中的CPU占满100%及解决方案有一个流媒体适配服务,出现了CPU开销很大的问题,一个服务把CPU资源占满了,导致其他服务无法正常工作。下面来详细记录发现bug和解决的流程。发现CPU开销很大扫描发现,是垃圾回收导致CPU使用上升 :Time: Mar 22, 2019 at 5:52pm (CST)Duration: 1mins, Total samp...

2019-11-26 21:21:14 4528

secureCRT8.0.4

链接服务器使用rz sz资源 。链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源

2018-05-25

charles破解版win-mac

破解charles

2017-04-24

C++帮助手册/文档

这里有c和c++的所有手册,还有一些基本的理论知识,很好的哦,欢迎下载,亲

2013-12-20

数据结构与算法分析

对于初学的人还不错哦,尤其是自学c或者c++的.欢迎下载

2013-12-02

空空如也

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

TA关注的人

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