面试总是过不了,看完蚂蚁金服6面,顺利征服面试官

前段时间有粉丝来信,说他面试上了蚂蚁金服,这感情好啊,蚂蚁都准备上市了,这不距离财富自由不远了吗?今天小编就来分享一下这位粉丝的面试经历,希望小编的分享能对你有所帮助。 面试前 蚂蚁的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其它时间。 全程 6 面,前五面技术面,电话面试,最后一面是 HR 面,现场面。 一面 介绍一下自己 问项目经历, 聊”数据同步” 接着聊上了 K8S 的项目 有没有什么钻研得比较深得技术? k...阅读全文

简书 2020-11-05 15:32:41 程序员麦冬

Golang中sync.Map的实现原理

前言 前面,我们讲了map的用法以及原理Golang中map的实现原理,但我们知道,map在并发读写的情况下是不安全。需要并发读写时,一般的做法是加锁,但这样性能并不高,Go语言在 1.9 版本中提供了一种效率较高的并发安全的 sync.Map,今天,我们就来讲讲 sync.Map的用法以及原理 使用方法 func main() { var m sync.Map //插入 m.Store("1","a") //取值 fmt.Println(m.Load("1")) //删除 m.Delete("...阅读全文

简书 2020-11-05 15:32:41 书生也爱羊

并发组件 | Go设计模式实战

嗯,Go设计模式实战系列,一个设计模式业务真实使用的golang系列。 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。 本系列文章主要采用如下结构: 什么是「XX设计模式」? 什么真实业务场景可以使用「XX设计模式」? 怎么用「XX设计模式」? 本文主要介绍「组合模式」结合Go语言天生的并发特性,如何在真实业务场景中使用。 之前文章《代码组件 | Go设计模式实战》已经介绍了「组合模式」的概念,以及在业务中的使用。今天我们结合Go语言天生的并发特性,升级「组合模式」为「并发组合模...阅读全文

简书 2020-11-05 15:32:41 码农奋斗之路

PHP框架之 Laravel 高并发调优笔记

调整框架本身的配置 编辑.env APP_ENV = production APP_DEBUG = false php artisan route:cache / php artisan config:cache composer dump-autoload --optimize php artisan optimize 其他可能 开启 OPcache php-fpm 配置调优 But..... 压测很容易看出,这些很难看到提高十倍以上性能的效果 如果你正在考虑框架性能优化的问题, 你对 PHP...阅读全文

简书 2020-11-05 14:32:41 it阿布

screego 安装配置教程:一款简单易用的屏幕共享工具

文章首发于个人公众号:「阿拉平平」 screego [1] 是一个由 Golang 开发的屏幕共享工具,我实际测试下来发现显示效果非常好,和大家分享下。 安装 screego 目前最新的版本为 v1.0.7,选择并下载系统对应的安装包: [root@localhost ~]# wget https://github.com/screego/server/releases/download/v1.0.7/screego_1.0.7_linux_amd64.tar.gz 解压后可以得到二进制文件以及...阅读全文

简书 2020-11-05 13:32:43 Xpitz

Golang分金币(记录一下)

package main import "fmt" /* 你有50枚金币,需要分配给以下几个人:Matthew,Sarah,Augustus,Heidi,Emilie,Peter,Giana,Adriano,Aaron,Elizabeth。 分配规则如下: a. 名字中每包含1个'e'或'E'分1枚金币 b. 名字中每包含1个'i'或'I'分2枚金币 c. 名字中每包含1个'o'或'O'分3枚金币 d: 名字中每包含1个'u'或'U'分4枚金币 写一个程序,计算每个用户分到多少金币,以及最后剩余...阅读全文

简书 2020-11-05 11:32:44 处处皆暖阳

冒泡排序

排序方法 相邻两个数比较, 第一个数大于第二个数就交换位置,从第一对数到最后一对为一轮,重复多轮直到排序完成。 每一轮都会把最大的数放在最后面。和冒泡一样。 复杂度 平均时间复杂度:T(n) = O(n2) 最佳情况:T(n) = O(n) 最坏情况:T(n) = O(n2) 空间复杂度:O(1) 稳定性:稳定 排序方式:In-place golang代码实现 package main import "fmt" // 冒泡排序 func BubbleSort(arr []int) { if le...阅读全文

简书 2020-11-05 11:32:44 樹澤

选择排序

排序简介 先在未排序队列中找到最小(大)元素,存放到排序队列的起始位置,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾,直到所有元素均排序完毕。 复杂度 平均时间复杂度:T(n) = O(n2) 最佳情况:T(n) = O(n2) 最坏情况:T(n) = O(n2) 空间复杂度:O(1) 稳定性:不稳定 排序方式:In-place golang实现 package main import "fmt" // 选择排序 func SelectionSort(arr []int)...阅读全文

简书 2020-11-05 11:32:44 樹澤

Dubbo-go 源码笔记(一)Server 端开启服务过程

简介: 随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。 image 当拿到一款框架之后,一种不错的源码阅读方式大致如下:从运行最基础的 helloworld demo 源码开始 —> 再查看配置文件 —> 开启各种依赖服务(比如zk、cons...阅读全文

简书 2020-11-05 11:32:44 阿里云云栖号

LeetCode(12) 插入区间

题目:给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。思路:首先进行分析,可以发现区间分为三种,一种是在插入区间左侧的,即右区间小于需插入区间左区间的,一种是在插入区间右侧的,即左区间大于插入区间右区间的,以上两种直接插入新区间集合即可,最后一种是和需插入区间有交集的,这种需要做合并。接下来为代码实现:func insert(intervals [][]int, newInterval []in...阅读全文

Segmentfault 2020-11-09 09:32:32 xbdyhh

深度 | 从Go高性能日志库zap看如何实现高性能Go组件

深度 | 从Go高性能日志库zap看如何实现高性能Go组件 导语:zap是uber开源的Go高性能日志库。本文作者深入分析了zap的架构设计和具体实现,揭示了zap高效的原因。并且对如何构建高性能Go语言库给出自己的建议。 作者简介:李子昂,美图公司架构平台系统研发工程师,从事长连接服务和分布式存储组件的研发和支持。 摘要 日志在整个工程实践中的重要性不言而喻,在选择日志组件的时候也有多方面的考量。详细、正确和及时的反馈是必不可少的,但是整个性能表现是否也是必要考虑的点呢?美图技术团队在长期的实...阅读全文

51CTO博客 2020-11-04 16:19:27 高可用架构

Go存储怎么写?深度解析etcd存储设计

Go存储怎么写?深度解析etcd存储设计 导读:etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统,在CoreOS和Kubernetes等开源项目中广泛使用。本文作者深入分析了etcd存储模块的设计和实现,对于深入学习Go存储有很大参考作用。 作者 codedump codedump.info 博主,多年从事互联网服务器后台开发工作。可访问作者博客阅读 codedump 更多文章。 在前面已经分析了Raft算法原理、etcd raft库的实现,接着就可以看etcd如何使用raft实现...阅读全文

51CTO博客 2020-11-04 09:57:28 高可用架构

快速排序

排序简介(采用了分治+递归) 从数列中挑出一个元素,称为 “基准”(pivot) 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作; 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。 复杂度 平均时间复杂度:T(n) = O(nlogN) 最佳情况:T(n) = O(nlogN) 最坏情况:T(n) = O(n2) ...阅读全文

设置apiserver中间层的重定向实现ipfs存查可控

1.原因说明ipfs私有网络实现文件类型的存取,但针对具体应用,一定程度上需限制用户存取,保证不出现无限存查的情况。2.设置路由在apiserver中的router文件夹中配置http访问的路由信息router.GET("getHashIpfs/:hash",handler.GetRequest) //通过apiserver 调用ipfs-api当通过hash查询并读取文件时,跳转到hander文件夹中的获取请求函数。3.设置重定向函数首先获取传入的hash值,再通过重定向函数定向到私有ipfs...阅读全文

Segmentfault 2020-11-08 20:32:32 Musmdic丶

【面经分享】两年经验拿到PingCAP Offer

准备过程 我自己是本科毕业后在老东家干了两年多,老东家算是一家”小公司”(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此找坑的时候是非常非常虚的。迫于心慌,我好好思考了一阵来给自己打气,当时真正找坑和准备面试的过程大概分为这几个阶段: 反思:自己是不是真的要离职,假如不离职,在老东家接下来应该做什么才能继续提升? 定位:我在硬性技能(编码、架构)上的长处在哪?我在软技能(沟通,团队)上的长处在哪?这步顺带写了简历 寻找平台:哪些平台能...阅读全文

简书 2020-11-04 16:32:43 程序员麦冬

LeetCode(11) atoi

题目:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有...阅读全文

Segmentfault 2020-11-08 16:32:34 xbdyhh