04 2021 档案

【GoLang】golang context channel 详解
摘要:package main import ( "fmt" "time" "golang.org/x/net/context") func main() { // ctx, cancelFunc := context.WithDeadline(context.Background(), time.Now 阅读全文

posted @ 2021-04-26 11:44 ExplorerMan 阅读(248) 评论(0) 推荐(0)

图解 | 你管这破玩意叫哨兵?
摘要:我是一个苦逼的运维,有一次老板过来找我。 老板:现在有四个 redis 节点摆在你面前,一主三从,你负责盯着点,主节点挂了你赶紧想办法拿从节点顶上来,交给你了! 这还不简单! 首先我先分别连上这四台 redis 节点。 redis-cli -h 10.232.0.0 -p 6379redis-cli 阅读全文

posted @ 2021-04-26 11:20 ExplorerMan 阅读(181) 评论(0) 推荐(0)

mongodb存储引擎
摘要:存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上。从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引擎(Storage Engine),MongoDB支持的存储引擎有:WiredTiger,MMAPv 阅读全文

posted @ 2021-04-23 17:24 ExplorerMan 阅读(397) 评论(0) 推荐(0)

mongodb sharded cluster中的概念
摘要:mongodb的分片集群包含下面的几部分:shared:每个shared包含一系列的分片数据,每个shared可以部署为单个的replica setmongos:这个是个查询路由,在客户端和集群间提供接口,处理应用层的查询请求,决定数据在集群中的位置。config servers:配置server, 阅读全文

posted @ 2021-04-23 17:22 ExplorerMan 阅读(172) 评论(0) 推荐(0)

用DD命令制作硬盘镜像
摘要:用DD命令制作硬盘镜像 本文参考http://serverfault.com/questions/4906/using-dd-for-disk-cloning写出,转载时请说明出处。 以下的说明都是针对备份整个硬盘,而不是备份某一个分区。 一、用DD命令制作硬盘镜像的特点 (1)在制作镜像时,不能对 阅读全文

posted @ 2021-04-23 15:30 ExplorerMan 阅读(5212) 评论(0) 推荐(0)

golang 中, os.exit() runtime.Goexit() return 有什么区别
摘要:return结束当前函数,并返回指定值runtime.Goexit结束当前goroutine,其他的goroutine不受影响,主程序也一样继续运行os.Exit会结束当前程序,不管你三七二十一 Gosched 暂停当前goroutine,使其他goroutine先行运算。只是暂停,不是挂起,当时间 阅读全文

posted @ 2021-04-23 15:04 ExplorerMan 阅读(1765) 评论(0) 推荐(0)

Golang 协程控制关闭
摘要:部分代码参考:https://zhuanlan.zhihu.com/p/26695984 这边文章的的 package main import ( "context" "fmt" "time") func main() { ctx := context.Background() ctx, cance 阅读全文

posted @ 2021-04-23 15:00 ExplorerMan 阅读(953) 评论(0) 推荐(0)

Redis主从集群切换数据丢失问题
摘要:一、数据丢失的情况 异步复制同步丢失集群产生脑裂数据丢失 1.异步复制丢失对于Redis主节点与从节点之间的数据复制,是异步复制的,当客户端发送写请求给master节点的时候,客户端会返回OK,然后同步到各个slave节点中。如果此时master还没来得及同步给slave节点时发生宕机,那么mast 阅读全文

posted @ 2021-04-23 11:07 ExplorerMan 阅读(679) 评论(0) 推荐(0)

Goroutine(协程)的理解
摘要:title: Goroutine(协程)的理解tags: Go,GoroutineAuthor: Clown95 并发概念 Go语言相对于其他语言的最大一个特色就是支持高并发编程模式。Goroutine(协程)是Go中最基本的执行单元。事实上每一个Go程序至少有一个Goroutine:主Gorout 阅读全文

posted @ 2021-04-21 10:26 ExplorerMan 阅读(401) 评论(0) 推荐(0)

堆和栈的概念和区别
摘要:在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进 阅读全文

posted @ 2021-04-21 10:24 ExplorerMan 阅读(453) 评论(0) 推荐(0)

golang goroutine实现_golang中的Mutex设计原理详解(一)
摘要:Mutex系列是根据我对晁岳攀老师的《Go 并发编程实战课》的吸收和理解整理而成,如有偏差,欢迎指正~ 目标本系列除了希望彻底学习和了解 golang 中 sync.Mutex 的原理和使用,更希望借 golang 中 Mutex 的发展和演变,了解并发场景下锁的设计与实现方法以及不同业务场景下的一 阅读全文

posted @ 2021-04-21 10:09 ExplorerMan 阅读(188) 评论(0) 推荐(0)

Sentinel Go 核心统计结构滑动窗口的深度解析
摘要:Sentinel Go 核心模块分析之滑动窗口统计结构设计什么是滑动时间窗口滑动窗口基本运行模式滑动窗口的周期和格子长度怎么设置?滑动窗口长度一致,格子长度不一致格子长度一致,滑动窗口长度不一致总结Sentinel Go时间滑动窗口实现长度可设置的原子数组基于时间的滑动窗口实现 本文主要分析 Sen 阅读全文

posted @ 2021-04-21 10:08 ExplorerMan 阅读(347) 评论(0) 推荐(0)

golang sync.Mutex互斥锁的实现原理
摘要:golang sync.Mutex互斥锁的实现原理数据结构与状态机Lock(1)正常模式(2) 饥饿模式Unlocksync.Mutex是一个不可重入的排他锁。 这点和Java不同,golang里面的排它锁是不可重入的。 当一个 goroutine 获得了这个锁的拥有权后, 其它请求锁的 gorou 阅读全文

posted @ 2021-04-21 10:07 ExplorerMan 阅读(489) 评论(0) 推荐(0)

Golang-Scheduler原理解析
摘要:Golang Scheduler原理解析Section1 Scheduler原理1.基础知识2.调度模型3.调度核心问题Section2 主要模型的源码分析2.1 实体M2.2 实体P(processor)2.3 实体G(goroutine)Section3 主要调度流程的源码分析3.1 预备知识3 阅读全文

posted @ 2021-04-21 10:06 ExplorerMan 阅读(424) 评论(0) 推荐(0)

Golang-Channel原理解析
摘要:本文主要分析golang实现并发基础组件channel的实现原理;主要内容分为几个部分Section1:channel使用实例分析Section2:源码分析 Golang-Channel原理解析Section1 channel使用实例1.1 make channel1.2 sends and rec 阅读全文

posted @ 2021-04-21 10:04 ExplorerMan 阅读(712) 评论(0) 推荐(0)

golang里channel的实现原理
摘要:channel是消息传递的机制,用于多线程环境下lock free synchronization. 它同时具备2个特性: 1. 消息传递 2. 同步 golang里的channel的性能,可以参考前一篇:http://blog.sina.com.cn/s/blog_630c58cb01016xur 阅读全文

posted @ 2021-04-21 09:52 ExplorerMan 阅读(568) 评论(0) 推荐(0)

最长回文子序列
摘要:【题目】 注意,子序列跟子串是不一样的。子序列是从字符串中取出元素,相对顺序不变,但是可以不挨着。子串肯定是截取一段。 【方法一:记忆化搜索】 假设fun(char[] S , int i , int j) 返回的是串S[i...j]的最长回文子序列。 则如果S[i]==S[j] , 则:fun(S 阅读全文

posted @ 2021-04-20 11:44 ExplorerMan 阅读(88) 评论(0) 推荐(0)

GO语言的goroutine并发原理和调度机制
摘要:1. 线程(Thread)和协程(Coroutine)的定义 Go语言最大的特色就是从语言层面支持并发(Goroutine),Goroutine是Go中最基本的执行单元。事实上每一个Go程序至少有一个Goroutine:主Goroutine。当程序启动时,它会自动创建。 为了更好理解Goroutin 阅读全文

posted @ 2021-04-19 18:31 ExplorerMan 阅读(662) 评论(0) 推荐(0)

golang 常见问题
摘要:1、go的调度 2、go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3、go defer(for defer),先进后出,后进先出 4、select可以用于什么,常用语gorotine的完美退出 gola 阅读全文

posted @ 2021-04-19 18:06 ExplorerMan 阅读(363) 评论(0) 推荐(0)

容器核心技术 :Cgroup 与 Namespace
摘要:容器 = cgroup + namespace + rootfs + 容器引擎 Cgroup: 资源控制 namespace: 访问隔离 rootfs:文件系统隔离。镜像的本质就是一个rootfs文件 容器引擎:生命周期控制 一、Cgroup Cgroup 是 Control group 的简称,是 阅读全文

posted @ 2021-04-19 18:02 ExplorerMan 阅读(536) 评论(0) 推荐(0)

Go语言---strings包(字符串操作)
摘要:strings标准库包主要涉及字符串的基本操作。 常见字符串的操作有: 字符串求长度 求子串 是否存在某个字符或者子串 子串出现的次数(字符串匹配) 字符串分割(切分)成[]string 字符串是否存在某个前缀或后缀 字符或者子串在字符串中首次出现的位置或最后一次出现的位置 通过某个字符串将[]st 阅读全文

posted @ 2021-04-16 11:43 ExplorerMan 阅读(1161) 评论(0) 推荐(0)

gRPC为什么用HTTP2作为传输协议
摘要:HTTP / 2: 多路复用 TCP连接 二进制代替文本 标题压缩 服务器推送 基于HTTP/2 的缺点 rpc的元数据的传输不够高效 尽管HPAC可以压缩HTTP Header,但是对于rpc来说,确定一个函数调用,可以简化为一个int,只要两端去协商过一次,后面直接查表就可以了,不需要像HPAC 阅读全文

posted @ 2021-04-16 10:38 ExplorerMan 阅读(563) 评论(0) 推荐(0)

Golang 服务优雅重启
摘要:很多时候对于服务升级的做法简单粗暴, 就简单的杀进程启动新的进程. 还有的好一点就是多个相同的服务依次升级, 保证有服务可用. 但是公平的说这两种都会丢失请求中的连接. 鉴于这种情况, 在现实中我们可以使用优雅重启来搞定这个问题. Golang 实现优雅重启的原理也很简单: 监听 USR2 信号; 阅读全文

posted @ 2021-04-16 10:21 ExplorerMan 阅读(317) 评论(0) 推荐(0)

go优雅重启或停止
摘要:想要优雅地重启或停止你的Web服务器,使用下面的方法 我们可以使用fvbock/endless来替换默认的ListenAndServe,有关详细信息,请参阅问题#296 router := gin.Default() router.GET("/", handler) // [...] endless 阅读全文

posted @ 2021-04-16 00:42 ExplorerMan 阅读(580) 评论(0) 推荐(0)

go语言sync包的学习(Mutex、WaitGroup、Cond)
摘要:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 阅读全文

posted @ 2021-04-16 00:25 ExplorerMan 阅读(109) 评论(0) 推荐(0)

go语言中container容器数据结构heap、list、ring
摘要:heap堆的使用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 阅读全文

posted @ 2021-04-16 00:22 ExplorerMan 阅读(122) 评论(0) 推荐(0)

Linux namespace命名空间
摘要:namespace[1]提供一种隔离机制,让不同的namespace下的进程看到的全局资源不同,每一个namespace有一个自己独立的全局资源实例。 namespace的一个用途是实现容器。 linux-namespace.png Linux系统下的namespace类型 名称API中使用的标识手 阅读全文

posted @ 2021-04-16 00:01 ExplorerMan 阅读(624) 评论(0) 推荐(0)

linux系统资源限制ulimit
摘要:ulimit命令用来限制系统用户对shell资源的访问。如果不懂什么意思,下面一段内容可以帮助你理解: 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受 阅读全文

posted @ 2021-04-15 23:52 ExplorerMan 阅读(239) 评论(0) 推荐(0)

分析golang内存占用情况
摘要:性能优化是个永恒的话题,而很多时候我们在作性能优化的时候,往往基于代码上面的直觉,把所有能想到的优化都优化了一遍,不错过任何小的优化点,结果整个代码的逻辑变得极其复杂,而性能上面并没有太大的提升。事实上,性能问题往往集中在某些小点,有时候很小的改动就能有巨大的提升,所以问题的关键是是怎么去找出这些优 阅读全文

posted @ 2021-04-15 23:49 ExplorerMan 阅读(1321) 评论(0) 推荐(0)

Golang中sync.Map的实现原理
摘要:前言前面,我们讲了map的用法以及原理Golang中map的实现原理,但我们知道,map在并发读写的情况下是不安全。需要并发读写时,一般的做法是加锁,但这样性能并不高,Go语言在 1.9 版本中提供了一种效率较高的并发安全的 sync.Map,今天,我们就来讲讲 sync.Map的用法以及原理 使用 阅读全文

posted @ 2021-04-15 23:47 ExplorerMan 阅读(682) 评论(0) 推荐(0)

golang实现控制cpu使用率
摘要:package main import ( "runtime")func main() { runtime.GOMAXPROCS(3) go task() go task() select{}}func task(){ a := 100 for { a += 1 }}上面代码正常情况下会使cpu使用 阅读全文

posted @ 2021-04-15 11:09 ExplorerMan 阅读(1186) 评论(0) 推荐(0)

golang下Map的使用和性能分析(勿滥用锁)
摘要:golang 中 map 性能优化[低阶] 简单介绍 golang 中的 build-in 的 map 这个 map 是非线程安全的,但是也是最常用的一个家伙。 为了测试多个 map 的性能我写了个接口 Map type Map interface { Set(key string, val int 阅读全文

posted @ 2021-04-15 00:32 ExplorerMan 阅读(1068) 评论(0) 推荐(0)

golang结构体方法指针
摘要:结构体方法指针 package main import "fmt" type SA struct { name string} func (o *SA) SetName(n string) { o.name = n} func (o SA) SetNameA(n string) { o.name = 阅读全文

posted @ 2021-04-15 00:20 ExplorerMan 阅读(150) 评论(0) 推荐(0)

贝叶斯分析:抛硬币的概率真的是1/2吗
摘要:前言 前面两文介绍了贝叶斯学派的思想和先验分布、后验分布的相关知识,古典频率学派认为抛硬币的概率是常数,本文从贝叶斯学派的角度看待抛硬币的概率问题。本文详细介绍了 β分布,重述贝叶斯思想,对于抛硬币的概率问题作各种情况的分析,最后总结本文。 目录 1、为什么选择β分布作为先验分布 2、重述贝叶斯思想 阅读全文

posted @ 2021-04-12 18:53 ExplorerMan 阅读(1839) 评论(0) 推荐(0)

超参数搜索
摘要:###基础概念 超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,在机器学习过程中需要对超参数进行优化,给学习器选择一组最优超参数,以提高学习的性能和效果。比如,树的数量或树的深度,学习率(多种模式)以及k均值聚类中的簇数等都是超参数。 与超参数区别的概念是参数,它是 阅读全文

posted @ 2021-04-09 16:53 ExplorerMan 阅读(424) 评论(0) 推荐(0)

如何区分参数和超参数
摘要:相信所有人刚开始应用机器学习时,都会被两个术语混淆。 计算机学科里有太多的术语,而且许多术语的使用并不一致。哪怕是相同的术语,不同学科的人理解一定有所不同。 比如说:“模型参数(model parameter)”和“模型超参数(model Hyperparameter)”。 对于初学者来说,这些没有 阅读全文

posted @ 2021-04-09 16:37 ExplorerMan 阅读(574) 评论(0) 推荐(0)

各种 AI 数据增强方法,都在这儿了
摘要:头图 | 下载于视觉中国 数据、算法、算力是人工智能发展的三要素。数据决定了Ai模型学习的上限,数据规模越大、质量越高,模型就能够拥有更好的泛化能力。 然而在实际工程中,经常有数据量太少(相对模型而言)、样本不均衡、很难覆盖全部的场景等问题,解决这类问题的一个有效途径是通过数据增强(Data Aug 阅读全文

posted @ 2021-04-09 15:59 ExplorerMan 阅读(2133) 评论(0) 推荐(0)

EDA:最简单的自然语言处理数据增广方法
摘要:These are the Easiest Data Augmentation Techniques in Natural Language Processing you can think of — and they work. 作者 | Jason Wei 翻译 | AI小山 校对 | 酱番梨 阅读全文

posted @ 2021-04-09 15:56 ExplorerMan 阅读(323) 评论(0) 推荐(0)

图像识别技术的原理
摘要:作者:腾讯链接:https://www.zhihu.com/question/38014222/answer/499925265来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 人类是怎么识别的?当我们看到一个东西,大脑会迅速判断是不是见过这个东西或者类似的东西。这个过 阅读全文

posted @ 2021-04-08 16:27 ExplorerMan 阅读(6451) 评论(0) 推荐(0)

golang面试题整理
摘要:golang面试题整理 1、go的调度2、go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3、go defer(for defer),先进后出,后进先出 func b() { for i := 0; i 阅读全文

posted @ 2021-04-06 17:25 ExplorerMan 阅读(4118) 评论(0) 推荐(0)

漫画Go语言中如何将数组切片复制/拷贝
摘要:赖思与甜甜,有趣有料有温度,技术学习有思路! Go中的Array数组,是用来存放相同类型元素的固定大小的集合。如何将数组复制到另一个数组呢?看看赖思有何妙招! func main() { arr := [3]int{1, 2, 3} arr2 := arr arr3 := &arr fmt.Prin 阅读全文

posted @ 2021-04-06 17:22 ExplorerMan 阅读(277) 评论(0) 推荐(0)

[go-rate] 速率限制器
摘要:go-rate是速率限制器库,基于 Token Bucket(令牌桶)算法实现。 go-rate被用在LangTrend的生产中 用于遵守GitHub API速率限制。 速率限制可以完成一些特殊的功能需求,包括但不限于服务器端垃圾邮件保护、防止api调用饱和等。 库使用说明 构造限流器 我们首先构造 阅读全文

posted @ 2021-04-06 17:17 ExplorerMan 阅读(406) 评论(0) 推荐(0)

使用fresh类库实现Go gin热重启
摘要:最近在学习Golang,每次修改代码之后都需要重新build,Go目前没有内置代码热更新的工具,找了一下找到了第三方类库fresh,在开发的时候使用起来炒鸡方便的。 安装 go get github.com/pilu/fresh 使用 进入项目根目录 cd $GOPATH/src/fresh_tes 阅读全文

posted @ 2021-04-06 16:01 ExplorerMan 阅读(1004) 评论(0) 推荐(0)

Go语言基础之Gin框架的热启动
摘要:我是很喜欢beego框架bee工具的热启动效果,感觉爽到不能呼吸。但是用gin框架去开发的时候,就发现难受的很~~ 所以,经过我在网上这顿搜,发现了一个好玩意儿,Air Air是啥玩意儿啊? 这是一个能够检测项目代码变化的插件,支持热启动,我一看,擦,想啥来啥! Air的安装 go go get - 阅读全文

posted @ 2021-04-06 15:58 ExplorerMan 阅读(686) 评论(0) 推荐(0)

go中gin框架+realize实现边写代码边编译,热更新,方便边改边看效果
摘要:最近看到了热加载,相关的,就搜索了goland实现热加载 发现了一个插件realize https://github.com/oxequa/realize 然后,为了自己撸代码更方便,配合gin写个教程 1.准备 go get github.com/oxequa/realizego get gith 阅读全文

posted @ 2021-04-06 15:57 ExplorerMan 阅读(452) 评论(0) 推荐(0)

golang BFS DFS
摘要:突然想起一个面试题,用go实现不太好写,明天在想有什么好的方法实现图,暂时就想到这么实现,具体分析看代码注释 package main import "fmt" type list struct { data string next []*list //代表每个节点能够访问的节点,比如v0的next 阅读全文

posted @ 2021-04-06 14:40 ExplorerMan 阅读(259) 评论(0) 推荐(0)

Python调用golang
摘要:有些时候因为效率问题部分代码会 使用Python调用go的编译生成动态链接库go 代码示例//add.gopackage main import "C" //export Addfunc Add(a, b int) int { return a + b} //export Addstrfunc Ad 阅读全文

posted @ 2021-04-02 11:50 ExplorerMan 阅读(696) 评论(0) 推荐(0)

Go语言中new()和 make()的区别详解
摘要:概述 Go 语言中的 new 和 make 一直是新手比较容易混淆的东西,咋一看很相似。不过解释两者之间的不同也非常容易。 new 的主要特性 首先 new 是内建函数,你可以从 http://golang.org/pkg/builtin/#new 这儿看到它,它的定义也很简单: 复制代码代码如下: 阅读全文

posted @ 2021-04-01 19:02 ExplorerMan 阅读(538) 评论(0) 推荐(0)

go 链表操作
摘要:链表操作是数据结构中基本的操作,下面用golang实现一下链表的基本操作,包括增、删、查以及单链表的反转操作。 package link import ( "fmt" "github.com/pkg/errors" ) //链表结构 type ListNode struct { data int n 阅读全文

posted @ 2021-04-01 17:54 ExplorerMan 阅读(407) 评论(0) 推荐(0)

golang中,map作为函数参数是如何传递的
摘要:当你声明一个map的时候: m := make(map[int]int) 编译器会调用 runtime.makemap: // makemap implements a Go map creation make(map[k]v, hint) // If the compiler has determ 阅读全文

posted @ 2021-04-01 11:15 ExplorerMan 阅读(516) 评论(0) 推荐(0)

导航