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

golang JWT的简单使用

JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。 JWT和session有所不同,session需要在服务器端生成,服务器保存session,只返回给客户端sessionid,客户端下次请求时带上sessionid即可。因为session是储存在服务器中,有多台服务器时会出现一些麻烦,需要同步多台主机的信息,不然会出现在请求A服务器时能获取信息,但是请求B服务器身份信息无法通过。JWT能很好的解决这个问题,服务器端不用保存jwt,只需要保存加密用的secret,在用户登录时将jwt加密生成并发送给客户端,由客户端存储,以后客户端的请求带上,由服务器解析jwt并验证。这样服务...阅读全文

博文 2018-10-31 16:34:58 我的饭卡呢

Web 文档服务器 Peach Docs

Peach 是一款支持多语言、实时同步以及全文搜索功能的 Web 文档服务器。 * 多语言支持 * 从任意 Git 托管源实时同步文档 * 根据首选语言全文搜索文档 * 使用 Markdown 作为文档书写语法 * 高度可自定义,包括模板、配置和 CSS 等 * 内置 [Disqus](http://www.oschina.net/p/disqus) 集成支持 ![image](http://studygolang.qiniudn.com/170615/4a6f1920a3dccb1721ec656134d697b3.jpg...阅读全文

开源项目 2015-10-07 16:00:00 网友

JSON 解析器 jsoniter

## jsoniter jsoniter ( json-iterator )是一款快且灵活的 JSON 解析器,同时提供 [Java](https://github.com/json-iterator/java) 和 [Go](https://github.com/json-iterator/go) 两个版本 * Jsoniter 是最快的 JSON 解析器。它最多能比普通的解析器快 10 倍之多,即使在数据绑定的用法下也有同样的性能优势。无耻地献上自己的 [跑分](http://jsoniter.com/benchmark.html) * 非常易于使用的 api ,允许你使用任何风格或者混搭的方式来解析 JSON 。给你前所未有的灵活性。来看看这些 [API 们](http://js...阅读全文

GoLang语言:邮件群发器

好久没有更新博客了,这次又带来了一段GO语言的代码(没办法,只会写代码了)。 Go语言邮件群发器 main.go // Multi-SendEmail project main.go package main import ( "bufio" "errors" "fmt" "io" "io/ioutil" "net/smtp" "os" "strings" "time" ) func SendMail(user, password, host, to, subject, body, mailtype string) error { hp := strings.Split(host, ":") auth := smtp.PlainAuth("", user, password, hp[0]) ...阅读全文

博文 2014-12-09 11:00:02 一曲忧伤

基于go+protobuf实现的多种持久化方案的mq框架:kiteq

基于go+protobuf实现的多种持久化方案的mq框架:kiteq gitlab上发现一个比较好的开源项目,特此介绍: 简介 * 基于zk维护发送方、订阅方、broker订阅发送关系、支持水平、垂直方面的扩展 * 基于与topic以及第二级messageType订阅消息 * 基于mysql、文件存储方式多重持久层消息存储 * 保证可靠异步投递 * 支持两阶段提交分布式事务 工程结构 kiteq/ ├── README.md ├── binding 订阅关系管理处理跟ZK的交互 ├── build.sh 安装脚本 ├── client KiteQ的客户端 ├── doc 文档 ├── handler KiteQ所需要的处理Handler ├── kite_benchmark.go KiteQ...阅读全文

博文 2015-06-18 09:02:12 chenglinhust

Go 发布自动更新代码所用 API 的 gofix 工具

下一版本的Go在最基础的软件包方面将包含显著的API变更。除非进行更新,采用新版 API,否则将无法编译实现HTTP服务器句柄、调用net.Dial、调用os.Open及使用reflect软件包的代码。随着Go语言愈加稳定,发布频率减缓将成为常态。每周的快照版本中都会有API变更,部分可能能自动管理;然而,合计起来看,手动更新现有代码的工作量仍然非常地大。 Gofix是一款减轻更新现有代码工作量的新工具。它读取源文件中的程序,查找对旧版API的使用,用当前API进行改写,并将程序写回文件。有些API变更未保持全部原有功能,所以gofix的改写有时并不完美。当无法自动改写旧版API时,gofix将给出警告及文件名与所在行数,开发者可以检查并亲自重写代码。Gofix负责处理乏味冗长的简单变更,而...阅读全文

博文 2014-10-04 19:26:01 希·梦评论(3)

Think2Go戈登营首期review

2013-09-14 Think2Go戈登营首期review Go语言在CDN下载系统中的应用 Go在微博数据分析中的应用 golang与高强度在线服务 Go语言在CDN下载系统中的应用 今天去参加了Go语言上海的线下活动,这里做个简单的review。只是个人理解,可能有误,拍砖轻点。 首先是谢大闪亮登场,为我们分享他用Go语言在盛大的CDN系统中的应用,大家鼓掌。 我觉得讲的主要内容上可以分两大块来看,一部分是从中心结点到IDC的文件分发过程,另一部分是用户请求到达之后的调度设计。 主要应用场景像什么游戏客户端的分发之类的。先说中心结点服务器到IDC服务器的分发过程。 大家知道,国内的网络环境各种奇葩,最远的距离不是城市到城市的物理距离,而是我用电信,你用联通,或者他是教育网等等。IDC机...阅读全文

golang语法总结(五):变量声明与赋值

变量声明与赋值示例: var i int = 1 //var关键字声明一个变量,紧跟一个变量名,然后是变量类型,最后是赋值var hehe = "hehe" //可以省略变量类型,编译器根据赋值的类型自动推算变量的类型var a,b,c,d = 1,2,3.14,4 //同时申明多个并赋值j := 10 //省略var关键字 如果是全局的变量,还可以这样: var ( a = 1 b uint64 = 3 c =3.14 d := 4...阅读全文

博文 2016-02-22 14:00:06 QQ245671051

golang微信公众平台之人脸识别

自:http://www.cnblogs.com/wlts/archive/2013/06/02/3113526.html 好吧,其实整个都是建立在face++的基础上的,没有任何技术含量,我只是个勤劳的搬运工。 所能实现的就是简单的,你发送一个图片过来,如果里面是一个人,则告诉你分析出来的年龄、性别;如果是两个人,就告诉你,这两个人眉毛、眼睛、鼻子、嘴巴及整体的相似度。 微信公众平台,怎么说呢,还是传统的一问一答的形式,你发个信息过来,我收到了处理下,再给你回馈一条信息,就是这么简单。 简单的你来我往 先说信息互传的问题,微信公众平台是post过来一个xml,服务器端打包一个xml发回去。 从最简单的,直接把用户信息返回去搞起吧。 文本消息 阅读全文

博文 2014-10-04 19:26:11 likai198981

go win 下的環境配置

http://code.google.com/p/gomingw/downloads/list 下載 安裝包,安裝 安裝完畢后會自建path環境 在代碼目錄建一個批處理文件,專門用來編譯生成EXE文件 set file=%1 set f8=%file:.go=.8% set fexe=%file:.go=.exe% 8g -o %f8% %file% && 8l -o %fexe% %f8% 寫完代碼后,拖動go文件到這個批處理上,就可以自動生成...阅读全文

博文 2014-10-04 19:26:04 Dray

基于TCP套接字,通过Golang模拟HTTP请求(续)

HTTP报文的格式问题 接着昨天的写。昨天的文章有个不确定的地方,就是建立TCP连接之后,向服务器发送的数据,包括命令、头和主体的格式。这三个部分是如何分割的,我是参考了POSTMAN预览的格式和telnet发送的格式猜测的,原认为行直接是通过\n进行区分的,而头和主题是两个\n进行区分。这样发送也是能够正常解析的,今天去读了一下《HTTP权威指南》和Golangnet/http包,具体了解了下到底是如何区分的。 《HTTP权威指南》第三章3.2节,报文的组成部分当中提到: 每行都以一个由两个字符组成的行终止序列作为结束,其中包括一个回车符\r和一个换行符\n,这个终止序列可以写作CRLF。尽管HTTP规范中说明应该用CRLF来表示终止,但稳健的应用程序也应该接受单个换行符\n作为行的终止。...阅读全文

博文 2017-02-09 12:25:20 Bryce

集群管理器和调度器 Nomad

Nomad 是一个集群管理器和调度器,专为微服务和批量处理工作流设计。Nomad 是分布式,高可用,可扩展到跨数据中心和区域的数千个节点。 Nomad 提供一个常规工作流跨基础设施部署应用。开发者使用一个声明式作业规范来定义应用该如何部署,资源有什么要求(CPU,内存,硬盘)。Nomad 接收这些作业,查找可用的资源来运行应用。调度算法确保所有的约束都满足,尽量在一个主机部署尽可能多的应用,优化资源利用。此外,Nomad 支持在所有主流操作系统运行虚拟化,容器化或者是独立的应用,灵活的支持广泛的工作流负载。 Nomad 已经在生产环境使用,主要特性: * **Docker**:Nomad 支持 Docker 作为第一类的工作负载类型 * **操作简单** * **多个数据中心和多...阅读全文

开源项目 2015-09-28 16:00:00 hashicorp

HTTP(S) 路由器fabio

fabio 是一个快速、现代、zero-conf 负载均衡 HTTP(S) 路由器,用于部署 consul 管理的微服务。 fabio 由 eBay Classifieds Group 开发, 用于处理 marktplaats.nl 和 kijiji.it 的流量。Marktplaats 所有的流量都经过 fabio ,每秒有数千个请求,分发于数个 fabio 实例。但我们并没有观察到任何延迟。 特性: * Go 语言单一二进制,没有额外的依赖。 * Zero-conf * 通过后台观察器热重载路由表 * 轮转和随机分布 * Traffic Shaping (send 5% of traffic to new instances) Graphite metrics * 请求跟踪 * W...阅读全文

Go 1.3+ 编译器变革

概述 目前Go编译器是C写的,是时候换成Go啦。 背景 “gc"Go工具链来自Plan 9编译器的工具链。组装器、C编译器和链接器基本没变。Go的编译器(cmd/gc,cmd/5g,cmd/6g,cmd/8g)是配合工具链写的新的C程序。 项目起始时,用C而不是Go写编译器有很多好处。突出的比如,首先,那时候Go还不存在,没法儿写编译器。而且实际上,就算存在,也会经常有明显的不兼容的变化。用C不用Go可以避免初始和持续开发导致的问题。然而如今Go 1已经稳定,所以这些持续的问题减少了很多。 傅小黑翻译于 10 个月 前 0人顶 顶 翻译的不错哦! 持续开发的问题已经消除,为了让Go实现的编译器比C更有吸引力,另一些工程问题出现: 写正确的Go代码比写正确的C代码更容易。 调试错误的Go代码比...阅读全文

博文 2014-10-10 08:00:02 傅小黑, 偃鼠饮河

容器集群管理系统 Kubernetes

Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 [Docker](/p/docker) 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。详细的设计思路请参考[这里](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/DESIGN.md)...阅读全文

百度招聘Golang工程师(北京)

工作职责: -负责提升百度整体服务器资源使用效率,持续优化业务迭代的资源成本 -关注业界前沿容量规划技术动态,负责超大规模系统的容量测算、建模及优化  -参与各类业务机房布局、 预算决算、资源规划、混部方案,提高资源投入产出比 -设计、开发完整的平台化解决方案,包括资源管理、容量自动测算、产品线自动压测、弹性伸缩等平台 -探索智能化的负载预测、冗余预留等技术和方向 职位要求: -逻辑思维清晰,具备良好的学习能力、沟通能力和团队合作精神 -计算机、自动化、数学、运筹学、电子信息工程、通信工程等相关专业本科及以上学历 -熟练掌握至少一门开发语言(Python/Go/C++/Java/PHP等),并且具备快速技术迁移能力 -对...阅读全文

golang proxy 高性能、自带API的高匿代理抓取工具

golang-proxy v2.0 Golang-Proxy -- 简单高效的免费代理抓取工具通过抓取网络上公开的免费代理,来维护一个属于自己的高匿代理池,用于网络爬虫、资源下载等用途。你还在用Python写的代理抓取工具吗?试试golang!提供开箱即用版本,不需要任何编程基础即可使用 What's new in V2.0? 不再依赖 MySQL 和 NSQ! 之前需要分别启动publisher、consumer和assessor,现在 只需要启动主程序 即可! 提供了高度灵活的 API 接口,在启动主程序后,即可通过在浏览器访问localhost:9999/all 与 localhost:9999/random 直接获取抓到的代理!甚至可以使用 localhost:9999/sql?qu...阅读全文

博文 2018-07-27 14:30:02 storyicon

javascript + golang处理时间问题

javascript + golang处理时间问题 今天一个同事问js和golang处理时间问题上总是有误差,于是想到了去年做的一个项目中也出现了这样的问题,发个博客记录一下: 直接上代码: javascript片段: var sa = $('#sa').datetimebox('getValue'); var ea = $('#ea').datetimebox('getValue'); //此时sa和ea输出为yyyy-MM-dd HH:mm:ss这种标准格式的字符串 ----------------------------------------- var sa1 = new Date(sa).toISOString(); var ea1 = new Date(ea).toISOStri...阅读全文

博文 2016-02-16 12:00:02 u013701108

基于终端的阅读器开发

原文链接:[https://ashan.org/archives/950](https://ashan.org/archives/950) 我相对比较喜欢读书,但只读两种书,至少现在如此。一类是用于吃饭的书,编程类书籍,一类是供我休闲的书籍,各类小说。当然,在小说的种类上我也是有一定偏好的,例如,同事安利我的王小波的书,则安安静静的躺在书架上。 言归正传,前几日同事分享给我一些电子书,怎奈mac系统中没有让我心仪的阅读器,虽然ibook已经接近完美,但并不支持txt文本文件,借此机会用golang实现了一个基于终端的阅读器,方便自己读小说使用。 先来看一下最终的界面样式: ![](http://www.ashan.org/2017/04/1572837517839...阅读全文

go revel 简单性能测试

用revel创建的new创建了一个最简单的示例app,并用ab做简单的性能测试。设置并发数为1000。 结果如下: dev模式下运行:1200次/每秒 prod模式下运行:4800次/每秒 默认创建的app只能使用单个cpu,对多核多cpu服务器来说是个资源浪费,通过修改init.go 在其中添加如下代码: runtime.GOMAXPROCS(runtime.NumCPU()) 再次测试后,得到测试数据为:17500/每秒。 另:要做性能测试或者正式部署到生产环境之前别忘了把watch设置为false,开发状态下开启watch很爽,修改了代码不需要重启服务,revel发现代码发生了更改会自动重新编译,返回新的结果,但是带来的代价是性能剧降。我忘了关闭此功能做性能测试的结果是从18000次/...阅读全文

博文 2014-10-04 19:26:23 dijin

Go 实战丨微信公众号接入及用户消息处理

使用 Go 语言的 Web 框架 Gin 进行微信公众号接入,并实现对微信消息的接收以及回复处理。 同时借助 nginx 代理服务器对代理的端口号以及 URI 进行优化处理。 在文章末尾给出该 Demo 的项目地址。 目录 公众号接入 消息接收 消息回复 使用 ngxin 代理服务器 小结 公众号接入 这里使用微信公众平台提供的接口测试号用于开发使用,接口测试号申请。 公众号的接入主要有两个步骤,微信公众平台接入指南: 填写服务器配置 验证服务器地址的有效性 第一步需要配置服务器的 URL 地址,并且必须以 http:// 或 https:// 开头,分别支持 80 端口和 443 端口;还需配置一个 3 ~ 32 位字符的 Token,用于消息验证。 第二步用于验证消息来源的正确性,当第一...阅读全文

博文 2020-04-04 20:34:23 ColeLie

Golang Package-database/sql

一、导入库 import ( "database/sql" _ "github.com/lib/pq" ) 二、连接DB func main() { db, err := sql.Open("postgres", "user=pqgotest dbname=pqgotest sslmode=verify-full") /*db, err := sql.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full")*/ if err != nil { log.Fatal(err) } defer db.Close() } sql.Open的第一个参数是driver名称,第二个参数是d...阅读全文

博文 2017-01-10 13:00:10 吃一堑消化不良

mac上安装go语言

我将在mac os x的开发机器上安装go语言的开发环境。 go语言运行包下载地址:http://code.google.com/p/go/downloads/list 这里我选择安装 go1.0.3.darwin-amd64.pkg 在mac上点击安装,运行包自动安装到/usr/local/go中,这样在命令终端就可以运行go命令了 这里,我把go编辑器安装到我的xcode应用程序中,由于我的xcode装的是4.x以上 在/usr/local/go/misc中,可以看到有很多编辑器版本,这里找到xcode目录,里面进入4,有个go4xcode.sh 在终端中输入: sudo sh./go4xcode.sh 也许有的,你会报以下这样的错误: xcrun: Error: could not s...阅读全文

博文 2014-10-04 19:26:31 code-style

简单快速的 Web 爬虫框架Colly

Colly 是一个采用 Go 语言编写的 Web 爬虫框架,旨在提供一个能够写任何爬虫/采集器/蜘蛛的简洁模板。通过 Colly ,你可以轻松从网站中提取结构化的数据,然后进行数据挖掘、处理或归档。 清晰明了的 API  快速(单个内核上的请求数大于1k) 管理每个域的请求延迟和最大并发数 自动 cookie 和会话处理 同步/异步/并行抓取 高速缓存 自动处理非 Unicode 编码 支持 Robots.txt 支持 Google App Engine 通关环境变量进行配置 可扩...阅读全文

Golang <-time.After()在计时器过期前不会被垃圾回收

最近我在调查 Go 应用程序中内存泄漏的问题,这个问题主要因为我没有正确的阅读文档。这是一段导致消耗了多个 Gbs 内存的代码: ```go func ProcessChannelMessages(ctx context.Context, in <-chan string, idleCounter prometheus.Counter) { for { start := time.Now() select { case s, ok := <-in: if !ok { return } // handle `s` case <-time.After(5 * time.Minute): idleCounter.Inc() case <-ctx.Done(): return } } } ``` 以...阅读全文

Bootstrap列表组listgroup

列表组 列表组是Bootstrap框架新增的一个组件,可以用来制作列表清单、垂直导航等效果,也可以配合其他的组件制作出更漂亮的组件。由于其在Bootstrap是一个独立的组件,所以也对应有自己独立源码: ☑ LESS版本:对应的源码文件 list-group.less ☑ Sass版本:对应的源码文件是 _list-group.scss ☑ 编译出的Bootstrap版本:对应的源码bootstrap.css文件第4820行~第4994行 列表组--基础列表组 基础列表组,看上去就是去掉了列表符号的列表项,并且配上一些特定的样式。在Bootstrap框架中的基础列表组主要包括两个部分: ☑ list-group:列表组容器,常用的是ul元...阅读全文

Go实战--golang中使用markdown(russross/blackfriday)

生命不止,继续 go go go !!! 先来一点小小的插曲,博客关于go的uv量: 今天,跟大家一起学习分享的是在golang中如何使用markdown语法,当然是使用第三方库了russross/blackfriday。 参考:http://blog.will3942.com/creating-blog-go markdown Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。 Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌HTML等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式,例如LaTeX,Docbook。Markdown增强版中比较有名的...阅读全文

博文 2017-09-11 19:31:07 wangshubo1989

go接收到消息如何根据消息头判断接收

消息使用的是protobuf。客户端有个拾取物品的消息,消息头为2001+消息体。另外还有个丢弃物品的消息,消息头为2002+消息体。服务器除了使用switch根据消息头判断该如何解析消息体之外有没有别的方法? 例如我客户端使用的是c#,写了一个字典委托,key值保存消息头,value值保存具体解析消息的方法。接收到服务器发送的消息之后只需要遍历这个字典匹配key值就好了。用switch的话感觉消息多了判断会很麻烦,代码也会很多。...阅读全文

golang API服务器

搭建 https://www.cnblogs.com/studyzy/p/6964612.html 修改数据库 修改为自动初始化表,在main.go中添加初始化 func init() { orm.RegisterDriver("mysql", orm.DRMySQL) orm.RegisterDataBase("default", "mysql", "root:123456@tcp(192.168.56.112:12345)/testapi?charset=utf8") orm.RegisterModel(new(models.student)) orm.RunSyncdb("default", false, true) } api注释修改 需要清空浏览器缓存才能刷...阅读全文

博文 2018-09-30 14:34:46 heliping_peter

Go 开发的跨平台 GameBoy 模拟器GoBoy

GoBoy 是一款跨平台的 Nintendo GameBoy 和 GameBoy Color 模拟器。模拟器可以运行大多数 GB 游戏和一些 CGB 游戏。此外,还提供对颜色和声音的支持。![image](https://static.oschina.net/uploads/space/2018/1123/182821_AK5D_2720166.jpg) ![image](https://static.oschina.net/uploads/space/2018/1123/183202_luzB_2720166.png...阅读全文

开源项目 2018-12-05 09:30:01 网友

游戏服务器骨架 gonet2

# 欢迎使用 gonet/2是新一代游戏服务器骨架,基于[go语言](http://golang.org/)开发,采用了先进的[http/2](http://http2.github.io/)作为服务器端主要通信协议,以[microservice](http://martinfowler.com/articles/microservices.html)作为主要思想进行架构,采用[docker](https://www.docker.com/)作为服务发布手段。相比第一代[gonet](http://github.com/xtaci/gonet),基础技术选型更加先进,结构更加清晰易读可扩展。 ## [](http://gonet2.github.io/#%E7%9B%B8%E5%85%B...阅读全文

开源项目 2015-10-14 16:00:00 github

容器本地工作流引擎Argo Project

Argo是一个开源的容器本地工作流引擎,用于在Kubernetes上完成工作。 Argo实现为Kubernetes CRD(自定义资源定义)。 定义工作流中每个步骤都是容器的工作流。 将多步骤工作流建模为一系列任务,或使用图形(DAG)捕获任务之间的依赖关系。 使用Kubernetes上的Argo工作流程,可以在很短的时间内轻松运行计算密集型作业,以进行机器学习或数据处理。 在Kubernetes上本地运行CI / CD管道,无需配置复杂的软件开发产品。 Argo专为容器而设计,没有传统VM和基于服务器的环境的开销和限制。 Argo是云不可知的,可以在任何kubernetes集群上运行。 Argo with Kubernetes让云量级的超级计算机触手可及。 DAG或基于...阅读全文

开源项目 2018-09-14 09:30:02 网友

监控服务器数据的进程信息处理

查看地址 https://wide.b3log.org/playground/f015ec4406b217788a6b020629e2d88e.go