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

go的json输出

// code_030_JSON_key_value project main.go package main import ( "encoding/json" "fmt" ) //Go语言内建对JSON的支持。 //使用Go语言内置的encoding/json 标准库,开发者可以轻松使用Go程序生成和解析JSON格式的数据 type IT struct { Company string Subjects []string IsOk bool Price float64 } type University struct { //ID int //所学专业的ID Name string `json:"-"` //大学名称 //Department string //系 //Major stri...阅读全文

博文 2018-10-07 00:35:10 ck_god

更优雅的 Golang 错误处理

Golang 中的错误处理是一个被大家经常拿出来讨论的话题(另外一个是泛型)。其中泛型这个问题,rsc 在最近的计划中也提出了纳入他今年的考虑计划中,同时,泛型的提案在2016年也进行了一些更新,相信未来会有一些更好的方案提出。这个文章我们讨论一下如何在现行的 Golang 框架下提供更友好和优雅的错误处理。 从现状谈起 Golang 中的错误处理原则,开发者曾经之前专门发布了几篇文章( Error handling and Go 和 Defer, Panic, and Recover、Errors are values )介绍。分别介绍了 Golang 中处理一般预知到的错误与遇到崩溃时的错误处理机制。 一般情况下,我们还是以官方博客中的错误处理例子为例: func main() { f,...阅读全文

博文 2017-02-10 07:42:04 kevin

Golang语言标准库http/url的Values的详细介绍

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; Golang标准库http/url Values 今天我们更新文章,主要推广的还是GO语言,当然现在热门搜索的还是Golang,今天我们主要讲解的就是Golang标准库里边的net/url的下边的这些 [php] type Values func ParseQuery(query string) (m Values, err error) func (v Values) Add(key, value string) func (v Values) Del(key string) func (v Values) Encode() string func (v Values) Get(key st...阅读全文

博文 2017-02-09 18:38:04 widuu

golang 锁的使用

sync.mutex 加锁后禁止其他地方读或写,这个适用于可能出现的在不同go程中修改同一个数据 sync.rwmutex 的lock 和 unlock 的使用和sync.mutex类似 sync.rwmutex 的rlock和runlock的使用适用于要读取数据,防止在读取的同时可能出现的别的地方写入 而导致的读取失...阅读全文

博文 2015-10-15 19:00:15 徐学良

GO中调用redis时,当并发量比较大时出现的问题。

GO中调用redis时,实始化一个连接池,做法也是一般的用户: ```go &redis.Pool{ MaxIdle: beego.AppConfig.DefaultInt("redis::maxidle", 1), MaxActive: beego.AppConfig.DefaultInt("redis::maxactive", 10), IdleTimeout: time.Duration(beego.AppConfig.DefaultInt64("redis::idle_time_out", 180)) * time.Second, Dial: func() (redis.Conn, error) { log.Println("func dia...阅读全文

Go语言for```range方法遍历map,遍历打印值与map实际存储值不同

> 今天编写了map结构数据存储程序,map的key总数:22046个,通过for```range方法遍历map发现,遍历打印的结果与实际存储内容不符,主要是存储结果数量和值正确,打印出来的值少了。 - 以下是打印结果 ```go keys:0xE7A0 values:0x942E keys:0xE9E6 values:0x6B92 keys:0xF5F2 values:0x8E9C keys:0xF7F0 values:0x9EDF ======================= 以上使用range遍历结果 ==================== 获取0xFE4E值:0xFA28 总数:22046 ``` - 以下是存储数据结构示意 ...阅读全文

使用Go语言工作400天后的感受

我在2011年就听说了Go并学习了一段时间,坦白的说,那时候对Go是比较无感的,因为并没有看到Go特别亮眼的地方,可能和我使用C、Erlang、Java有关,这三种语言可以写高性能、高并发、高可用的服务;包含了面相过程、面向并发、面向对象的思想,我觉得我并不需要再学习Go,何况那个时候好像也没宣传的那么优秀。 一切都发生在418天前,因为工作的需要,我开始写Go了,本来预期是一段压抑、蛋疼的旅程(被迫使用其它语言的同学可能都会有此感受),结果收获了非一般的惊喜、非一般的效率、非一般的开发体验。 先用几个词来总结一下我的感受:简洁、标准、组合、创造力、生产力! 特别是生产力,由于Go优秀的标准库、完美的代码安全、全面的三方库、完善的测试机制、完善的标准管理工具,使用Go给我们小组带来了极大的生...阅读全文

博文 2016-03-28 15:54:45 erlib

阅读 valyala/fasthttp —— 比官方库更快的 HTTP 包

valyala/fasthttp 是号称比官方net/http库更快的 http server 库。就去顺便研究了,发现一些细节的不同。 处理 net.Conn 的 goroutine 处理net.Conn的goroutine的使用方式,和标准库有很大差别。在标准库,net.Listener.Accept() 到一个连接,就会开启一个goroutine: // Serve accepts incoming connections on the Listener l, creating a // new service goroutine for each. The service goroutines read requests and // then call srv.Handler to...阅读全文

博文 2016-04-17 14:49:15 傅小黑

Go1.5 改进摘要

Go1.5 改进简介 纯Go(+少量汇编)实现 runtime 和 编译器 改进 垃圾回收器, 支持 并发 (有个指标好像是 停顿在 10 毫秒以内). GOMAXPROCS 默认值改为 CPU 核数 internal 限制规则推广到第三方包 (之前只有 std 包启用) 增加 vendor 支持, 基本解决 第三方库的依赖问题和版本问题 增加 trace 命令, 更友好的剖析程序运行状态 增加 go doc 命令 语法变化 增加 map 字面量. 以前的代码: m := map[Point]string{ Point{29.935523, 52.891566}: "Persepolis", Point{-25.352594, 131.034361}: "Uluru", Point{37.4...阅读全文

博文 2015-07-08 16:00:00 chai2010

Go圣经-学习笔记入门bufio.Scanner

上一篇 Go圣经-学习笔记入门bufio 下一篇 Go圣经-学习笔记入门bufio.Writer 由bufio.Reader引出的问题 由上篇文章《Go圣经-学习笔记入门bufio》,我们可以知道,bufio.Reader结构体中所有读取数据的方法,都包含了delim分隔符,这个用起来很不方便,所以Google对此在go1.1版本中加入了bufio.Scanner结构体,用于读取数据。 使用DEMO: func main(){ scanner:=bufio.NewScanner( strings.NewReader("ABCDEFG\nHIJKELM"), ) for scanner.Scan(){ fmt.Println(scanner.Text()) // scanner.Bytes()...阅读全文

博文 2017-10-22 00:31:10 cdh0805010

Go如何发送广播包

网络数据包的发送分为三种方式,分别是单播、组播、广播。 广播通俗地讲,就是让你的机器发送的数据包可以被同一个网络内的所有主机都接收到。 在讲解如何发送广播包之前,先来看看跟广播有关的知识: 我们都知道IP地址的作用是用来在网络中定位某个网络接口的(没错,准确的讲,IP并不是定位某一台主机)。我们通常见到的IP地址的形式都是如下这样子的: XXX.XXX.XXX.XXX 这种IP地址的形式叫做点分十进制表示法,其实IP是一个32位长的二进制数,以每8位为单位,共分成4个部分,也就是分成了4个字节。 IP地址的组成方式是: [网络号]+[主机号] 网络号是用来标识某个网络的,而主机号是用来标识网络中的某一台主机的(其实是主机上的某个接口)。 通常计算机发送一个数据包时会在数据包的头部加上发送者的...阅读全文

博文 2015-11-03 15:00:15 u011774512

Golang+MySQL 事务

准备知识:MySQL事务 1 基本操作 sql.Tx tx会从连接池中取一个空闲的连接,直至调用commit或者rollback才会释放 tx, err := db.Begin() // 创建tx对象 tx.Query(command1) tx.Exec(command2) tx.Commit() 2 并发 事务只有一个连接,事务内的操作是串行的 db, _ := sql.Open(...) rows, _ := db.Query("SELECT id FROM tt_users") for rows.Next(){ var ( user_id int openid string ) rows.Scan(&user_id) db.QueryRow("SELECT openid FROM tt...阅读全文

博文 2018-08-08 14:34:53 埃尔温薛定谔不养猫

GOLANG 基本数据类型 整型

基本数据类型-整型 种类 有符号(负号) int8 int16 int32 int64 无符号(无符号) uint8 uint16 uint32 uint64 架构特定(取决于系统位数) int uint 类型别名 Unicode字符rune类型等价int32 byte等价uint8 特殊类型 uintptr,无符号整型, 由系统决定占用位大小,足够存放指针即可,和C库或者系统接口交互 取值范围 具体类型 取值范围 int8 -128到127 uint8 0到255 int16 -32768到32767 uint16 0到65535 int32 -2147483648到2147483647 uint32 0到4294967295 int64 -9223372036854775808到9223...阅读全文

博文 2016-08-30 16:00:00 zengyz

了解一下Golang的市场行情

了解一下Golang的市场行情 项目地址:https://github.com/go-crawler/lagou_jobs 如果对你有所帮助,欢迎 Star :) 目标 在工作中 Golang 已是一份子,想让大家了解一下 Golang 的市场行情,也想让更多的人熟悉它。因此主要是展示数据分析的结果 目标站点是 某招聘网站 的职位数据抓取和分析,爬取城市分别为 北京、上海、广州、深圳、杭州、成都,再得出一个结论 分析 首先需要进行页面分析,找到我们的抓取方向 搜索 golang 关键字,打开页面 F12 就能看到它发送了四个请求,留意 positionAjax.json 这个请求 我们仔细研判这个接口的入参和出参 入参 1、Query String Param city:请求的城市 need...阅读全文

博文 2018-04-28 09:44:10 go-crawler

阿里云技术大牛详解混合云数据安全传输两大解决方案

阿里云高级安全专家 安忍 引言 Gartner称,云计算的使用正在不断增加,到2016年这一增长将占据大量新增IT开支。2016年将是云计算决定性的一年,私有云开始让路给混合云,近半数的大型企业将在2017年年底部署混合云。 但在此过程中,从公共云到私有云之间的数据安全传输问题也成为各方关注的焦点。 本文详细解读了阿里云是如何通过自有产品VPC高速通道专线接入和第三方安全厂商VPN公网接入两种方案,解决用户这方面的安全诉求。 数据安全传输解决方案之阿里云 · 高速通道 在与用户沟通时,我们发现用户对于混合云的数据安全传输主要有这四大诉求: l 出现类似微博跨年抢红包、12306过年卖票这种突发业务,可以快速将业务平滑地从私有云向公共云迁徙,保证业务...阅读全文

深入理解 Go 标准库之 bufio.Scanner

众所周知,[带缓冲的 IO 标准库](https://golang.org/pkg/bufio/) 一直是 Go 中优化读写操作的利器。对于写操作来说,在被发送到 `socket` 或硬盘之前,`IO 缓冲区` 提供了一个临时存储区来存放数据,缓冲区存储的数据达到一定容量后才会被"释放"出来进行下一步存储,这种方式大大减少了写操作或是最终的系统调用被触发的次数,这无疑会在频繁使用系统资源的时候节省下巨大的系统开销。而对于读操作来说,`缓冲 IO` 意味着每次操作能够读取更多的数据,既减少了系统调用的次数,又通过以块为单位读取硬盘数据来更高效地使用底层硬件。本文会更加侧重于讲解 [bufio](https://golang.org/pkg/bufio/) 包中的 [Scanner](https...阅读全文

博文 2017-12-10 02:49:26 polaris

Golang 数据库操作

Golang 数据库操作 Golang 数据库 MySQL Golang支持DB操作位于database包下,支持基本CRUD操作、事务和Prepared Statement,本文以MySQL为例。 MySQL驱动安装 使用数据库之前,必须安装相关MySQL数据驱动[1],如果未安装驱动或者没有引入驱动库会报以下错误: failed to open database: sql: unknown driver "mysql" (forgotten import?) 安装golang mysql driver go get github.com/go-sql-driver/mysql 代码中还需注册数据库驱动,通过引入空白倒入[2]mysql包来完成 import( "database/sql"...阅读全文

博文 2015-08-09 18:00:00 nop4ss

golang mongodb mgo 插入,查询例子

golang mongodb mgo 插入,查询的一个小例子,golang还是给我那个感觉,比nodejs写起来舒服. package main import ( "fmt" "launchpad.net/mgo" "launchpad.net/mgo/bson" ) type Mail struct { Id bson.ObjectId "_id" Name string Email string } func main() { // 连接数据库 session, err := mgo.Dial("127.0.0.1") if err != nil { panic(err) } defer session.Close() // 获取数据库,获取集合 c := session.DB("tes...阅读全文

博文 2014-10-05 00:00:01 DarkWingBoy

【200426】字节跳动大量岗位释放,欢迎找我内推,base 北京/深圳

职位描述 1、服务于字节跳动核心广告系统,负责广告商业变现基础平台研发工作; 2、设计并维护广告投放平台,优化改进微服务系统薄弱点,解决数据隔离、系统解耦等技术难题; 3、对接抖音、头条、西瓜、抖音火山版等当红APP的广告投放; 4、深入理解广告投放流程,了解上下游投放链路和投放策略,参与现有投放链路和策略优化,助力平台营收; 5、提供百亿级广告基础数据服务,完成大规模、高可用的广告系统搭建。 职位要求 1、熟悉python、php、c++、java、golang 等中至少一门语言 ),具备良好的编码能力; 2、基础扎实,熟悉网络编程,熟练使用至少一种数据库和缓存等基础组件; 3、学习能力强,能够独立分析和解决问题,逻辑思维能力强,善于分析和解决问题,能够处理复杂业务系统逻辑; 4、责任心强...阅读全文

博文 2020-04-26 21:32:51 林湾村龙猫

Golang程序配置方案小结

Golang程序配置方案小结 七 01 bigwhite技术志 Bool, cobra, config, Cpp, Education, flag, getopt, Go, Golang, ini, Java, json, multiconfig, Perl, POSIX, Ruby, Shell, TOML, twitter, viper, Windows, 命令行选项, 标准库, 配置文件 No Comments 在Twitter上看到一篇关于Golang程序配置方案总结的系列文章(一个mini series,共6篇),原文链接:在这里。我觉得不错,这里粗略整理(非全文翻译)一下,供大家参考。 一、背景 无论使用任何编程语言开发应用,都离不开配置数据。配置数据提供的形式有多样,不外乎命令...阅读全文

golang 查询数据库操作

SQL.Open only creates the DB object, but dies not open any connections to the database. If you want to test your connections you have to execute a query to force opening a connection. The common way for this is to call Ping() on your DB object. See http://golang.org/pkg/database/sql/#Open and http://golang.org/pkg/database/sql/#DB.Ping Quoting from...阅读全文

博文 2017-07-01 08:00:35 oxspirt

Golang -- 10件你不知道的事情

本文翻译 从 文章进行翻译,在此表示感谢 10 things you (probably) don’t know about golang 匿名结构体 (Anonymous structs) Template data (模板数据) data := struct { Title string Users []*User //猜测 User 是一个接口,接口指针的切片 } { title, USERS, } err := tmpl.Execute(w, data) (Cheaper and safer than using map[string]interface{}) 确实没有太理解,是什么意思? 嵌入式锁 (Embedded Lock) var hits struct{ sync.Mute...阅读全文

博文 2015-03-29 20:00:09 xiaorenwuzyh

Go中nil

结论:由于Go中interface会同时存储类型和值,如果将一个nil对象赋值给一个interface,这个interface为非nil。 nil在Go中相当与其它语言中的NULL、null和None等,在实际的使用中表示某一个变量为空。nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果将nil赋值给其他变量的时候将会引发panic。 首先来看一个代码: package main import "fmt" type MyError struct{} func (this *MyError) Error() string { return "" } func test() error { var p *MyError = nil /* //C...阅读全文

博文 2016-02-07 12:00:01 jiaolongdy

用Golang写爬虫(一)

之前一直都是再用Python写爬虫,最近想体验下Golang写爬虫的感觉,所以就有了这个系列。我想要抓取的页面是豆瓣Top250页面,选择它的理由有3个: 豆瓣页面代码相对规范 豆瓣对爬虫爱好者相对更宽容 Top250页面简洁,很适合拿来练手 我们先看第一版的代码。 按逻辑我把抓取代码分成2个部分: HTTP请求 解析页面中的内容 我们先看HTTP请求,Golang语言的HTTP请求库不需要使用第三方的库,标准库就内置了足够好的支持: import ( "fmt" "net/http" "io/ioutil" ) func fetch (url string) string { fmt.Println("Fetch Url", url) client := &http.Client{} re...阅读全文

博文 2019-07-10 11:34:21 Golang编程

golang udp服务端客户端例子

golang udp服务端客户端例子 服务端: package main import ( "fmt" "net" ) func main() { // 创建监听 socket, err := net.ListenUDP("udp4", &net.UDPAddr{ IP: net.IPv4(0, 0, 0, 0), Port: 8080, }) if err != nil { fmt.Println("监听失败!", err) return } defer socket.Close() for { // 读取数据 data := make([]byte, 4096) read, remoteAddr, err := socket.ReadFromUDP(data) if err != nil...阅读全文

Go语言:UUID 的生成与解析

导言:因为Golang中的UUID还没有纳入标准库,所以我们使用GitHub上的开源库,另外我所提供的这个开源库支持 UUID v5,代码实例我就用比较常用的 UUID v4 演示了 1. 安装 go get github.com/satori/go.uuid 2. 实例 package main import ( "github.com/satori/go.uuid" ) func main() { // 创建 UUID v4 u1 := uuid.Must(uuid.NewV4()) println(`生成的UUID v4:`) println(u1.String()) // 创建可以进行错误处理的 UUID v4 u2, err1 := uuid.NewV4() if err1 != ...阅读全文

博文 2019-03-14 18:34:47 海东总司

Go语言内幕(1):主要概念与项目结构

本文由 伯乐在线 - yhx 翻译,唐尤华 校稿。未经许可,禁止转载!英文出处:Sergey Matyukevich。欢迎加入翻译组。这个系列博客主要为那些对 Go 基本知识已经有一定了解,又希望对其内部细节进行更深一步地探索的人准备的。今天这一篇主要分析 Go 源代码的基本结构以及 Go 编译器的某些内部细节。读完这篇博客后,你会得到下面三个问题的答案: 1. Go 源代码结构是什么样子的? 2. Go 编译器是如何工作的? 3. Go 语言中的结点树的基本结构是什么样的? 让我们开始吧 每当开始学习一门新编程语言的时候,你总是可以找到大量的 “hello world” 教程、新手指南或者关于语言的主要概念、语法甚至标准库的文档。然而,当你想找一些介绍得更加深入的资料,比如语言运行时分配的...阅读全文

博文 2016-05-31 19:49:01 伯乐在线

基于 Golang 的 xls 读取类库:xls

Golang 编写的 xls 读取类库,能够实现 xls 表格的读取功能 func (w *WorkBook) ReadAllCells() (res [][]string) { for _, sheet := range w.Sheets { w.PrepareSheet(sheet) if sheet.MaxRow != 0 { temp := make([][]string, sheet.MaxRow+1) for k, row := range sheet.Rows { data := make([]string, 0) if len(row.Cols) > 0 { for _, col := range row.Cols { if uint16(len(data)) <= col....阅读全文

博文 2015-10-24 03:00:00 zhuiluoyu

每日安全资讯(2019.09.06)

用Golang打造一款便携式网络拓扑可视化的工具 之前做内网渗透测试的时候,一直想要有一款能够格式化存储收集到的信息,并且可以方便的查找出重要信息的工具。前段时间看到了Leprechaun这个工具,给了我一些想法。由于,我对于这个工具有些不喜欢的地方。再加上好久没有写小程序练手了,于是决定自己定制一款类似的工具。 https://www.freebuf.com/sectool/212374.html 自古逢秋悲寂寥:浅谈瑞华的“分手季” 瑞华最近不太好,前头沾惹上陈年造假大案,后头接连被分手两次。为啥安全圈的大佬们不爱瑞华了? https://www.freebuf.com/news/213476.html 一种基于欺骗防御的入侵检测技术研究 欺骗防御(Deception)是防守者得以观察攻...阅读全文

博文 2019-12-27 16:33:08 溪边的墓志铭

趣头条基于 Flink 的实时平台建设实践

本文由趣头条实时平台负责人席建刚分享趣头条实时平台的建设,整理者叶里君。文章将从平台的架构、Flink 现状,Flink 应用以及未来计划四部分分享。 一.平台架构 1.Flink 应用时间线 首先是平台的架构,2018 年 3 月之前基本都是基于 Storm 和 Spark Streaming 来做的。目前,基本已经把 Spark Streaming 和 Storm 淘汰了,主要都是 Flink SQL 来做的。起初还比较传统,一般是接需求然后开发类似于 Flink SQL 的任务,基本是手工作坊操作模式。 后来 Flink SQL 的任务逐渐多了起来,就开始考虑往平台化方向发展。大概在 2018 年 10 月份,我们开始搭建实时平台。当时设计实时平台时就直接抛弃了 Spark Strea...阅读全文

Golang利用select实现goroutine的超时控制

简单的说下select是干什么的? select用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的处理机制。当你发起一些阻塞的请求后,你可以使用select机制轮训扫描fd,直到被监视的文件句柄有某一个或多个发生了状态改变。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。 http://xiaorui.cc/?p=2997 本来只是想说下select,但又忍不住废话下说下epoll的处理流程: 我们可以把要监控读写的文件交给内核(epoll_add),而内核通过中断的方式得知事件通知. 这要比select好不少. 设置你关心的事件(epoll_ctl),比如读事件. 然后等(epoll_wait),此时,如果没有哪个文件有你关心的事...阅读全文

博文 2017-04-04 19:30:56 rfyiamcool

自制JVM -- 用GO语言实现JVM

虽然写了很多年的Java代码,但是基本上只把JVM当blackbox处理。介绍JVM的书也看过几本,但效果不佳。看OpenJDK代码?提不起兴趣。最近有几个礼拜的空闲时间,于是我决定用GO语言写了一个JVM,彻底征服JVM这头怪兽! 为什么选择GO 首先不想用动态语言来写。实现JVM的初衷就是想离机器更近一点,所以排除了JavaScript、Python、Ruby等语言。其次也不想用Java来写,原因基本同上。还有一个原因是自己对Java太熟悉了,用它来写,没挑战性。再次也不想用C/C++,原因是自己不喜欢这两个语言。C过于底层,C++过于复杂。所以最终选择了GO。 GO是Google发布的语言,编译型,接近底层,一定程度上可以充当系统语言来使用。GO的语法很简洁,学习曲线平滑,文档也比较详...阅读全文

博文 2015-02-09 13:00:01 SpiderDog

理解 Go 标准库中的 atomic.Value 类型

作者:喵叔 原文:blog.betacat.io/post/golang… 在 Go 语言标准库中,sync/atomic包将底层硬件提供的原子操作封装成了 Go 的函数。但这些操作只支持几种基本数据类型,因此为了扩大原子操作的适用范围,Go 语言在 1.4 版本的时候向sync/atomic包中添加了一个新的类型Value。此类型的值相当于一个容器,可以被用来“原子地"存储(Store)和加载(Load)任意类型的值。 历史起源 我在golang-dev邮件列表中翻到了14年的这段讨论,有用户报告了encoding/gob包在多核机器上(80-core)上的性能问题,认为encoding/gob之所以不能完全利用到多核的特性是因为它里面使用了大量的互斥锁(mutex),如果把这些互斥锁换成...阅读全文

博文 2019-08-31 23:04:23 awk

golang map to struct

map映射到结构体,这里只支持简单的数据类型,复杂的需要在拓展 package main import ( "errors" "fmt" "reflect" "strconv" "time" ) type User struct { Name string Age int8 Date time.Time } func main() { data := make(map[string]interface{}) data["Name"] = "张三" data["Age"] = 26 data["Date"] = "2015-09-29 00:00:00" result := &User{} err := FillStruct(data, result) fmt.Println(err, fmt...阅读全文

博文 2015-09-29 16:00:03 别人说我名字很长

聊聊BoltDB:简单使用

说明 -- BoltDB是一个嵌入式key/value的数据库,即只需要将其链接到你的应用程序代码中即可使用BoltDB提供的API来高效的存取数据。而且BoltDB支持完全可序列化的ACID事务,让应用程序可以更简单的处理复杂操作。 BoltDB设计源于LMDB,具有以下特点: * 直接使用API存取数据,没有查询语句; * 支持完全可序列化的ACID事务,这个特性比LevelDB强; * 数据保存在内存映射的文件里。没有wal、线程压缩和垃圾回收; * 通过COW技术,可实现无锁的读写并发,但是无法实现无锁的写写并发,这就注定了读性能超高,但写性能一般,适合与读多写少的场景。 最后,BoltDB使用Golang开发,而且被应用于influxDB项目作为底层存储。 使用 *安装BoltDB...阅读全文

博文 2017-09-09 14:15:59 丁凯

golang直接调用ffmpeg预编译类库(windows)

MinGW介绍 MINGW(Minimalist GNU on Windows)是一个可以在windows下编译Linux程序的仿真linux编译环境,他提供了linux下的C、C++头文件、系统库和一些linux下的编译工具集合,例如gcc、g++和make工具。使得编译出来的二进制可以在windows上运行。(此前的 cygwin 虽然也是 GNU 的 Windows 移植,但是 cygwin 是有版权的,不是 GNU) MinGW下载 【MinGW】 http://sourceforge.NET/projects/mingw/ 【MinGW环境变量配置】 http://jingyan.baidu.com/article/6b97984da0bd8a1ca2b0bf90.html 下载最...阅读全文

博文 2016-11-27 15:00:04 yang8023tao

完全静态编译一个Go程序

在Docker化的今天, 我们经常需要静态编译一个Go程序,以便方便放在Docker容器中。 即使你没有引用其它的第三方包,只是在程序中使用了标准库net,你也会发现你编译后的程序依赖glic,这时候你需要glibc-static库,并且静态连接。 不同的Go版本下静态编译方式还有点不同,在go 1.10下, 下面的方式会尽可能做到静态编译: 1CGO_ENABLED=0 go build -a -ldflags '-extldflags "-static"' . 有一个提案请求给编译加一个static,如果接收了的话也许在将来的go中直接使用static。 参考文档 http://blog.wrouesnel.com/articles/Totally%20static%20Go%20bui...阅读全文

博文 2018-09-01 17:21:06 smallnest

分布式 SQL 数据库 TiDB

TiDB 是国内 PingCAP 团队开发的一个分布式 SQL 数据库。其灵感来自于 Google 的 [F1](http://research.google.com/pubs/pub41344.html), TiDB 支持包括传统 RDBMS 和 NoSQL 的特性。 **TiDB 的源码已经托管在 Git@OSC 上,详情请查看:** [http://git.oschina.net/pingcap/tidb](http://git.oschina.net/pingcap/tidb) 架构: ![architecture](http://static.oschina.net/uploads/img/201509/06141432_Fsmo.png) 特性: [](http...阅读全文

开源项目 2015-09-05 16:00:00 pingcap

数据宝缘何受到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 语言实现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

搞定淘宝,京东 api调用返回的奇葩json格式

淘宝,京东的api调用返回的json格式跟golang的标准库encoding/json中的格式不兼容。 淘宝有些地方习惯性的把float数据加""变成字符串格式 比如 "delivery_score": "0.0", 文档上的又不一样 "delivery_score": 90, 京东的习惯是,不管是不是字符串类型都都加"",变成字符串类型的。 这样就造成标准库无法识别这些格式, 我把json拷贝出来,在decode.go文件的661行的literalStore函数种修改了:字符串处理方式代码如下: case '"': // string s, ok := unquoteBytes(item) if !ok { if fromQuoted { ...阅读全文

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

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

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