Go语言中文网 为您找到相关结果 143

golang Sec-WebSocket-Protocol问题记录

环境 golang 1.9 websocket包采用的是github.com/gorilla/websocket 在小程序H5页面与websocket联调的时候出现了如下错误,Sec-Websocket-Protocol参数应该是小程序中自己添加进去的,后端要做一些处理。 问题 image Error during Websocket handshake: Sent non-empty 'Sec-Websocket-Protocol'header but no response was received 处理 一般而言,websocket出现这种问题只要获取请求头的Sec-Websocket-Protocol参数,随后将参数添加到response的请求头中即可。但我在尝试之后,问题并没有解决...阅读全文

博文 2019-07-28 19:32:39 coldwarm7

Golang垃圾回收gc调优

示例代码 test.go package main import ( "fmt" "time" ) func main() { a := "123" fmt.Println(a) B := make(chan int, 8) go func() { B <- 1 }() go func() { fmt.Println(<-B) }() c := make([]int, 10, 20) c = append(c, 1, 2, 3) fmt.Println(c) time.Sleep(1 * time.Second) } 命令行调用go程序代码,输出gc信息到日志 GODEBUG=gctrace=1 go run test.go 2> log.file 123 [0 0 0 0 0 0 0 0 ...阅读全文

博文 2018-11-21 01:34:40 ImClive

Go 语言 与 C 语言 的比较学习

对于MarkDown 编译器没有自动保存功能这件事情, 我表示严重的厌恶。 一个来小时的整理化为乌有,而且居然还不能导入到HTML编辑器, 真是无法忍受! 关键字 分类 C Go 字符 char 无 字符串 无 string 浮点数 double , float float32 , float64 , complex64 , complex128 整数 int long short uint8 , uint16 , uint32 , uint64 , int8 , int16 , int32 , int64 , uint , int , uintptr , byte = uint8 , rune=unit32 bool 无 boolean true , false 函数 无 func 接口 ...阅读全文

博文 2015-04-11 15:00:00 cchd0001

Golang性能调优(go-torch, go tool pprof)

Go语言已经为开发者内置配套了很多性能调优监控的好工具和方法,这大大提升了我们profile分析的效率。此外本文还将重点介绍和推荐uber开源的go-torch,其生成的火焰图更方便更直观的帮我们进行性能调优。我也是在实际一次的性能调优中,接触到go-torch,非常棒。 go tool pprof简介 Golang内置cpu, mem, block profiler Go强大之处是它已经在语言层面集成了profile采样工具,并且允许我们在程序的运行时使用它们,使用Go的profiler我们能获取以下的样本信息: cpu profiles mem profiles block profile Golang常见的profiling使用场景 基准测试文件:例如使用命令go test . -be...阅读全文

博文 2017-11-22 10:10:15 WaltonWang

golang esl api

通过ESL 调取FS的状态,比如show calls : 用golang eventsocket 实现 conn, err := eventsocket.Dial("192.168.5.32:8021","ClueCon") if err != nil { this.emitError(so, 413) return "" } ev, _ := conn.Send(fmt.Sprintf("api show calls")) calls := strings.Split(ev.Body, "\n") for i := 1; i < len(calls)-3; i++ { //处理每一条记录 ...阅读全文

博文 2016-01-12 03:00:00 logo-fox

Go、Swift

出自:http://www.csdn.net/article/2014-12-09/2823025 Google于2009年第一次提出了Go的构思,Facebook在去年春天引入了Hack,随后不久Apple也发布了其Swift语言。 在战争中,胜利者写历史书;在科技中,赢的公司都在写编程语言。互联是建立在开发标准和代码之上,但是社交网络和云计算领域受企业巨头控制,并且它们开始把自己独一无二的印记烙在数字科技上——这是必然的,就像征服者威廉和他的诺曼人一样,大量新的词汇加入到英语中。他带来许多新事物,如陪审制度,这些都影响着当地的法律和语言的方式。 可以确定的是,新的语言给予程序员一些有用的支撑点。Google Go语言的构建简化了并发运行代码的工作,由于存在并行编程模式,因此这一语言也被设...阅读全文

博文 2016-04-13 09:00:03 u011530389

前端/移动端/服务端/后端/算法职位信息分享-上海

发经验、深入了解语言特点并能灵活运用的; 3) 对多种数据库中间件、消息中间件及其他大规模分布式系统的基础架构组件有深入理解的;数据仓库工程师 - 短视频方向1、负责业务相关数据指标的计算挖掘;2、负责数据建模以及数据仓库应用产品的设计和开发;3、负责数据仓库ETL流程的优化及解决ETL相关技术问题;4、数据仓库和业务数据集市建设;5、业务模型抽象、数据模型设计开发。1、本科及以上学历,计算机相关专业;2、扎实的 Java/Scala 基础,有项目主程经历;3、深入了解 Hadoop 生态系统,掌握 Hive/Spark/Storm/Kafka 等的使用和调优;4、具备大型数据仓库架构设计、模型设计、ETL 设计的相关经验;5、关系型数据库原理基础扎实,熟悉MySQL/PostgreSQL等...阅读全文

博文 2020-01-08 19:32:48 仲望AI高科技小组

Golang 实现的一个小游戏--猜数字

随机生成一个数字,输入一个数字看是否匹对,匹配则结速,反之提示是大了还是小了, 代码如下: package main import ( "bufio" "fmt" "math/rand" "os" "strconv" "time" ) var ( endNum int //设置生成数的范围 ) func main() { i := createRandomNumber(endNum) //fmt.Println("生成规定范围内的整数:", i) //本句调试用 fmt.Println("请输入整数,范围为:0-", endNum) flag := true reader := bufio.NewReader(os.Stdin) for flag { data, _, _ := reader...阅读全文

博文 2017-02-10 13:50:51 waylau

【上海招聘】拼多多急招golang开发工程师,高薪福利佳,2年不到估值20亿美金的电商公司邀你加入!

你会 Go, node.js, 也会 angular.js ?请你一定要快来!!! 不熟悉以上技术栈,但会java/python/php,有丰富的服务端搭建经验,愿意学golang,还等什么 ! 拼多多于2015年9月正式上线,是专注于C2B拼团的第三方社交电商平台。 在不到2年的时间里,已拥有超1亿付费用户,单月交易额近70亿元。C轮估值20亿美金。 不啰嗦,放JD 聊天系统服务端开发工程师 岗位职责: 1、负责聊天系统服务端的技术架构及开发,确保系统的高可靠性和海量用户同时在线请求; 2、完善IM系统基础设施建设,提升开发和运维效率。 3、深入理解IM系统架构,发现和解决系统技术问题; 岗位要求: 1、热爱技术,并有较好有的逻辑分析能力,善于学习...阅读全文

北京/成都/武汉【????字节跳动招聘】后台研发/架构,有内推机会!20K~60K

公司:字节跳动职位名称:后端 / 架构地点: 北京 / 成都 / 武汉 包一日三餐,下午茶,无限供应零食,健身房、游戏室、每两周一次团建(免费),就近住房补贴....更多福利等你来探索有意向的各位大佬可以以【姓名+职位+倾向城市】的形式发至我的邮箱:limuzi@bytedance.com1、后端研发工程师职位描述1、设计和开发支撑字节跳动公司运行的核心系统; 2、负责效率工具的后台开发工作,具体包括需求分析、文档撰写、设计编码、测试运维、效果追踪等工作; 3、负责高质量的设计和编码,承担重点、难点的技术攻坚; 4、参与产品讨论和开发实现; 5、主要语言为Python/Golang。职位要求经验1、统招本科学历,3年及以上工作经验; 2、良好的设计和编码品味,热爱写代码; 3、较好的产品意识...阅读全文

博文 2019-06-13 18:11:24 Hexbytedance

高效日志库 BLog4go Go

BLog4go 是高性能日志库。创新地使用“边解析边输出”方法进行日志输出,同时支持回调函数、日志淘汰和配置文件。可以解决高并发,调用日志函数频繁的情境下,日志库造成的性能问题。 ** 快速启动: **

package main

import (
    log "github.com/YoungPioneers/blog4go"
    "fmt"
    "os"
)

// optionally set user defined hook for logging
type MyHook struct {
    som...阅读全文

Go编程技巧--io.Reader/Writer

Go原生的pkg中有一些核心的interface,其中io.Reader/Writer是比较常用的接口。很多原生的结构都围绕这个系列的接口展开,在实际的开发过程中,你会发现通过这个接口可以在多种不同的io类型之间进行过渡和转化。本文结合实际场景来总结一番。 总览 围绕io.Reader/Writer,有几个常用的实现: net.Conn, os.Stdin, os.File: 网络、标准输入输出、文件的流读取 strings.Reader: 把字符串抽象成Reader bytes.Reader: 把[]byte抽象成Reader bytes.Buffer: 把[]byte抽象成Reader和Writer bufio.Reader/Writer: 抽象成带缓冲的流读取(比如按行读写) 这些实现...阅读全文

博文 2018-02-24 16:34:37 P_Chou水冗

GC(垃圾回收)必须Stop-the-world?

GC(垃圾回收)必须Stop-the-world? 并发编程的许多困难都源于对象生存期问题,当对象在线程之间传递时,要确保它们安全地释放就变得很麻烦。因此GC可以使得并发编程变得容易。但是实GC也是一个挑战,但是一次实现,就可以解决人们手动管理内存的麻烦(C语言),大大提高的开发效率和避免了许多Bug。 但是GC也是有成本的,他会影响程序的效率,GC是一个非常挑战的工作,很多计算机科学家在上面耗费了数十年不断的提升效率。 GC算法设计时,会考虑几个重要指标: 程序吞吐量:GC对程序效率的影响,也就花费在GC的时间和程序处理正常业务的时间比; GC吞吐量:单位时间内垃圾回收的数量; 暂停时间:Stop-the-world 的时间; 并发:垃圾回收机制如何使用多核; 等等还有很多 很多人问为什么...阅读全文

博文 2019-10-30 14:04:17 _西门吹牛

[golang]golang time.After使用不当导致内存泄露问题分析

无意中看到一篇文章说,当在for循环里使用select + time.After的组合时会产生内存泄露,于是进行了复现和验证,以此记录 内存泄露复现 问题复现测试代码如下所示: 1 package main 2 3 import ( 4 "time" 5 ) 6 7 func main() { 8 ch := make(chan int, 10) 9 10 go func() { 11 var i = 1 12 for { 13 i++ 14 ch <- i 15 } 16 }() 17 18 for { 19 select { 20 case x := <- ch: 21 println(x) 22 case <- time.After(3 * time.Minute): 23 print...阅读全文

博文 2019-07-13 21:35:41 luoming1224

余额宝团队(Java技术1-4面题目):Hash+二叉树+Redis+线上调优+G1

​余额宝一面JVM 内存分哪几个区,每个区的作用是什么?JVM有哪些回收算法,对应的收集器有哪些?GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。hashmap源码问题HashMap、HashMap如何保证线程安全、ConcurrentHashMapHashMap底层结构 put操作讲一下GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。java线程同步都有哪几种方式,在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?cas的原理,变量要用哪个关键字修饰,volatile实现的原理。你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?MYSQL 数据库服务器性能分析的方法命令有哪些?什么是通用 SQL 函数?手撕代码:按...阅读全文

博文 2019-07-28 15:59:25 wyygxly

Java后端技术栈,到底如何深入学习?

很多人做Java开发4,5年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理。公司的工作节奏又比较快,难有机会学习架构原理,也没人教,所以这个时候,学习架构原理,扩展思维,对自己以后职业生涯尤为重要。 同样公司的两个新人,一个新人一点就通,学东西很快,有的人,学东西很慢,也很痛苦,处处都是新技术。为什么?因为那个人懂原理,万物都有规律,掌握了规律学其他东西原理相通,一触就会,不懂原理就会处处碰壁,学习很慢还很折磨。 很多程序员会有一个苦恼,工作了很久,在公司一味的增删改查,得不到技术的提高,无缘底层代码,只会用不知其原理!有不少朋友问,如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的Java...阅读全文

博文 2018-10-18 15:23:43 Java007

浅尝Go语言GC

大家好,我是小栈君,因为个人和工作的缘故,所以拖更了一点时间,但是关于拖更的内容小栈君会在后续的时间中补回来,还希望大家继续支持和关注小栈君。当然,在国内疫情稍微减缓的情况下,小栈君在这里也多说两句,在非常时刻,我们应当保持警惕,清洗手,多通风,避免人群聚集,希望大家平安健康, 闲话不多说,我们直接进入正题,今天给大家分享的事关于Go语言中的GC,本期的分享并没有多少代码可言,都是一些理论知识,希望大家耐心且看完,因为能力有限,所以这边小栈君会尽量用大白话来进行叙述,如有错误之处,还请多多谅解。 GC含义: 对于编程有经验的同学应该都知道GC,他的英文全称是garbage collector ,也就是我们通常所说的垃圾收集器。其实Go语言的垃圾收集器是相对于C++语言有十分重要的改进,针对于...阅读全文

博文 2020-04-02 02:32:44 IT干货栈

Go、Nginx、Php、Nodejs谁能胜出紫禁之巅

声明:这里的测试框架都是很常用的框架,不去跟一些奇葩但是所谓性能极高的框架进行对比 由于我们在项目中大量使用Iris和nginx这两个Web框架(纯Go语言实现,零内存拷贝),同时也听过很多人问Go的Http性能对比nginx、对比nodejs到底如何,有鉴于此,今天我们就来做一个Web框架性能真实比拼。 测试环境图: 下面从多个维度对4个框架进行对比:Nginx VS Nginx-php-fpm VS Iris VS nodejs-Express一、 Nginx 并发压力测试100 - 100K 第一张图是在不同并发压力下,每秒处理的请求数 第二张是每秒吞吐的数据量 第三张是99.9%、平均、标准方差的延迟统计,可以看出有0.01%的请求延迟在2秒左右 第四张是单线程统计 (这些图后面不会...阅读全文

博文 2016-10-06 14:00:06 abv123456789

招聘Golang工程师

招聘一位Golang的工程师,我们的坐标在北京东直门交通枢纽。 待遇是15-30K 职位描述: 1. 负责公司大数据平台分布式数据收集系统的架构、设计和开发工作 2. 负责分布式数据收集系统的性能监控和持续优化; 3. 跟踪分布式系统事务处理、分布式消息队列、实时传输协议等相关技术领域的发展趋势,并主动发起改良计划。 职位要求: 1. 优秀的代码能力,熟练掌握GO语言,对C/C++有掌握优先考虑; 2. 具有解决高并发问题的实战经验和分布式系统的研发经验; 3. 熟练掌握HTTP,TCP/IP等网络传输协议的工作原理,并有相关协议的调优经验; 4. 了解Nginx HTTP/STREAM框架工作原理的优先; 5. 熟练掌握Rabb...阅读全文

阿里P7架构师谈职业生涯规划,给遇到瓶颈,迷茫期的人群一些建议

一、规划工作3年了,感觉自己的技术现在到了一个瓶颈,在做一些重复性的业务性的工作,没有长进,提高太慢;因此停下脚步对自己的职业生涯做了一个规划,并为之努力奋斗:20-27岁:技术积累阶段在这 5 年时间里面,你要积累足够的技术底子,打磨自己的技术实力,成为某一个技术细分领域的牛人;28-35岁:形成思维方法论和知识体系的阶段形成思维方法论和知识体系的阶段 当你积累足够的技术实力,例如超过 10 万行代码以后,你应该形成了自己的思维方法论和自己独立的学习技巧,任何新的技术在你眼中都能迅速的看到技术的本质,快速吸收成为你的知识体系的一部分;35岁以后:了解自己,把自己变现的阶段。最关键的是了解自己。知道自己擅长什么,自己的优势在哪里,怎样才能够最大化自己的价值,同时也知道自己有什么重大缺陷;鸡汤...阅读全文

博文 2018-11-05 19:29:33 Austh

客户端发送多条 HTTP 请求用多线程会比单线程快吗?

本文想从一个角度来让大家认识到回答一个问题不能从表面或者感觉来判断,这是学习技术的大忌,很多新手如果刚开始没有一套学习方法,从各种碎片化信息去学习编程,学习一段时间很容易进入瓶颈期,所以我觉得有必要通过一些我平时思考过的问题,踩过得坑,来总结一下也方便自己日后巩固,另一方面也想分享出来帮助需要的人,让大家发现解决一个问题只有知道背后越多的概念和设计,思路才会越多,才会懂得基础的重要性,如果有幸能引发共鸣和思考,就非常幸运了,当然文中大部份的内容都是我自己内化过之后用浅显的语言描述,尽量让更多的人能听懂,不会像很多博客复制粘贴,我觉得也没有意义,如果有哪些地方没有讲清楚,也欢迎大家交流补充。首先从问题当中有几个重要的关键词,请求,线程,多,单,快。我们一个一个来稍为补充一下:1. 请求。在题目...阅读全文

博文 2020-01-07 11:32:53 KooFrank

Go语言事件系统

package main import "fmt" func main() { // 实例化一个角色 a := new(Actor) // 注册名为OnSkill的回调 RegisterEvent("OnSkill", a.OnEvent) // 再次在OnSkill上注册全局事件 RegisterEvent("OnSkill", GlobalEvent) // 调用事件,所有注册的同名函数都会被调用 CallEvent("OnSkill", 100) } // 声明角色的结构体 type Actor struct { } // 为角色添加一个事件处理函数 func (a *Actor) OnEvent(param interface{}) { fmt.Println("actor even...阅读全文

博文 2019-12-24 15:33:14 huang_he_87

Golang学习[函数]

函数的结构如下 func(p mytype) funcname(q int)(r,s int){return 0,0} 函数有很多特点 多值返回 Go可以返回多值 延迟代码 在defer后指定函数会在退出的时候调用 func ReadWrite() bool { file.Open("fileName") defer file.Close() //.... } 变参 func myfunc(arg ...int){ } 回调 func callback(y int,f func(int)){ f(y) ...阅读全文

博文 2015-11-26 21:00:01 jingmiaowill

使用 Elastic Stack 来监控和调优 Golang 应用程序

Golang 因为其语法简单,上手快且方便部署正被越来越多的开发者所青睐,一个 Golang 程序开发好了之后,势必要关心其运行情况,今天在这里就给大家介绍一下如果使用 Elastic Stack 来分析 Golang 程序的内存使用情况,方便对 Golang 程序做长期监控进而调优和诊断,甚至发现一些潜在的内存泄露等问题。 Elastic Stack 其实是一个集合,包含 Elasticsearch、Logstash 和 Beats 这几个开源软件,而 Beats 又包含 Filebeat、Packetbeat、Winlogbeat、Metricbeat 和新出的 Heartbeat,呵呵,有点多吧,恩,每个 beat 做的事情不一样,没关系,今天主要用到 Elasticsearch、Me...阅读全文

博文 2017-03-05 23:00:34 Medcl

前端开发

职位诱惑:
中欧商学院创始团队,产品还没启动已经拿到天使轮
岗位职责:
1.1年(含)以上相关工作经验。
2.期望共同学习,快速成长。
3.良好的责任心、学习和沟通能力,能积极面对压力。
4.熟练掌握HTML、CSS、JavaScript,es5。
5.熟练使用npm、webpack,nodejs等前端工具链。
6.有Rxact、Vue经验者优先。
7.有一定浏览器调优能力。
薪水: 10-20K
联系地址:david.yang@transferease.cn
...阅读全文

工欲性能调优,必先利其器(1)

最近在排查 TiDB 性能问题的时候,通过工具发现了一些问题,觉得有必要记录一下,让自己继续深刻的去理解相关工具的使用,也同时让同学们对类似问题的时候别再踩坑。 使用 iostat 定位磁盘问题 在一个性能测试集群,我们选择了 AWS c3.4xlarge 机型,主要是为了在一台机器的两块盘上面分别跑 TiKV。在测试一段时间之后,我们发现有一台 TiKV 响应很慢,但是 RocksDB 并没有相关的 Stall 日志,而且慢查询也没有。 于是我登上 AWS 机器,使用 iostat -d -x -m 5 命令查看,得到如下输出: Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await...阅读全文

博文 2017-06-21 02:16:02 siddontang

为什么 Go 关心 unsafe.Pointer 和 uintptr 之间的差别

Go 有两样东西或多或少是无类型指针的表示:uintptr 和 unsafe.Pointer (和外表相反,它们是内置类型)。 从表面上看这有点奇怪,因为 unsafe.Pointer 和 uintptr 可以彼此来回转换。为什么不只有一种指针表现形式?两者之间有什么区别? 表面的区别是可以对 uintptr 进行算数运算但不能对 unsafe.Pointer(或任何其他 Go 指针)进行运算。unsafe 包的文档指出了重要的区别: > uintptr 是整数,不是引用。将 Pointer 转换为 uintptr 会创建一个没有指针语义的整数值。即使 uintptr 持有某个对象的地址,如果对象移动,垃圾收集器并不会更新 uintptr 的值,uintptr 也无法阻止该对象被回收。 尽管...阅读全文

博文 2020-01-08 23:12:31 dust347

技术变化那么快,Java程序员如何做到不被淘汰?

写了这么久的代码,你是否曾经有过这样的迷茫和困惑:技术发展日新月异,奋力追赶的我们,究竟是技术的主人还是技术的奴隶?技术人真的挺辛苦,除了在办公室高强度、高压力搬砖外,还要时刻关注最新的市场信息、技术动态、行业信息等等。一不小心,就担心自己的技能、知识跟不上行业的变化。​在快节奏的时代,不进则退,技术人需要不停地吸纳新知识。今天,小编精挑细选了一些各大互联网公司的都在用的最火技术知识点,推荐给大家。这些知识点都有可以免费学习的地址喔架构筑基篇性能优化如何理解常用工具调优linux基础与进阶​开源框架篇Sprng5框架AOP源码解析MybatisIOC源码解析Spring MVC​高性能架构篇分布式架构思维分布式协调和分流高可靠数据储存缓存和NoSQL异步与消息中间件分布式解决方案实战​微服务...阅读全文

博文 2018-12-24 16:48:02 Javagaojijiagou

GoLang回调实现,非传func参数方式

写这篇文章的初衷是因为最近被GoLang的一个低级问题搞蒙了,加上本蠢货用的还是IntelliJ的2017版本,对GoLang的错误提示非常有限,导致为了解决一个回调问题花了一个多小时。 问题呢,就是GoLang的回调了,在我的印象中GoLang实现回调和Java有那么一点区别,但是大同小异。首先如果是个简单的回调那么肯定没啥难度,传入一个struct对象就可以了,但是我想的是可以随时创建这个回调对象,在各种场合,那么就决定了这个回调对象可能是多个,所以必须是接口。 so,思路其实很清晰,回调参数使用接口就可以了,但是今天我被自己蠢到了,忘了GoLang的特性,首字母非大写是不能给外部包调用的,所以,一言难尽。 在解决问题的期间我不服气的搜了百度与google,发现搜出来的内容居然都是传入f...阅读全文

博文 2019-07-14 21:32:39 zerochl

结合企业应用实战讲解线上Linux服务器优化经验

课程介绍 本课程从Linux服务器的安装、配置、管理、维护、调优等多个方面介绍对线上服务器的优化思路和技巧,在授课方面更注重经验和解决问题的思路,从企业应用实战的多个角度,分层次,由浅入深、循序渐进、理论结合经验的讲学习技巧和方法传授给同学们。 课时列表 • 课时1:系统安装和分区经验与网络配置 • 课时2:线上服务器网络安全配置与系统登陆安全配置 • 课时3:通过yum更新软件包已经常见yum源推荐 • 课时4:系统资源调优与内核参数配置 • 课时5:精简系统服务和开机进程 • 课时6:Linux故障排除思路以及影响Linux性能的各种因素 • 课时7:操作系统相关资源优化策略 • 课时8:Linux性能优化之cpu性能评估工具 ...阅读全文

go(golang)之slice的小想法1(同步sigmentfault)

slice,是go中一个很重要的主题。我们不用切片来表述,因为这里的切片特指的是数组的切片。 先给slice下个定义吧: Slice expressions construct a substring or slice from a string, array, pointer to array, or slice. There are two variants: a simple form that specifies a low and high bound, and a full form that also specifies a bound on the capacity. 从一个字符串中构建了一个子字符串或者从一个数组中构建一个切片,并且把这个子字符串或是这个切片的指针赋给这个s...阅读全文

博文 2015-11-01 03:00:00 monokeroslun

最全阿里技术P系列解读:P5-P8的技能要求和薪资结构

![image.png](https://static.studygolang.com/190102/6a0d4626dcf2b5b5158bee4720fe6964.png) 2018年持续一整年的架构设计分享,2019年我希望持续分享的同时,能真正意义上帮助到部分读者成为一名架构师。学习的同时请千万别:只见树木,不见森林。所以我会让大家先俯瞰完整的森林,我们再从树木开始,一起去穿越整个森林。 ![image.png](https://static.studygolang.com/190102/714678d8fb5daa01d2574c4178377180.png) 最新阿里技术P系列薪资:上图薪资结构*2 01 — 阿里P5(高级研发工程师) 1.工作要求: 能独立完成日常工作,并能够...阅读全文

博文 2019-01-02 21:32:59 Javaspring12

on the go way (一)服务器并发

服务器并发的方式有很多种 1.通过多进程或者多线程的方式,现在这种模式基本上已经不用 2.epoll和IOCP回调的方式,不符合人们的习惯 3.使用协程(轻量级线程,创建、销毁的代价很小),协程在逻辑上上顺序执行 其中属于erlang和golang在协程并发方面做的比较好 package mainimport ( "fmt")func getResult(data []int, res chan int) { var sum int sum = 0 for _, v := range data { sum += v } res <- sum}func main() { var res = make(chan int) var data = []int{1, 2, 3, 4, 5, 6, 7,...阅读全文

博文 2016-03-22 11:00:06 OneDream

Go语言·Web调优详解

前言 很早以前crypto/tls(TLS长连接库)和net/http的性能不敢恭维,因此我们都使用Nginx做反向代理,但是Go1.8将要来了,这种格局即将被打破了! 我们最近尝试性的将Go1.8编译的服务暴漏到了外网,结果发现crypto/tls 和net/http都得到了极大的提升:稳定性、性能以及服务的可伸缩性! crypto/tls 现在已经是2016年了,我们不可能再去裸奔在互联网了,因此基于TLS是必然的选择,所以我们需要crypto/tls这个库。好消息就是在1.8下,该库的性能得到了很大的提升,性能表现堪称十分优秀,而且安全性也非常出色。 默认推荐的配置类似 [Mozilla标准] (https://wiki.mozilla.org/Security/Server_Side...阅读全文

博文 2017-10-23 06:05:15 孙飞撩技术

go(golang)之slice的小想法1

slice,是go中一个很重要的主题。我们不用切片来表述,因为这里的切片特指的是数组的切片。 先给slice下个定义吧: Slice expressions construct a substring or slice from a string, array, pointer to array, or slice. There are two variants: a simple form that specifies a low and high bound, and a full form that also specifies a bound on the capacity. 从一个字符串中构建了一个子字符串或者从一个数组中构建一个切片,并且把这个子字符串或是这个切片的指针赋给这个s...阅读全文

博文 2015-06-23 14:02:14 Pxclknn

go 回调函数 & 匿名函数

package main import "fmt" // go 回调函数 func main() { /* 匿名: 没有名字 匿名对象: 匿名函数: 函数没有名字 通常只能使用一次。 定义的时候直接使用 */ fun1 := func(a, b int) int { fmt.Println("a:", a, "b:", b) return a * b } res2 := oper(1, 2, fun1) fmt.Println(res2) // 3 } func oper(m, n int, fun func(int, int) int) int { return fun(1, 2) ...阅读全文

博文 2020-06-07 16:32:43 小兵

go(golang)之slice的小想法1

slice,是go中一个很重要的主题。我们不用切片来表述,因为这里的切片特指的是数组的切片。 先给slice下个定义吧: Slice expressions construct a substring or slice from a string, array, pointer to array, or slice. There are two variants: a simple form that specifies a low and high bound, and a full form that also specifies a bound on the capacity. 从一个字符串中构建了一个子字符串或者从一个数组中构建一个切片,并且把这个子字符串或是这个切片的指针赋给这个s...阅读全文

博文 2017-02-09 13:42:27 monokeroslun

golang之runtime.SetFinaliz

在实际的编程中,我们都希望每个对象释放时执行一个方法,在该方法内执行一些计数、释放或特定的要求,以往都是在对象指针置nil前调用一个特定的方法,golang提供了runtime.SetFinalizer函数,当GC准备释放对象时,会回调该函数指定的方法,非常方便和有效。 不过值得注意的是,指针构成的 "循环引⽤" 加上 runtime.SetFinalizer 会导致内存泄露...阅读全文

博文 2017-02-07 03:56:40 henrylee2cn

给鸭子加上火箭动力——策略模式

策略模式 问题引入 当我们有一堆鸭子,各个鸭子都有相同的游泳(swim),自我描述(display)方法,因为它们都会游泳和自我描述;但是不同的鸭子又有自己特有的飞行(fly),叫声(quack),这时如何使用设计模式来解决这样的问题呢? 首先会想到的方法是,有一个鸭子超类,swim和diplay作为公有的方法,不同鸭子的子类去覆盖实现各自的fly和quack方法,貌似就可以解决这个问题了 不过,每当新的鸭子类型出现,就需要重新去实现fly和quack方法;甚至如果多个鸭子类型拥有相同的fly或quack方法,代码就不能很好地复用了。 在这里,鸭子的行为在子类里不断地改变,并且让所有子类都拥有这些行为是不恰当的。继承并不能很好地解决问题 设计原则 设计模式中的一个设计原则是:找出应用中可能需...阅读全文

最新Java高级架构师图集!需要的限时免费领取

源码分析专题 详细介绍源码中所用到的经典设计思想,学习大牛是如何写代码的,提升技术审美、提高核心竞争力。 工程化管理专题 工欲善其事必先利其器。要成为资深开发者,需要选择好的工具。提升开发效率和团队协作效率,让自己有更多时间来思考。 微服务架构专题 围绕微服务的通用模式,讲解Spring Cloud的常见用法及原理让微服务的开发更方便、快捷,让微服务应用更加稳定、可用。 高并发分布式专题 迎接高并发大数据的挑战,从深度到广度完善知识体系,成为下一个互联网高薪人才。 性能优化专题 从JVM底层原理到内存优化再到各个中间件的性能调优,只做科学和严谨的性能调优课程。 ![image.png](https://static.studygolang.com/181221/b0f48f0516cca7f...阅读全文

博文 2018-12-21 16:50:05 Javaspring12

关于怎么实现type struct里的 回调函数 类型的实例

如果结构体内有一个 回调函数类型 ,那我该怎么实现这个类型的实例并打印输出值呢 ```go package main import "fmt" func main() { type PipeData struct { value int handler func(a int) int } //实现不了的部分⬇ var a PipeData fmt.Print(a.handler(2)) //实现不了的部分⬆ } ``...阅读全文

golang http server探究(上)

在golang当中启动一个http服务非常简单,比如: http.HandFunc("/",func(w http.RequestWriter,r *http.Request){ io.WriteString(w,"hello world!") }) http.ListenAndServer(":9090") //outprint hello world! 为什么 访问 localhost:9090 就能打印出 Hello world 呢?这背后究竟发生了呢?下面我们就一层一层揭开这个面纱! 1 追踪 http.HandFunc函数,发现它调用了 : DefaultServeMux.HandleFunc(pattern, handler) DefaultServeMux实际是ServerMu...阅读全文

博文 2016-08-29 15:00:10 Tudo

使用Intellij IDEA打造全栈IDE

dd.png 前言 作为一个开发者,包括职业与业余,相信大家都在使用集成开发环境IDE。作为专业的开发者,相信大家都是Full Stack Developer,意味着我们的日常开发通常都会涉及多种编程语言比如Java、Python、Shell、Golang、大前端等,通常我们往往要在以下的 “IDE” 列表里选择几种工具搭配使用: Vim、Emacs Sublime、Atom、Visual Studio Eclipse、Jetbrains系列 然而,更多的工具选择往往意味着更多的维护及学习成本,所以在这里我推荐大家使用Intellij IDEA作打造统一的全栈IDE,尤其对于Java为主力的全栈工程师及编程初学者,IDEA绝对是首选。 一、安装与配置 1.1 安装方式(MAC为例) 通过官网...阅读全文

博文 2018-10-11 20:34:40 我兜兜里有瓜子

MySQL企业常见架构与调优经验分享

课程介绍 从多个方面深入介绍MYSQL的使用技巧和调优策略,最大限度发挥MySQL的性能优势,对MySQL DBA或者运维工作者有很大帮助,每个知识点都是从实战角度出发,以企业应用环境为主线进行深入介绍。 适合人群 • MySQL DBA • Linux运维人员 课时列表 • 课时1:选择Percona Server、MariaDB还是MYSQL • 课时2:常用MYSQL调优策略实战讲解 • 课时3:MYSQL常见应用架构经验分享 • 课时4:MYSQL主从复制经典应用架构 • 课时5:MYSQL主从复制架构与调优 开始学习http://click.aliyun.com/m/27910...阅读全文

互联网寒冬,如何才能安全度过?

这个冬天,尤其的冷!!! 北京的寒潮刚刚过去,气温才回升一点,紧接着就传来各大公司裁员的消息,网传知乎、京东、携程都有应届生被裁,早上更是看到美团也加入其中。 ![image.png](https://static.studygolang.com/190108/57292632eda7d864902ff001bf6b75c0.png) 突如其来的消息使我心底瞬间涌起一股凉意,完全冲散了刚刚感受到的温暖。 互联网寒冬大概真的来了吧!!! 那么如何才能安全度过这个冬天呢? 大概最最最重要,同时也是最有保障的就是提升自身实力,增加自己的竞争力了。 <春招要来了> 我们该学习哪些技术来增加自己的竞争力呢,下面我给大家分析下进阶架构师该掌握的技术。 一、开源框架解析 程序员每天都和代码打交道。经过数年...阅读全文

博文 2019-01-08 15:43:16 Javaspring12

jvm 架构及调优

jvm 架构及优化 写在前面 先看一下知乎上一个有趣的问题: Java工程师面试的时候,总是提问一些jvm如何优化的问题,这些真的在开发中有用吗,工作七年了项目中从来没有用过,并且我获得过多次优秀员工,望做过优化的大牛解答? 答一:JVM优化肯定是有用的,可能只是题主没有遇到过这方面的需求。比如一些GC机制会引起JVM的Stop The World,也就是所有工作线程都会停下来等待GC完成。对于一些对延迟比较敏感的程序来说,这一停顿达到一百甚至是几十毫秒的时候就是难以接受的。为了解决这类问题,就需要对JVM的参数做适当的调整。比如调整堆的大小,选择合适的垃圾回收器,控制对象晋升老年代的速度等等。 作者:谢知恒 链接:https://www.zhihu.com/question/4091370...阅读全文

博文 2017-07-15 04:06:30 bradyjoestar

一致性哈希算法 CARP 原理解析, 附 Golang 实现

一致性哈希算法 CARP 原理解析, 附 Golang 实现 在后端服务开发的过程中, 遇到了这样一个问题: 需要在 mysql 前面部署 redis 做一层缓存, 要求 redis 是集群部署, 并且每台 redis 节点只缓存总数据量的 1/N, N 为 redis 的个数. 看到这里大家都能想到到一个方法是使用 hash(key)%N 来选取 redis 进行 value 的存取, 这种方式当然可以很均匀的将数据分配到 N 个 redis 服务上, 并且实现起来也非常的简单. 但是使用这种哈希取余的方式有一个很大的问题, 那就是当 redis 集群扩容或者缩容, 或者发生宕机的时候, 也就是上述公式中的 N 发生变化的时候, 这个时候 hash(key)%N 的值保持不变的概率非常小,...阅读全文

博文 2017-05-26 06:01:11 CodeKiller

如何使用ARMS配置tengine的日志监控

摘要: 业务实时监控服务 ARMS 很好的提供了这么一个入口,为公司提供了一个实时查询Tengine运行情况的解决方案。在未来,ARMS将很好的和ODPS为公司监控形成互补方案,tengine日志日后可同时投递到ARMS和MaxCompute中: ARMS响应第一时间的多维度报警; MaxCompute来做深层次分析,例如接口的请求数、响应时长等,并有针对性地进行调优。 来自 深圳市小亿网络有限公司 王昕岩 最近公司通过业务实时监控服务 ARMS 成功搭建了基于tengine的日志监控系统。这里简单分享一下使用ARMS用于监控tengine日志的经验。 公司发展至今,现阶段所有接口都使用阿里的tengine作为web容器,类似nginx,在日志中也记录了包括host, ur...阅读全文