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

腾讯云服务器快速搭建MongoDB数据库

MongoDB是一个基于分布式文件存储的数据库,是一种非关系型数据库,用C++编写而成,下面是如何利用腾讯云服务器搭建mongoDB过程。 下面是搭建过程: 一、设置mongoDB目录 mkdir/data/db 创建mongoDB数据库存放目录 mkdir/data/log 创建mongoDB日志存放目录 二、上传mongoDB安装包到/data目录 这里分享一个mongoDB 2.4.12 ,如果需要安装其他版本可以自行到官网下载 下载地址:http://pan.baidu.com/s/1o81urou yum installlrzsz –y rz上传到/data目录下 ![1.png](http://studygolang.q...阅读全文

微信应用号在前端开发圈火了,而Docker其实早已火遍后端

![](http://77fkk5.com1.z0.glb.clouddn.com/upload/image/1c775ec880d211e681f1525400020562.jpg) 昨晚(9月21日)“微信应用号”萌萌哒的化身——“小程序”才刚开始宣布内测,今天朋友圈就刷屏了!真是一石激起千层浪,各种分析、预测文章铺天盖地而来,让人应接不暇。这让笔者依稀看到了当年Docker技术开源时的盛景。 有人说,微信小程序的横空出世,让前端开发开始热闹起来;而笔者想说,在后端开发中,Docker的地位可以与微信小程序一较高下,因为它早就已经火遍后端! 今天我们就来比比微信小程序和Docker究竟是如何在前端和后端开发中一统天下的! ## 1.Docker在后端开发的江湖地位...阅读全文

全面系统学测试 从小白入门到实战就业

​全面系统学测试 从小白入门到实战就业 完整无密【点击下载】本课程为慕课网销量最高、备受好评的测试入门课程2020年全新升级版。升级课程亮点:1、测试设计、测试执行、测试总结、黑盒测试、白盒测试、自动化测试、性能测试、手机测试、面试讲解等全方位多角度进行讲解;2、辅助以支付宝、余额宝等实战项目演练,更增加主流热门电商类测试项目全流程与微信红包项目实战;3、掌握从简单业务场景到复杂业务场景下的不同测试实战技巧,满足入门+提高双重需求适合人群软件测试初学者、刚刚从事软件测试行业的新手,在校大学生、应届毕业准备从事软件测试行业,准备转行进入软件测试行业的小伙伴技术储备要求0基础入门,无论你的基础怎么样,你的背景怎么样都可以学习这门课程百度网盘链接下...阅读全文

Go使用grpc+http打造高性能微服务

大家可以发现,Go越来越流行,其一是目前云计算领域基本是使用Go作为底层开发语言;其二是随着区块链的火爆,引申出了其背后很多开源项目,很多都是使用Go语言进行开发;其三就是在微服务方面,Go也展示很大的优势性。那么微服务是什么,如何将其与Go做一个整合,来提升整体开发生产效率,下面会进行详细讲解。什么是微服务微服务的概念最早由 Martin Fowler 提出,在他的理论当中,微服务是一整套小的服务,其中每一个服务互相之间都是独立的,它们之间通过 lightweight 机制进行交互。图 1图 1 所示是最传统的一个应用软件架构,最顶层是 load balancer ,下面布局很多cuisine,这些cuisine共享一个数据库。图 2图 2 是微服务的架构图,由图中我们可以看出整体架构分布...阅读全文

博文 2017-11-22 09:32:26 astaxie

golang 编译后文件过大问题处理

go1.9.2出来了,有一个用golang写的工具要编译,正好也测试一下。我是在windows10 64位下测的。编译和执行文件效率都差不多。但是1.9.2编译出来的文件6M。 个人觉得这个有点大了,关键是功能也不复杂。所以觉得这个体积简直太夸张了,试试能否减肥。 使用原始build编译的大小 6,167KB 通过去除部分连接和调试,build部分参数查看结果。 -a 强制编译所有依赖包。 -s 去掉符号信息 -w 去掉DWARF调试信息,得到的程序就不能用gdb调试了 不建议s和w同时使用。 go build -ldflags -w test.go 但是体积还是有点大 4,236KB 最后还只能是加壳压缩。工具地址如下: https://github.com/upx/upx/release...阅读全文

博文 2018-04-25 16:33:06 mickelfeng

(Go)不要使用append插入元素

标题好像有点唬人哦…. 起因是我在给Slice做Insert函数,给几个版本封装时做了一些性能测试。结果出人意料! import ( "fmt" "reflect" "time" ) func copyInsert(slice interface{}, pos int, value interface{}) interface{} { v := reflect.ValueOf(slice) v = reflect.Append(v, reflect.ValueOf(value)) reflect.Copy(v.Slice(pos+1, v.Len()), v.Slice(pos, v.Len())) v.Index(pos).Set(reflect.ValueOf(value)) retur...阅读全文

博文 2016-11-22 04:00:05 Begosu

《第一本Docker书》PDF下载

网盘下载地址:第一本Docker书 PDF下载 - 易分享电子书PDF资源网 - PDF网盘资源在线下载 作者: [澳]詹姆斯•特恩布尔(James Turnbull)出版社: 人民邮电出版社译者: 李兆海 / 刘斌 / 巨震出版年: 2014-12页数: 252定价: 59装帧: 平装ISBN: 9787115377333内容简介 · · · · · ·全球第一本Docker技术图书中文版,Docker中文社区鼎力支持!Docker核心团队成员权威著作,在技术圈中很有影响力。既是第一本Docker书,也非常适合作为学习Docker的第一本入门书。Docker是一个开源的应用容器引擎,让开发者可以将他们的应用和依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚...阅读全文

博文 2019-07-29 13:32:40 rinymn7

golang配置文件热更新

配置文件热更新是服务器程序的一个基本功能,通过热更新可以不停机调整程序的配置,特别是在生产环境可以提供极大的便利,比如发现log打得太多了可以动态调高日志等级,业务逻辑参数变化,甚至某个功能模块的开关等都可以动态调整。 每种语言都有自己的热更新实现方式,在golang里面我看到了有人采用了一种错误的实现方式,如下: type Config struct { Test1 string `json:"Test1"` Test2 int `json:"Test2"` } var ( config *Config ) func loadConfig() { f, err := ioutil.ReadFile("config.json") if err != nil { fmt.Println("lo...阅读全文

博文 2017-02-26 03:00:30 石匠

影游联动出典范,《青丘狐传说》成功的基础4大要素

刚过去的3月份,最具有话题性和关注的手游莫过于《青丘狐传说》了,上线首日即登顶iOS免费榜第一名,随着同时段同名电视剧的热播,《青丘狐传说》被称为又一次“影游联动的典范”,引发了全行业的广泛热议。作为其测试服务提供商,TestBird有幸全程见证紫龙互娱对该款开山作品的精心打磨,也寄希望通过专访《青丘狐传说》的制作团队,为您揭开霸榜背后的秘密。 强力IP,影游联动,奠定扎实的用户基础 《青丘狐传说》作为原搜狐畅游游戏事业群总裁王一成立紫龙互娱后的开山之作,顺应了2015年以来的IP运作热潮。仙侠题材本身是具有庞大用户群体的,紫龙互娱希望将《青丘狐传说》打造成一款具有代表性的手游产品。 同时,基于聊斋故事创作的《青丘狐传说》极富的东方传统文化色彩,它构建的全新世界观非常适...阅读全文

雨痕新作《Go语言学习笔记》出版了

《Go语言学习笔记》——雨痕著 出版了。购买地址: - [china-pub](http://product.china-pub.com/4971695) - [京东](http://item.jd.com/10466396823.html) 目录: ``` 上卷 语言详解 第1 章 概述 ............... 3 1.1 特征 ....................... 3 1.2 简介 ....................... 6 第2 章 类型 ..............18 2.1 变量 ..................... 18 2.2 命名 ..................... 22 2.3 常量 ........................阅读全文

“GO语言中文网实验室”上线,提供Golang在线开发环境。

近日,GO语言中文网与“实验楼”整合双方资源,共同建立了“GO语言中文网实验室”,让用户能够以一种更便捷、更高效、更灵活的方式进行GO语言的开发学习。 实验楼是一家免费的IT在线实训平台,为IT爱好者提供了编程、运维、测试、云计算、大数据、数据库等全面的IT技术动手实践环境。 本次实验楼免费为GO语言中文网提供了Golang在线开发环境,用户在阅读文章时,可以点击文章右侧的Golang在线开发环境,登录实验楼后即可直接进入一个完整的Golang在线开发环境,用户可以在该环境中体验文章中涉及的技术,通过动手实践的方式学习技术文章的真正精髓。 ![](http://studygolang.qiniudn.com/150317/3177ab001d2c5b98d4...阅读全文

数据宝缘何受到CCTV的采访与报道?

2017年1月8日,在CCTV-发现之旅频道《揽胜神州》多彩贵州山水贵安中,贵州数据宝网络科技有限公司(以下简称:数据宝)的身影亮相荧屏之中——公司办公环境、职工面貌、平台模式以及历史使命都做了充分地展示说明。据了解,该频道由中央电视台新影集团打造而成,是国内首家以人文探索、科学揭秘、旅游地理为主的专业电视频道,也是独创的“空、地、网”跨界传播平台。目前,发现之旅频道已全面接入国内31个省级广电有线网络,落地城市超过240个,覆盖全国有线数字电视用户数超过1.75亿户、逾5亿人群。频道在全国101个数字频道中综合竞争力排名前10位,并已实现全年365天,全天24小时不间断播出,是国内数字电视频道的创举。那么,数据宝作为一个大数据资产运营平台,缘何受到如此礼遇? ![1.jpg](http:...阅读全文

饿了么 Influxdb 实践之路

前言 Influxdb是一个基于golang编写,没有额外依赖的开源时序数据库,用于记录metrics、events,进行数据分析。这篇文章谈论的influxdb版本在1.2.0以上。这篇文章只谈论influxdb在监控中的数据存储应用,不会谈论influxdb提供的整套监控方案。本文主要谈论五个方面:时序数据库选型、influxdb基本概念、存储引擎、实践、数据聚合。 选型 Influxdb vs Prometheus influxdb集成已有的概念,比如查询语法类似sql,引擎从LSM优化而来,学习成本相对低。 influxdb支持的类型有float,integers,strings,booleans,prometheus目前只支持float。 influxdb的时间精度是纳秒,prom...阅读全文

博文 2017-06-24 09:49:24 刘平

强强联手!数据宝与国家发改委直属机关国家信息中心的全资公司中国国信签署战略合作协议

祝贺中国国信信息总公司与数据宝今日签署战略合作协议。中国国信是国家发改委直属机关国家信息中心的全资公司、正在筹建的北京国际大数据交易所的大股东,数据宝是2017年度大数据流通交易排名最高的公司,双方强强联手,接下来将在政府大数据流通与交易领域展开深度合作。 2018年1月11日,数据宝与中国国信信息总公司在北京签署战略合作协议,双方就共同利用双方优势资源,最大发挥各自优势,共同发展大数据产业,未来在大数据产品开发、市场推广、品牌营销、渠道建设等方面进行深入合作,形成紧密的战略合作伙伴关系。 中国国信信息总公司(简称“中国国信”)于1992年经国务院批准设立,曾隶属于原国家计划委会,2002年成为国家信息中心的全资企业。国家信息中心是国家发展和改革委员会直属的副部级单位。 ...阅读全文

go语言测试----切片删除

package main import ( "fmt" "math/rand" //"time" ) func main() { vect := make([]int, 100000) for i, _ := range vect { vect[i] = i } for i := 0; i < 10; i++ { k := rand.Intn(100000) //这里有可能会有重复的值,但我们假定有10个不同的值 vect[k] = -1 } for i, v := range vect { if v == -1 { //当V=-1时,假定是不需要的数据 vect = append(vect[:i], vect[i+1:]...) } } //测试一下 for i, v := range v...阅读全文

博文 2015-06-17 23:05:44 zistxym

go 语言实现http请求转发

package main import ( "bytes" "flag" "fmt" "io" "log" "net" "os" "strings" "time" ) func main() { var srcHost, agencyHost string flag.StringVar(&srcHost, "srcHost", "", "srcHost") flag.StringVar(&agencyHost, "agencyHost", "", "agencyHost") flag.Parse() if srcHost == "" || agencyHost == "" { fmt.Fprintf(os.Stderr, "Fatal error: %s", "参数为空") os.Exit(...阅读全文

博文 2017-01-19 11:00:08 KelvinQ

网易云首倡中台方法论,发布全链路中台技术方案

当前数字经济领域最受关注的技术趋势当属中台,到底中台对企业发展的意义何在,企业应当如何建设中台?7 月 26 日,网易云在本届云创峰会上给出了完整的答案,从组织、技术、方法论的角度系统阐述了网易杭州研究院的中台实践与成果,并发布了全链路大数据产品和轻舟微服务产品,分别为企业构建数据中台和在线业务中台提供完整的技术和方法论支持。在主题演讲中,网易副总裁、网易杭州研究院执行院长汪源首次介绍了网易对中台的理解,他表示:“中台的本质是业务能力的沉淀,它对于企业提高需求响应、降低定制成本、实现弹性稳定、实现系统互通、提升运营效率和降低资源成本具有独特的优势,而中台的成功建设,需要组织、技术和相应的方法论的支撑,同时由于业务的复杂性,企业往往还需要借助专业的咨询服务,才能顺利建设中台。”据悉,网易是业界...阅读全文

博文 2019-07-30 21:32:39 Linux技术

Go Mvc的一个示例

下载 Go Mvc的一个示例,项目后台用户管理部分,包括用户的添加,修改,删除,分页,查询等操作。分享出来供大家参考。 data.sql 是表结构的创建SQL,运行前先创建数据表。DBConfig.xml是数据库连接字符串的设置,只所以独立出来一个文件,主要是方便程序里对文件进行修,力求简单,在程序运行前先设置Mysql连接信息。访问地址为:http://localhost:6080/Admin/AdminUser/Index 下...阅读全文

博文 2015-05-12 21:00:02 王岩0001

python就业方向哪个好?没基础学python

现在互联网巨头,都已经转投到人工智能领域,而人工智能的首选编程语言就是python,未来前景显而易见。那么问题来了,想学Python,Python工程师工资一般多少?值得去学吗? 说句实在话,还得看你自己:自己足够用功,经验够,两三万月薪也不是不可能;如果资历浅,又不用功,想要高薪,除非运气够好! 学习Python可以从事以下工作: **一、人工智能** Python作为人工智能的黄金语言,选择人工智能作为就业方向是理所当然的,而且就业前景好,薪资普遍较高,拉勾网上,人工智能工程师的招聘起薪普遍在20K-35K,当然,如果是初级工程师,起薪也已经超过了12500元/月。 **二、大数据** 我们目前正处于大数据时代,Python这门语言在大数据上比Java更加...阅读全文

c语言客户端与golang服务端通信(网络字节序)

网络二进制数据转换: 总所周知,数据在tcp网络传输协议中传输的字节序是大端模式的,换句话说如果你要传输一个int32型的整数,那么假设其二进制小端模式表示为11111111111111110000000000000000那么其大端模式表示为00000000000000001111111111111111,利用c语言的htonl函数会将数据字节序转换成大端模式,在网络上面传输,接收端想解出原始数据只需要认为发送来的数据是大端模式,按照大端模式表示的数据解析便可 举个例子: 在C语言端发送一个int32_t数据过程如下: 发送端(c语言) char buf[100]; int32_t x = 100; ((int*)buf)[0] = htonl(x); send(clientfd, buf,...阅读全文

博文 2016-02-26 03:00:01 candycloud

金融领域的区块链项目 Chain

Chain是由一家刚成立两年的美国创业公司Chain推出,是一个企业级的区块链平台架构,可以让机构构造从零开始更好的金融服务。 作为区块链供应商,Chain在过去的两年多时间中获得了极好的信用。Chain通过将专属区块链和分布式总账的源代码进行开放,可以让更多的人在其软件上增加应用或是建立专属网络。Chain核心开发者版本的创建花费了数年时间,它是区块链供应商和金融机构合作的直接产物。由于这个开源软件针对的是金融领域,因此它允许用户创建和发行他们自己认为合适的数字资产。 Chain 开放标准在以下方面实现突破: • 全新的共识模型在不到一秒的时间里实现交易的最终完成,即便是交易量非常大也能支持 • 私密解决方案对区块链数据进行加密,并让相关对手方和监管者进行有选择的读...阅读全文

go语言的比较运算

首先区分几个概念:变量可比较,可排序,可赋值 可赋值 规范里面对赋值是这么定义的:https://golang.org/ref/spec#Assignability A value x is assignable to a variable of type T ("x is assignable to T") in any of these cases: x's type is identical to T. x's type V and T have identical underlying types and at least one of V or T is not a defined type. T is an interface type and x implements T. x...阅读全文

博文 2017-10-11 18:34:47 CodeGeek

全球云端数据仓库领导者 MaxCompute 将于本月10日正式开服美东节点

摘要: 作为全球云端数据仓库的领导者,阿里云MaxCompute为满足更多客户的业务需求,不断加快全球化部署的节奏。本月10日,美东(弗吉尼亚)节点会正式上线。届时,将会以最新版本产品向用户提供大数据计算资源和能力 作为全球云端数据仓库的领导者,阿里云[MaxCompute](https://www.aliyun.com/product/odps?spm=a2c4e.11153959.blogcont576224.10.69f543dcvDTYwy)为满足更多客户的业务需求,不断加快全球化部署的节奏。本月10日,美东(弗吉尼亚)节点会正式上线。届时,将会以最新版本产品向用户提供大数据计算资源和能力。 ![图片描述](http://img.blog.csdn.net/2018041...阅读全文

golang-利用反射给结构体赋值

由于想给一个结构体的部分成员赋值,但是有不知道具体名字,故将tag的json名字作为索引,按照json名字来一一赋值 //将结构体里的成员按照json名字来赋值 func SetStructFieldByJsonName(ptr interface{}, fields map[string]interface{}) { logger.Debug("fields:", fields) v := reflect.ValueOf(ptr).Elem() // the struct variable for i := 0; i < v.NumField(); i++ { fieldInfo := v.Type().Field(i) // a reflect.StructField tag := fi...阅读全文

博文 2017-11-06 01:00:01 fwdqxl

go gin+casbin RBAC 简单例子

go gin+casbin RBAC 简单例子 说明 利用的库: github.com/casbin/casbin github.com/gin-gonic/gin github.com/facebookgo/inject 本文为 参考此项目: https://github.com/LyricTian/gin-admin ,强烈推荐!!! casbin文档: https://casbin.org/zh-CN/ 下面例子 未利用 casbin 的 adapter, 而是启动的时候 先初始化, 然后通过数据库里面的 对应关系 ,动态加载所有的 权限条目 然后通过中间件去判断,如果有更新,可以动态修改更新 权限条目. 例子 目录 代码 rbac_model.conf [request_defini...阅读全文

博文 2019-01-10 17:35:14 295631788

【轻知识】3分钟,golang 操作 clickhouse

安装clickhouse与使用 docker pull yandex/clickhouse-server 如果pull出现 docker pull yandex/clickhouse-server Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout 请换源。另一种方式是用dig命令然后配置hosts。这个方式有可能dig出来的ip都不好使。 docker run -d --name ck-server --ulimit nofile=262144:262144 -p 8123:8123 -p 900...阅读全文

博文 2020-04-17 23:32:47 言十年

使用go语言和webview编写桌面应用

https://github.com/tenny1225/go-web-app 具体思路是使用http实现页面跳转,使用jsonrpc实现ui和go之间的数据通讯。 golang版本的webview使用的是github.com/zserge/webview这个库,自己封装了一套Page,实现页面之间的跳转。具体使用 package main import "time" func main() { StartWindow("golang html", 400, 400, true, func() { pager := NewPager(&MyPage{},&MyPageAction{}) pager.StartPage(0) }) } type MyPage struct { PageImpl...阅读全文

博文 2018-11-29 18:34:41 tenny1109

20160226: 招golang 分布式平台开发工程师(Docker相关) 上海 (2名)

我们是专门为国内大金融(银行,交易所,保险公司,证券)和电信提供开源解决方案和服务的专业团队。公司技术团队都是热爱开源,长期做开源工作的工程师。 非常感谢我们这个专业社区, 经过2年的努力,我们终于开发出了基于golang 和docker底层技术的面向金融行业的分布式平台。并且作为国内领先的团队,在超大型金融企业的项目中落地,真正发挥了golang的的威力。 随着业务良好的扩展,我们开始扩展团队,这次仍旧在上海总部招聘 2位golang 开发工程师 招聘情况如下,喜欢golang , 分布式和开源技术的小伙伴快来加入我们把。 工作地点: 上海 职位描述: 分布式平台开发工程师 薪酬范围:12k-20k, 13个月 (薪酬级别依照开发经验设置。另外由于我们过去一年已经有...阅读全文

go-goroutine中的共享变量

自 : http://www.cnblogs.com/sevenyuan/archive/2013/04/18/3029388.html Happens Before 对于一个goroutine来说,虽然指令会被编译器乱序重排,但它其中变量的读, 写操作执行表现必须和从所写的代码得出的预期是一致的。但是在两个不同的goroutine对相同变量操作时, 可能因为指令重排导致不同的goroutine对变量的操作顺序的认识变得不一致。为了解决这种二义性问题,Go语言中引进一个happens before的概念,它用于描述对内存操作的先后顺序问题。如果事件e1 happens before 事件 e2,事件e2 happens after e1。如果,事件e1 does not happen bef...阅读全文

博文 2015-09-15 18:00:00 lmxmimihuhu

为什么明星公司会选择Go作为编程语言?

近日,Hacker News 发布了 2018 年 7 月的编程语言招聘趋势排行榜,其中,Go语言已经反超Java进入了前三名的行列。从浅绿色的Go语言走势图可以看出来,企业对于Go语言的采用情况在逐年上升。从公司角度看,许多大厂都已经开始拥抱Go语言,包括以Java打天下的阿里巴巴,更别提深爱着Go语言的滴滴、今日头条、小米、奇虎360、京东等明星公司。同时,创业公司诸如轻松筹、快手、知乎、探探、美图、猎豹移动也钟爱Go语言,因为Go语言具有入门快、程序库多、运行迅速等特点,也比较适合快速构建互联网软件产品。说到Go语言的应用场景,它基本可以用在所有对于性能有较高要求的系统中,比如分布式系统、网络编程、高并发系统、服务端编程。目前流行的Docker、Kubernetes、istio、ns...阅读全文

博文 2019-01-30 12:31:04 g6U8W7p06dCO99fQ3

GoLang基础数据类型--->字典(map)详解

GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是函数吗?学过python的小伙伴可能会想到map这个函数。其实它就是Golang中的字典。下面跟我一起看看它的特性吧。map 也就是 Python 中字典的概念,它的格式为“map[keyType]valueType”。 map 的读取和设置也类似 slice 一样,通过 key 来操作,只是 slice 的index 只能是`int`类型,而 map 多了很多类型,可以是 int ,可以是 string及所有完全定义了 == 与 != 操作的类型。 一.map的赋值方式 1.先的声明再初始化最后赋值 1...阅读全文

博文 2017-10-19 16:00:01 yinzhengjie

Python已是过去式?Golang才是未来?

image Go语言诞生于谷歌,由Rob Pike、Ken Thompson和Robert Griesemer三位计算机科学硕士撰写。由于其知名度,Go自成立以来就引起了众多开发者的关注。自从它10年前诞生以来,许多基于Go的应用程序已经出现。不久前,知乎放弃了python,用go来重建推荐系统。 Google的前雇员Jake wilson认为,与熟悉的python相比,go语言有许多好的特性,在许多情况下可以取代python。在许多任务中,他用Go语言取代了Python。那么,Go语言的独特魅力是什么呢?什么比Python更好?让我们一起了解。 2019 年程序员最想学习的编程语言 image 出身名门的 Go 语言 对于一种只有十年历史的新语言来说,Go正在迅速发展。作为容器界的扛把子,...阅读全文

博文 2019-08-07 21:32:53 柏链项目学院P叔

golang防缓存击穿利器--singleflight

缓存击穿     给缓存加一个过期时间,下次未命中缓存时再去从数据源获取结果写入新的缓存,这个是后端开发人员再熟悉不过的基操。本人之前在做直播平台活动业务的时候,当时带着这份再熟练不过的自信,把复杂的数据库链表语句写好,各种微服务之间调用捞数据最后算好的结果,丢进了缓存然后设了一个过期时间,当时噼里啪啦两下写完代码觉得稳如铁蛋,结果在活动快结束之前,数据库很友好的挂掉了。当时回去查看监控后发现,是在活动快结束前,大量用户都在疯狂的刷活动页,导致缓存过期的瞬间有大量未命中缓存的请求直接打到数据库上所导致的,所以这个经典的问题稍不注意还是害死人     防缓存击穿的方式有很多种,比如通过计划任务来跟新缓存使得从前端过来的所有请求都是从缓存读取等等。之前读过 groupCache的源码,发现里面有...阅读全文

博文 2019-03-11 19:34:45 薛薛薛

golang 单元测试(gotests、mockery自动生成)

golang 单元测试 文件格式:go单元测试,有固定的名称格式,所有以_test.go为后缀名的源文件在执行go build 时不会被构建成包的一部分,他们是go test 测试的一部分。 测试函数 函数格式:每个测试函数是以Test为函数名称前缀。 每个测试函数必须导入testing包。 func TestName(t *testing.T) { // ... } 基准测试(benchmark) 函数格式:函数前缀名称Benchmark。 作用:用于衡量函数的性能。会多次运行基准函数,计算一个平均的执行时间。 示例函数 函数前缀名称Example 作用:提供一个由编译器保证正确性的示例文档。 命令介绍 参数-v可用于打印每个测试函数的名字和运行时间: go test -v 2.-run ...阅读全文

博文 2018-10-08 19:34:42 super大橙子

golang channal中buf和for range一些用法

go的gocontinue用法实现了轻量级的线程,可以被大量创建。线程之间用channal通信,以下说说基本用法。 channal的buf c:=make(chan int ,3) 3就是设定的chanal的缓存量,缓存只意味着这个创建的channal可以同时存入3个数据,并不意味读channal时可以同时读出。 x:=<-c 读channal时仍然是以阻塞的方式一次一个地将数据读出。 当channal缓存中存在有效数据时,即使close掉channal,仍然可以读出buf里的数据。需要注意的是,从close掉的channal读数据时,channal是不阻塞的,当channal中的buf数据被读完时,仍然会以不阻塞的方式读出0值。 channal的for range c:=make(chan...阅读全文

博文 2015-12-21 16:00:01 iwbno1

Golang-btree包的主要方法和总结

B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。按照翻译,B 通常认为是Balance的简称 本篇介绍google的btree使用, 地址:http://github.com/google/btree 树的结构必须实现排序的规则 import ( "github.com/google/btree" ) type MyTree struct { Age int Name string } func (m *MyTree) Less(item btree.Item) bool { return m.Age < (item.(*MyTree)).Age } 创建树 btree.New(degree int)...阅读全文

博文 2020-03-03 15:33:21 八叉树

p2p端口映射工具 dog-tunnel

狗洞是一个高速的 P2P 端口映射工具,同时支持Socks5代理。 0.5版后开始开源,UDP底层基于开源库KCP重写,效率大大提高,在恶劣环境下优势明显。 同时提供非P2P版本(Lite版本),两端连接过程完全不依赖中间服务器,支持加密和登陆认证,自动重连,但是需要人为确保两端能正常连通(否则请使用默认的P2P版本) ![image](http://static.oschina.net/uploads/space/2014/1213/080425_bS2n_12.png) 特性: * 数据安全,P2P模式通讯时数据不经过服务端,用户可自定义访问密码 * P2P模式底层采用KCP协议,在恶劣网络环境下比TCP延迟降低 30%-40% * P2P模式支持AES加密 * P2P模式可...阅读全文

开源项目 2014-12-12 16:00:00 vzex

阿里P8架构师谈:高并发架构解决方案总结

一、关于高并发高并发是指在同一个时间点,有很多用户同时访问URL地址,比如:淘宝的双11、双12,就会产生高并发。又如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击。1 高并发会来带的后果服务端:导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的,比如:出现重复的数据记录,多次添加了用户积分等。用户角度:网站打不开服务器雪崩:2 并发下的数据处理通过表设计,如:记录表添加唯一约束,数据处理逻辑使用事物防止并发下的数据错乱问题。通过服务端锁进程防止包并发下的数据错乱问题。这里主要讲述的是在并发请求下的数据逻辑处理的接口,如何保证数据的一致性和完整性,这里的并发可能是大量用户发起的,也可能攻击者通过并发工具发起的并发请求。例子1:通过表设计防止并发导致数据...阅读全文

博文 2018-10-14 16:01:06 Java007

江西信息化中心主任金俊平一行莅临数据宝参观考察

2017年7月20日,江西信息化中心主任金俊平一行莅临chinadatapay.com中国数据宝上海分公司参观考察。来访领导对公司发展历程、平台模式以及产品应用场景进行详细地咨询了解,金主任称赞数据宝产品具备高效性、全面性和创新性,并希望与数据宝携手合作,共同发展大数据产业。 ![1.jpg](http://studygolang.qiniudn.com/170731/0f11f58859d208d130418859448f74eb.jpg) 江西省信息中心成立于1987年,是由省发改委管理的副厅级全额拨款的事业单位,也是全省政务系统信息专家最集中、技术力量最强、信息装备最先进的信息中心。经省编办批复,先后于2011、2015年分别加挂“江西省电子政务网络管理中心”、“江西省信用...阅读全文

GO语言结构体方法跟结构体指针方法的区别

首先,我定了三个接口、一个结构和三个方法: type DeptModeA interface { Name() string SetName(name string) } type DeptModeB interface { Relocate(building string, floor uint8) } type Dept struct { name string building string floor uint8 Key string } func (self Dept) Name() string { return self.name } func (self Dept) SetName(name string) { self.name = name } func (self *D...阅读全文

博文 2017-01-18 16:00:08 tree2013

golang读取java或者go的webservice服务

由于自己搭建了java webservice,已经存在的wsdl.使用go去调用;获取其中的数据信息 ,如果go搭建了webservice ,应该一样(个人理解) package main import ( "fmt" "time" // 缺包,自己补全 ) func main() { // 参数封装 pars := make(map[string]interface{}) pars["Message"] = "this is test str" // 这是测试 pars["signMessage"] = "" data, _ := json.Marshal(pars) dataStr := string(data) ...阅读全文

Kubernetes集群中的Nginx配置热更新方案

Nginx已经是互联网IT业界一个无敌的存在,作为反向代理、负载均衡、Web服务器等多种角色的扮演者,Nginx在全球各个互联网公司落地、开花和结果,Ngnix已经成为了支撑全球互联网应用的一个不可获取的组成部分。 在我们的平台中,Nginx同样被拿来作为服务接入的最前端的反向代理,并且我们的Nginx也是作为一个Service跑在我们的Kubernetes集群中的。Ngnix背后的服务众多,服务的生生死死都要在Nginx上这些服务路由的配置中有所体现,这就要求部署在Kubernetes集群中的Nginx需要有一个合理的配置热更新方案。 Nginx自身是支持配置热更新的,通过nginx -s reload命令可以实现这一点: # sudo nginx -s reload # sudo tai...阅读全文

博文 2017-02-06 03:02:03 bigwhite

Golang之bytes.buffer

bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte Buffer 是 bytes 包中的一个 type Buffer struct{…} A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer ready to use. (是一个变长的 buffer,具有 Read 和Write 方法。 Buffer 的 零值 是一个 空的 buffer,但是可以使用) Buffer 就像一个集装箱容器,可以存东西,取东西(存取数据) 创建 一个 Buffer (其实底层就是一个 []byte, 字节切片)...阅读全文

博文 2016-01-29 00:00:01 grassroots2011

手把手教你实现一个微信自动回复机器人

RebateBot 返利机器人 项目地址 项目描述 关键词: 返利 微信 阿里妈妈 机器人 跨平台 返利机器人,基于微信建立机器人通道与用户通过聊天快速生成返利链接 利用闲置微信和极小的电脑性能开启24小时无人轮值返利机器人 购物只需要发送链接给机器人,机器人能马上给你回复优惠价格及链接 功能实现 微信机器人 这个模块在这里可以看到最新的代码微信机器人 [x] 消息回调 [x] 自动回复消息 [x] 新增好友回调 [x] 默认同意新增好友 [x] 自动回复(文字,表情) 阿里妈妈 [x] 链接识别 [x] 淘口令识别 [x] 链接转换返利链接 [x] 自动分配不同pid [x] 扫码登录 [x] 订单定时下载 [x] 自动计算返利反点 消息处理 [x] 签到 [x] 帮助 [x] 自动绑定订...阅读全文

博文 2018-08-15 11:35:00 546669204

Golang实现简单tcp服务器04 -- 服务器的粘包处理

服务器的粘包处理 什么是粘包 一个完成的消息可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和封包问题 TCP粘包和拆包产生的原因 应用程序写入数据的字节大小大于套接字发送缓冲区的大小 进行MSS大小的TCP分段。MSS是最大报文段长度的缩写。MSS是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。所以MSS并不是TCP报文段的最大长度,而是:MSS=TCP报文段长度-TCP首部长度 以太网的payload大于MTU进行IP分片。MTU指:一种通信协议的某一层上面所能通过的最大数据包大小。如果IP层有一个数据包要传,而且数据的长度比链路层的MTU大,那么IP层就会进行分片,把数据包分成托干片,让每一片都...阅读全文

博文 2015-06-02 23:00:16 victoriest

几种Go序列化库的性能比较

序列化库在网络传输,RPC,数据库访问等环境中经常用到,它的性能的好坏直接影响着整个产品的性能。本文列出了几种高性能的Go语言的序列化库,并通过一个简单的无循环引用的数据结构测试它们的性能。测试代码: gosercomp at github 03/14/2016 更新。 增加Thrift/Avro/Gencode的性能比较。 测试的 Serializers 以golang自带的encoding/json和encoding/xml为基准,测试以下性能比较好的几种序列化库。 encoding/json encoding/xml github.com/youtube/vitess/go/bson github.com/tinylib/msgp github.com/golang/protobuf ...阅读全文

博文 2017-02-08 12:53:30 smallnest

Golang 逐行读取大文件性能对比

前 言 BUFIO 是什么? BUFIO 是用来驱动 I/O 列内的专用时钟网络,这个专用的时钟网络独立于全局时钟资源,适合采集源同步数据。BUFIO 只能由位于同一时钟区域的 Clock-Capable I/O驱动。一个时钟区域有4个 BURIO,其中的2个可以驱动相邻区域的 I/O 时钟网络。BUFIO 不能驱动逻辑资源(CLB、BRAM等),因为 I/O 时钟网络只存在于 I/O 列中。 简单点就是: bufio 包实现了带缓存的 I/O 操作 它封装一个 io.Reader 或 io.Writer 对象 使其具有缓存和一些文本读写功能 本文主要来对比一下 BUFIO 中的 ReadString 和 ReadLine 函数的性能。 注:测试代码忽略读取内容和错误处理 ReadStrin...阅读全文

博文 2017-09-13 05:34:50 51reboot

华为云 路由器的天坑

问题在华为云服务器上使用Golang直接监听UDP端口,外部将无法访问这些端口,因为华为云服务器的路由不会允许外部与这些UDP端口直接通信。即便在配置了安全组以后亦是如此。解决方案Golang 建立连接后,使用 conn.Write() 写入部分数据即可(无需指定目的地)。如此一来,华为云的路由器便能放行此 UDP 端口。问题猜测华为云路由器的 NAT 算法应该是华为自己魔改的。尽管外网 IP 对 服务器内网IP是 1对1 的,但路由器对外部的访问存在限制。需要像 IP限制锥形 NAT 一样向往外发送数据后才能正常使用...阅读全文

博文 2020-05-05 05:32:43 鹿沐浔

Go语言实战笔记(二)| Go开发工具

在Go语言中,我们很多操作都是通过go命令进行的,比如我们要执行go文件的编译,就需要使用go build命令,除了build命令之外,还有很多常用的命令,这一次我们就统一进行介绍,对常用命令有一个了解,这样我们就可以更容易的开发我们的Go程序了。 Go 开发工具概览 go这个工具,别看名字短小,其实非常强大,是一个强大的开发工具,让我们打开终端,看看这个工具有哪些能力。 ➜ ~ go Go is a tool for managing Go source code. Usage: go command [arguments] The commands are: build compile packages and dependencies clean remove object files...阅读全文

博文 2017-03-09 05:02:06 飞雪无情flysnow_org