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

腾讯云部署golang flow流程,vue.js+nginx+mysql+node.js

这次总算把js-ojus/flow的ui部署到腾讯云上,比较吐槽的就是,为啥这么复杂,vue.js前后端分离,比golang编写的部署方面复杂几万倍。真是浪费人生啊。golang+sqlite写的东西,直接传到任意文件里,运行即可。——当然,适用于小型的东西。vue.js,要安装node.js环境,要nginx环境,要配置nginx跨域;要安装mysql数据库,要配置用户。体验地址:http://111.230.181.182:8080有问题多多交流啊:qq504284 微信hotqin999github.com/3xx...阅读全文

博文 2019-03-18 19:34:42 工程设计

Golang-使用goconfig 读取配置文件

使用goconfig 读取ini 配置文件 安装 go get github.com/Unknwon/goconfig 使用方法 加载配置文件 cfg, err := goconfig.LoadConfigFile("conf.ini") if err != nil{ panic("错误") } [mysql] username=root password=123456 url=(127.0.0.1:3306)/baidu [redis] address=127.0.0.1:6379 读取 读取单个值 value, err := cfg.GetValue("mysql", "username") valut, err := cfg.Int("must", int) 读取整个区 sec err...阅读全文

博文 2018-08-07 12:34:49 yunpiao

2020 腾讯社招Golang后端面试经验分享

技术一面 基础面试 一面是通过电话直接沟通 go的调度 go struct能不能比较 go defer(for defer) select可以用于什么 context包的用途 client如何实现长连接 主协程如何等其余协程完再操作 slice,len,cap,共享,扩容 map如何顺序读取 实现set 实现消息队列(多生产者,多消费者) 大文件排序 基本排序,哪些是稳定的 http get跟head http 401,403 http keep-alive http能不能一次连接多次请求,不等后端返回 tcp与udp区别,udp优点,适用场景 time-wait的作用 数据库如何建索引 孤儿进程,僵尸进程 死锁条件,如何避免 linux命令,查看端口占用,cpu负载,内存占用,如何发送信号...阅读全文

博文 2020-04-18 22:32:47 阿俊

还在为go get github.com/...卡死而烦恼么

> 作为国内开发者,经常遇到一个问题,就是一片热血撞死在伟大的\*\*墙上,只能干着急,下面我们得想办法翻过这个\*\*墙,毕竟我们出去后只是为了干好事儿。 ## go get是怎么运行的 通常会使用http的方式去访问目的地址,然后下载下来。但是内部可能用使用git clone的方式去克隆,既然这样,我们解决办法就是让http和git clone都能同时走上代理,这样就能解决卡死的烦恼 ## 有一个http代理 > 假如已有 http代理是: http://localhost:8118/,后续我们就用这个地址去代理 如果没有http代理,只有socket5代理,需要看下面步骤进行转换 如果连socket5代理也没有,就需要先花钱买或者找一些免...阅读全文

如何编写一个分布式数据库

大家好, 我是开源项目 分布式 NewSQL 数据库 TiDB 和 分布式缓存 Codis 的 创始人 刘奇, 之前在京东, 豌豆荚做 infrastructure 相关的事情, 现在在创业 (PingCAP), 方向是分布式数据库. 最近如果有朋友关注开源社区或者HackerNews 的话,可能会发现一个叫 TiDB 的数据库项目吸引了一些眼球(https://github.com/pingcap/tidb ) 。 这是我们开源的第一个东西,短短几天得到了过千Star,特别感谢大家的支持和鼓励。 今天主要介绍一下 NewSQL 与 TiDB 的设计实现, 未来的一些 Roadmap 以及 一些做开源项目的心得。 大家可能经常用数据库,但是很少写一个数据库(实在是有点 hardcore),今...阅读全文

博文 2015-09-24 10:26:00 刘奇

Golang的演化历程

Golang的演化历程 十 25 bigwhite技术志 ANSI-C, BCPL, C, Channel, Concurrency, CSP, Go, Golang,Google, Package, RobPike, UTF8, 包, 并发编程, 标准C, 标准库, 素数筛 暂无评论 本文来自Google的Golang语言设计者之一Rob Pike大神在GopherCon2014大会上的开幕主题演讲资料“Hello, Gophers!”。Rob大神在这次分 享中用了两个生动的例子讲述了Golang的演化历程,总结了Golang到目前为止的成功因素,值得广大Golang Programmer & Beginner学习和了解。这里也用了"Golang的演化历程"作为标题。 1、Hello Go...阅读全文

博文 2014-12-05 02:00:02 anlun

Go语言net/http 解读.

Http包提供实现HTTP客户端和服务端的方法与函数。 Get、Head、Post、PostForm配合使用实现HTTP请求: resp, err := http.Get("http://example.com/") resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf) resp, err := http.PostForm("http://example.com/form",url.Values{"key": {"Value"}, "id": {"123"}}) 使用结束后,应该关闭客户端的响应体: resp, err := http.Get("http://example.com/") if err ...阅读全文

博文 2015-09-24 13:00:00 fyxichen

来自腾讯架构师对,Redis的实践及思考

来自腾讯架构师对,Redis的实践及思考 导语:当面临存储选型时是选择关系型还是非关系型数据库?如果选择了非关系型的redis,redis常用数据类型占用内存大小如何估算的?redis的性能瓶颈又在哪里? 背景 前段时间接手了一个业务,响应时间达到10s左右。阅读源码后发现,每一次请求都是查询多个分表数据(task1,task2….),然后再join其他表(course,teacher..),时间全部花在了大量磁盘I/O上。脑袋一拍,重构,上redis! 为什么选择redis 拍脑袋做技术方案肯定是不行的,得用数据和逻辑说服别人才可以。 时延 时延=后端发起请求db(用户态拷贝请求到内核态)+ 网络时延 + 数据库寻址和读取 如果想要降低时延,只能减少请求数(合并多个后端请求)和减少数据库寻...阅读全文

博文 2019-08-23 23:32:50 勤奋的码农

golang数据库操作

一、准备1、MySQL :数据库服务端2、MySQL Workbench:图形界面,用于连接数据库,对数据库进行操作3、连接数据库并创建表 二、引入driver import( "database/sql" _"github.com/go-sql-driver/mysql"// "_" 引入后面的包名 而不直接使用里面的定义的函数、变量、资源等 ) 三、连接数据库 db,err := sql.Open("mysql","用户名:密码@tcp(127.0.0.1:3306)/demo?charset=utf8") Tool.Check("打开数据库",err) //执行Open函数的时候,并不会去获得数据库连接有效性,当执行数据库操作的时候才会去连接, // 当我们需要在Open之后就知道连接...阅读全文

博文 2017-08-31 03:05:19 vet_

golang优雅读取环境变量 env

有时候,env会非常多,尤其是现在很多应用都放在doker里,很多配置都是通过环境变量读取,所以希望读取的env能与golang的struct能对应,比如: CONFIG_APP=ENVAPP CONFIG_DEBUG=1 CONFIG_HOSTS=192.168.0.1,127.0.0.1 CONFIG_TIMEOUT=5s CONFIG_REDISVERSION=3.2 CONFIG_REDIS_HOST=rdb CONFIG_REDIS_PORT=6379 CONFIG_MYSQL_HOST=mysqldb CONFIG_MYSQL_PORT=3306 可以通过: import ( "fmt" "time" "os" "github.com/timest/env" ) type con...阅读全文

博文 2018-07-11 12:34:46 看山羊

在Github中stars数最多的Go日志库集合

在Go语言世界中,日志库并不像Java世界那里有一个具有统治力的日志库。在做新项目技术选型的时候,难免会遇到日志库的选择问题,今天笔者就为大家介绍一下在Github中stars数最多的Go日志库。 logrus是我已知的Go语言日志库中在Github中stars数最多的日志库,功能强大,性能也不错。另外值得一提的是logrus的一个fork库gogap/logrus,可以配置输出到文件和graylog日志系统,基础的level、调用链、行号,文件切分都有,特色是结构化日志可以被统计和索引,借助graylog就可以做日志分析,不过这个库很久没有维护了。 zap是Go中一个快速,结构化,分级日志库,Uber出品。能够激活强大的ad-hoc分析, 灵活的仪表板, 其功能超过其他工具ELK, Spl...阅读全文

博文 2017-12-19 11:46:19 终于19岁

golang 内存分析/动态追踪

golang pprof 当你的golang程序在运行过程中消耗了超出你理解的内存时,你就需要搞明白,到底是 程序中哪些代码导致了这些内存消耗。此时golang编译好的程序对你来说是个黑盒,该 如何搞清其中的内存使用呢?幸好golang已经内置了一些机制来帮助我们进行分析和追 踪。 此时,通常我们可以采用golang的pprof来帮助我们分析golang进程的内存使用。 pprof 实例 通常我们采用http api来将pprof信息暴露出来以供分析,我们可以采用net/http/pprof 这个package。下面是一个简单的示例: // pprof 的init函数会将pprof里的一些handler注册到http.DefaultServeMux上 // 当不使用http.DefaultS...阅读全文

博文 2017-06-02 03:23:41 lrita

windows 下的 eclipse安装goclipse 配置golang开发环境

1. 下载goclipse eclipse plugins http://goclipse.googlecode.com/svn/trunk/goclipse-update-site/ (建议使用proxy下载,除非你能直接访问;)) 安装完插件后,重启可以看到eclipse的右上角有个golang logo , 地鼠图标: 2. 下载golang,调试tools 下载Golang Windows 版本当前使用 go1.3.3.windows-386.zip :https://storage.googleapis.com/golang/go1.3.3.windows-386.zip 使用proxy 访问站点取得最新版本 : https://golang.org/dl/ 下载liteidex2...阅读全文

博文 2014-11-22 17:00:01 hotkit

Gin实践 连载二 搭建Blog API's(一)

Gin搭建Blog API's (一) 介绍和初始化项目 初始工作区 首先,我们需要增加一个工作区(GOPATH)路径用于我们的Blog项目。 将你新的工作区加入到/etc/profile中的GOPATH环境变量中, 并在新工作区中,建立bin、pkg、src三个目录。 在src目录下创建gin-blog目录,初始的目录结构: $GOPATH ├── bin ├── pkg └── src └── gin-blog 初始化项目目录 gin-blog/ ├── conf ├── middleware ├── models ├── pkg ├── routers └── runtime conf:用于存储配置文件 middleware:应用中间件 models:应用数据库模型 pkg:第三方包 ...阅读全文

博文 2018-02-17 11:34:37 EDDYCJY

VSCode必装Go语言以下插件

VSCode必装Go语言以下插件 VSCode 必须安装以下插件: 首先你必须安装 Golang 插件,然后再给 Go 安装工具包。 在 VS Code 中,使用快捷键:command+shift+P,然后键入:go:install/update tools,将所有 16 个插件都勾选上,然后点击 OK 即开始安装。 Installing 16 tools at /Users/maiyang/develop/goworkspace//bin gocode gopkgs go-outline go-symbols guru gorename dlv godef godoc goreturns golint gotests gomodifytags impl fillstruct goplay ...阅读全文

博文 2020-03-30 23:33:30 袁俊亮技术博客

golang orm 框架之 gorm

最近在想给这个小站增加点赞和评论功能,第三方系统又有各种限制,就想自己弄个后端,实现类似的功能,对于个人来说,数据量不是很大,单机的 mysql 足够存下所有数据,mysql 作为底层存储是个不错的选择 之前在公司是直接用的 github.com/go-sql-driver/mysql 访问数据库都是直接用写 sql,取出结果然后自己拼成对象,使用上面不是很方便,可读性也不好。想起之前研究 php laravel 框架的时候,直接把数据库层屏蔽了,用户看到的只有对象,使用非常方便,java 里面这种操作方式基本上已经成了标准做法,就去 github 上找了一下 golang 里面有没有类似的东西,果然已经有非常成熟的框架了,github.com/jinzhu/gorm 已经有 7k+ 的 s...阅读全文

博文 2018-02-08 16:34:39 hatlonely

如何看待 TJ 宣布退出 Node.js 开发,转向 Go?

TJ何许人也? 他medium自我介绍:TJ Holowaychuk,程序员兼艺术家,Koa、Co、Express、jade、mocha、node-canvas、commander.js等知名开源项目的创建和贡献者。 社区影响: https://nodejsmodules.org 第一页出现次数最多的那个少年 Quora: How is TJ Holowaychuk so insanely productive? —高产到令人发指,Quora上甚至有人猜测TJ不是一个人,而事实上他就是一个人。 substack/npmtop:对node npm社区代码贡献截止目前占到整个社区的3.04% rank percent packages author ---- ------- -------- -...阅读全文

博文 2015-03-25 13:00:04 langsim

腾讯大佬:分享百亿级请求高可用Redis分布式集群实践

腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 一、Redis有哪些常用的应用场景 腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 二、Redis选型思考 时延 时延=后端发起请求db(用户态拷贝请求到内核态)+ 网络时延 + 数据库寻址和读取 如果想要降低时延,只能减少请求数(合并多个后端请求)和减少数据库寻址和读取得时间。从降低时延的角度,基于单线程和内存的redis,每秒10万次得读写性能肯定远远胜过磁盘读写性能。 数据规模 以redis一组K-V为例(”hello” -> “world”),一个简单的set命令最终会产生4个消耗内存的结构。 腾讯大佬:分享百亿级请求高可用Redis分布式集群实践 关于Redis数据存储的细节,又要涉及到内存分配器(如jemalloc)...阅读全文

博文 2019-08-26 21:32:49 勤奋的码农

Golang笔记-浅谈interface

前言 class和interface在高级语言中是很重要的概念。class是对模型的定义和封装,interface则是对行为的抽象和封装。Go语言虽然没有class,但是有struct和interface,以另一种方式实现同样的效果。 本文将谈一谈Go语言这与别不同的interface的基本概念和一些需要注意的地方。 声明interface type Birds interface { Twitter() string Fly(high int) bool } 上面这段代码声明了一个名为Birds的接口类型(interface),这个接口包含两个行为Twitter和Fly。 Go语言里面,声明一个接口类型需要使用type关键字、接口类型名称、interface关键字和一组有{}括起来的方法声...阅读全文

博文 2018-08-19 19:34:46 tinywell

golang的net/http包

package http import "net/http" http包提供了HTTP客户端和服务端的实现。 Get、Head、Post和PostForm函数发出HTTP/ HTTPS请求。 resp, err := http.Get("http://example.com/") ... resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf) ... resp, err := http.PostForm("http://example.com/form", url.Values{"key": {"Value"}, "id": {"123"}}) 程序在使用完回复后必须关闭回复的主体。 resp, err ...阅读全文

博文 2014-10-04 19:26:41 刘地

golang操作mysql使用总结

sql.DB 通过数据库驱动为我们提供管理底层数据库连接的打开和关闭操作. sql.DB 为我们管理数据库连接池 需要注意的是,sql.DB表示操作数据库的抽象访问接口,而非一个数据库连接对象;它可以根据driver打开关闭数据库连接,管理连接池。正在使用的连接被标记为繁忙,用完后回到连接池等待下次使用。所以,如果你没有把连接释放回连接池,会导致过多连接使系统资源耗尽。 操作mysql 1.导入mysql数据库驱动 1 2 3 4 import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) 通常来说, 不应该直接使用驱动所提供的方法, 而是应该使用 sql.DB, 因此在导入 mysql 驱动时, 这里使用了匿名导入的方式(在包路...阅读全文

博文 2018-03-06 20:33:09 coder_kev

Nacos - 阿里开源配置中心

配置中心相信大家都有听过,zookeeper、apollo等等都是配置中心的代表,但大部分都是JAVA系为主的,笔者主要开发语言使用的是Golang当然也有类似于ETCD这样的组件,但是并不方便管理也无法可视化,在无意之间发现了阿里爸爸开源了nacos这个服务发现+配置中心组件,也经过了一段时间的时候在这里分享给大家 附上: 喵了个咪的博客:w-blog.cn Nacos官方Git地址:https://github.com/alibaba/nacos Nacos官方文档地址:https://nacos.io/zh-cn/docs/ Go语言SDK地址:https://github.com/sunmi-OS/gocore/tree/master/nacos PS:当前官方最新版本为 V1.1....阅读全文

博文 2020-01-29 19:32:44 文振熙

golang中net/http包用法

1. 前言 http包包含http客户端和服务端的实现,利用Get,Head,Post,以及PostForm实现HTTP或者HTTPS的请求. 2. 本文分析内容安排 函数 结构 3. 函数 3.1 服务端函数 func Handle(pattern string, handler Handler)将handler按照指定的格式注册到DefaultServeMux,ServeMux解释了模式匹配规则 func HandleFunc(pattern string, handler func(ResponseWriter, *Request))同上,主要用来实现动态文件内容的展示,这点与ServerFile()不同的地方。 func ListenAndServe(addr string, han...阅读全文

博文 2015-12-16 11:00:53 yuanfang_way

毛剑:Bilibili 的 Go 服务实践(上篇)

前言在微服务流行的当下,bilibili(B站)也在业务快速增长的压力下,对历史系统进行了不断的优化,在所谓“大系统小做”的背后付出了挺多的努力,尤其是 Go 作为开发语言的整体运维的支撑相对比较薄弱,例如开发、部署、测试、集成、监控,调试等。在 GopherChina 2017大会上,B 站技术总监毛剑分享了微服务化道路上踩的“坑”以及最终演进后对整个微服务框架的思考。本次演讲的内容会包含以下几块:1.B站微服务的演进过程;2.高可用;3.中间件;4.持续集成和交付;5.运维体系。作者介绍2015年起,在 bilibili(B站)负责 UGC平台和基础架构,开发了直播弹幕开源推送服务 goim ,B站分布式存储 BFS ,引导开发了B站 cache proxy,bili twemproxy...阅读全文

博文 2017-10-09 05:25:15 毛剑

大数据全攻略:10年老兵带你看尽MaxCompute大数据运算挑战与实践

大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。 产品地址:https://www.aliyun.com/product/odps 概况介绍: 以下为本套攻略的内容目录,查看每篇文章详细内容请查看:http://click.aliyun.com/m/26509/ 性能追求之路——MaxCompute2.0(原ODPS)的前世今生 10年老兵带你看尽MaxCompute大数据运算挑战与实践 什么是阿里云数加大数据计算服务MaxCompute? ...阅读全文

Golang Gin实践 连载十七 用 Nginx 部署 Go 应用

Golang Gin实践 连载十七 用 Nginx 部署 Go 应用 原文地址:Golang Gin实践 连载十七 用 Nginx 部署 Go 应用 前言 如果已经看过前面 “十六部连载,两部番外”,相信您的能力已经有所提升 那么,现在今天来说说简单部署后端服务的事儿 ???? 做什么 在本章节,我们将简单介绍 Nginx 以及使用 Nginx 来完成对 go-gin-example 的部署,会实现反向代理和简单负载均衡的功能 Nginx 是什么 Nginx 是一个 Web Server,可以用作反向代理、负载均衡、邮件代理、TCP / UDP、HTTP 服务器等等,它拥有很多吸引人的特性,例如: 以较低的内存占用率处理 10,000 多个并发连接(每10k非活动HTTP保持活动连接约2.5...阅读全文

golang实现的反向代理

翻阅golang包手册的时候看到net/http/httputil有一个type ReverseProxy,这个不是反向代理吗!golang自带反向代理功能?好奇就试了一下,确实非常简单,没有几行代码就实现了一个简易的反向代理服务。 关于反向代理百度百科上说的非常详细了,这里摘录一下定义: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 golang实现代码 package main import ( "log" "net/http" "net/http/httputil" "net/url" ) ...阅读全文

博文 2015-10-16 21:52:06 陈杰斌

GO语言HTTP代理服务器

package main import ( "fmt" "io" "log" "net/http" "net/http/httputil" "net/url" ) func httpUserInfo(w http.ResponseWriter, r *http.Request) { ret := "your addr is:" + r.RemoteAddr + "\r\n" ret += "request headers:" + fmt.Sprint(r.Header) io.WriteString(w, ret) } func main() { targetURL, err := url.Parse("http://127.0.0.1:80") log.Println("program s...阅读全文

博文 2015-06-17 23:07:39 scybs

Awesome Go

Awesome Go A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python. Contributing Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock! Join us on IRC at #awesome-go on freenode web access Contents Awesome Go Audio & MusicAuthentication & OAuthCSS PreprocessorsConfi...阅读全文

博文 2015-02-27 18:00:00 x_focus

如何关闭Golang中的HTTP连接 How to Close Golang's HTTP connection

我们的一个服务是用Go写的,在测试的时候发现几个小时之后它就会core掉,而且core的时候没有打出任何堆栈信息,简单分析后发现该服务中的几个HTTP服务的连接数不断增长,而我们的开发机的fd limit只有1024,当该服务所属进程的连接数增长到系统的fd limit的时候,它被操作系统杀掉了。。。 HTTP Connection中连接未被释放的问题在https://groups.google.com/forum/#!topic/golang-nuts/wliZf2_LUag和https://groups.google.com/forum/#!topic/golang-nuts/tACF6RxZ4GQ都有提到。 这个服务中,我们会定期向一个HTTP服务器发起POST请求,因为请求非常不频繁...阅读全文

博文 2015-05-21 10:00:00 cobbliu

在Github中stars数最多的Go Web框架集合

Project Name Stars Forks Description beego 12195 2810 beego is an open-source, high-performance web framework for the Go programming language. gin 11602 1357 Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gi...阅读全文

博文 2017-12-19 11:54:01 终于19岁

golang实现udp接入服务器

前端通过udp与接入服务器连接,接入服务器与后端tcp服务器维持tcp连接。目录结构及后端tcp服务器代码同上一篇博客。 main.go package main import ( "lotuslib" ) const ( ip = "0.0.0.0" port = 1987 ) func main() { udplotus.UdpLotusMain(ip, port) } udplotus.go package udplotus import ( "encoding/json" "log" "net" "strconv" "time" ) const ( proxy_timeout = 5 proxy_server = "127.0.0.1:1988" msg_length = 1024 ...阅读全文

博文 2014-10-04 19:26:13 ciaos

go-parser-语法分析

每一种语言都会有一个定义良好的语法结构.函数是由申明和语句构成的,而语句又是由表达式构成的.经常用来描述语法的是BNF[1].Go使用的是相应的变种,在Go的官方文档中有很详细的spec描述[2].一门语言的设计其实就在这份描述当中,这是一门语言的语法和规则的定义,是表面程序员可以接触到的部分,而运行时却可以改变,这相当于和程序员约定的接口,只要按照这个接口编写源代码,就能产生正常可以编译的二进制文件,但是最后的二进制文件如何运行,对于每条语法转换成了什么,有什么优化都是编译器优化和运行时的工作.所以一门语言必须有一个详尽的描述,这和一个网络协议一样,是非常重要的部分. 语法分析器也是有工具可以自动生成的,比如yacc[3].我在之前提到过使用工具的利弊,就不赘述了. 本文主要看一下Go的语...阅读全文

博文 2016-04-12 10:32:40 yueyue.gao

Go 1.8中值得关注的几个变化

在已经过去的2016年,Go语言继在2009年之后再次成为编程语言界的明星- 问鼎TIOBE 2016年度语言。这与Go team、Go community和全世界的Gophers的努力是分不开的。按计划在这个2月份,Go team将正式发布Go 1.8版本(截至目前,Go的最新版本是Go 1.8rc3)。在这里我们一起来看一下在Go 1.8版本中都有哪些值得Gopher们关注的变化。 一、语言(Language) Go 1.8版本依旧坚守Go Team之前的承诺,即Go1兼容性:使用Go 1.7及以前版本编写的Go代码,理论上都可以通过Go 1.8进行编译并运行。因此在臆想中的Go 2.0变成现实之前,每个Go Release版本在语言这方面的“改变”都会是十分微小的。 1、仅tags不同...阅读全文

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

Go 语言运行时环境变量快速导览

文: http://dave.cheney.net/2015/11/29/a-whirlwind-tour-of-gos-runtime-environment-variables Go 语言运行时环境变量快速导览 介绍: Go Runtime除了提供:GC, goroutine调度, 定时器,network polling等服务外, 还提供其它一些工具设施,用于开启额外的调试输出, 或是改变Go Runtime自身的一些行为。这些工具设施由传给Go program的一些环境变量控制, 本文主要讲述它们。 GOGC GOGC 是Go Runtime最早支持的环境变量,甚至比GOROOT还早,几乎无人不知。GOGC 用于控制GC的处发频率, 其值默认为100, 意为直到自上次垃圾回收后heap...阅读全文

博文 2016-03-11 17:00:02 htyu_0203_39

golang test 单元测试

golang自家的单元测试做的很好了,自需要"文件名_test.go" 就可以在里面写单元测试,而且go test命令也很强大,可以只运行单个测试函数,在goland 可以点击单元测试函数前面的图标,但是切换到vscode就需要自己动手了。go test 主要参考https://godoc.org/testing单元测试写起来也比较容易,设定号 输入 判断 输出 与预想是否一致,一致则ok,否则 则报错。单元测试是一门学问,考虑的问题也很多,比如很多边界问题、如何自动化、测试样本等等很多东西 go test -run '' # Run all tests. go test -run Foo # Run top-level tests matching "Foo", such as "Test...阅读全文

博文 2017-12-11 21:00:01 zhishuai

MPS 高性能的HTTP(s)正向反向代理库MPS

MPS 是一个高性能 HTTP(s)中间代理库,它支持正向代理、反向代理、中间人代理、隧道代理、Websocket 代理. MPS is a high-performance HTTP(S) proxy library that supports forward proxies, reverse proxies, man-in-the-middle proxies, tunnel proxies, Websocket proxies. 项目地址:https://github.com/telanflow/mps ## Feature - 支持 HTTP(s)代理、正向代理、反向代理、中间人代理、Websocket 代理等 - TCP 连接池、证书池 - 中间件( Mid...阅读全文

专访iDST华先胜:城市大脑,对城市的全量、实时认知和搜索

摘要: 对外界而言,城市大脑是一个熟悉而又神秘的项目,如果用一个通俗而又古老的词来描述,它就是智慧城市,但事实上城市大脑已经远远超越了大家通常谈论的智慧城市... 编者按:10月11-14日,为期四天的2017杭州云栖大会(门票火热抢购中!)将再度在杭州云栖小镇起航,作为全球最具影响力的科技展会之一,本届大会将有不少阿里集团专家以及各企业行业领袖的精彩演讲。从今天开始,云栖社区将会对大会嘉宾做一系列专访,想了解嘉宾以及最新议题信息请关注“云栖大会”公众号。第一位嘉宾我们采访的是IEEE Fellow,国家千人,阿里巴巴 iDST副院长华先胜,他将在10月的云栖大会上分享关于计算机视觉领域的前沿趋势以及城市大脑最新的进展。 在7月底结束的全球计算机视觉顶级会议——CVPR 2017...阅读全文

golang gorm 操作mysql

golang 官方的那个操作mysql的有点麻烦所以就使用了gorm,下面就gorm的使用做下简单介绍 下载gorm: go get -u github.com/jinzhu/gorm 在项目中引入gorm: import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) 定义db连接信息 func DbConn(MyUser, Password, Host, Db string, Port int) *gorm.DB { connArgs := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local", MyUser,P...阅读全文

博文 2018-11-17 19:35:40 woahjknes

Go Agent

在这片神奇的土地上,FQ应该是每个网友必需掌握的技能,FQ的首要,就是F过心里的Q。心中无Q,才是最重要的。本教程介绍用 GAE(Google App Engine)FQ的方法。GAE的官方介绍:“Google App Engine,在Google的基础架构上运行您的网络应用程序。” GAE的优点很多,首先它是完全免费的,并且非常稳定,其次它提供大流量,足够让你在YouTube上看各种视频了。 注意事项! 本教程开始之前需要准备Gmail账号和Chrome浏览器。go agent在这里http://www.dengyukeji.com/thread-567-1-1.html下载。 操作步骤 1、打开:https://appengine.google.com/,输入gmail用户密码登入。 2...阅读全文

博文 2015-06-18 09:09:14 dengyukeji

gorm 数据库自动映射工具gormt

gormt 可以将mysql数据库自动生成golang sturct结构, - 数据库表,列字段注释支持 - singular_table 表名复数(大驼峰) - json tag json标签输出 - gorm.Model 基本模型 - PRIMARY_KEY 将列指定为主键 - UNIQUE,INDEX,UNIQUE_INDEX 索引,键支持 - NOT NULL 将列指定为非 NULL - 支持外键相关属性 ...阅读全文

开源项目 2019-11-02 21:43:46 xxjwxc

golang操作gorm基本

前言 对于golang中使用gorm操作mysql,可能其他的操作都是固定的,唯一麻烦的就是字段的映射。 gorm允许自己定义一个表的结构映射,但是,golang中,首字母大写来表示public或者private,而gorm在做映射的时候,大写的转化是不一样的。这里就做一下区分。 1.直接使用表的机构映射 比如你用find之类不需要写表名称,直接用结构获取的情况下,struct的机构和数据库中的结构要一致,不一样的用gorm:"column:nameSpace",这个来说明,column里面就是你想要映射的名称。 2.定义自己的结构 这么定义的话,就不要求完全一样。 这里又分两种 一,你如果没有用row,直接一条语句末尾加Scan(&struct),这么来接受的,需要字段名称对应,也可以这个...阅读全文

博文 2019-09-29 14:33:10 aside section ._1OhGeD

Golang实现一个微信抽奖小程序后台

一、后台整体架构小程序和后台间使用https通信,保证安全性,这也是为了满足小程序官方的硬性规定。腾讯负载均衡作为后台入口有几个好处:帮助处理https的流量,然后解密后再将请求通过http转发给后端的服务器,简化了逻辑,减少了https对后台服务的性能影响,同时还能配置进行动态的伸缩。负载均衡将请求通过http转发给cvm进行处理。nginx做了个反向代理,go服务端跑在本地。使用腾讯云的redis和mysql数据库。redis用于频繁的用户鉴权等,mysql保存常规数据。这样的设计在抽奖这种情境下,已经能保证足够的并发和流量了。如果想提高并发量,可以通过配置负载均衡来进行动态伸缩,然后增加云数据库的处理能力。有时间再写下怎么进行性能评测和相应的提高并发量的升级。更多go语言内容请关注:h...阅读全文

博文 2019-07-05 19:32:51 CC_ab48

nginx +golang

nginx 配置 01 #列出所有服务器地址,nginx 自动均衡分发请求到各个服务器。 02 upstream frontends { 03 ip_hash; 04 server 192.168.199.1:8088; 05 server 192.168.199.2:8089; 06 } 07 server { 08 listen 80; 09 server_name mydomain.com www.mydomain.com; 10 location / { 11 proxy_pass_header Server; 12 proxy_set_header Host $http_host; 13 proxy_redirect off; 14 proxy_set_header X-Real-...阅读全文

博文 2015-06-17 20:23:36 zb_liang

O2O,商城go2o

Go2o ================ # What's Go2o # Golang combine simple o2o DDD domain-driven design realization, including multi-channel (businesses), multi-store, multi-member commodity,Promotions, orders, coupons implementation also includes a mini-framework in package "ops/cf", providing ORM, Reporting, Web Framework,Rpc Framework. # Deploy # ##...阅读全文

开源项目 2014-12-22 02:01:04

Golang后台开发初体验

补充反馈 slice 既然聊到slice,就不得不提它的近亲array,这里不太想提值类型和引用类型的概念(个人觉得其实都是值类型),golang的array其实可以假想为C的struct类型,只是struct通过变量名来访问成员(如xxx.yyy),而array通过下标来访问成员(如xxx[3]),具体内存布局如下图所示: 图 1 golang的array内存布局 显然golang的array灵活性比较差,长度固定,这才有了slice,概念上有点类似于STL的vector,但是具体实现上还是有差距的,具体内存布局如下图所示: 图 2 golang的slice内存布局 slice类型存在len和cap的概念(与vector类似),这里有一点需要澄清:与vector不一样,slice的len并...阅读全文

博文 2014-10-10 18:00:07 cszhouwei

实战Go内存泄露

最近解决了我们项目中的一个内存泄露问题,事实再次证明pprof是一个好工具,但掌握好工具的正确用法,才能发挥好工具的威力,不然就算你手里有屠龙刀,也成不了天下第一,本文就是带你用pprof定位内存泄露问题。关于Go的内存泄露有这么一句话不知道你听过没有:10次内存泄露,有9次是goroutine泄露。我所解决的问题,也是goroutine泄露导致的内存泄露,所以这篇文章主要介绍Go程序的goroutine泄露,掌握了如何定位和解决goroutine泄露,就掌握了内存泄露的大部分场景。借鉴饶全成的做法,把目录放出来,方便大家阅读和查看本文结构。go pprof基本知识什么是pprof基本使用浏览器方式命令行方式toplisttraces什么是内存泄露怎么发现内存泄露监控工具查看进程内在占用情况...阅读全文

博文 2019-05-18 11:09:22 一起学Golang

基于gin框架快速开发应用(实战类型项目)

### 技术选型 框架: gin 日志处理: zap orm: gorm 优雅重启HTTP服务: gracehttp 测试框架: ginkgo ### 接口风格 RESTFUL ### 项目结构 * api - handler函数 * route - 路由注册 * model - 数据模型以及数据库操作 * doc - 接口文档 * log - 日志处理 * config - 配置文件 * tools - 公共工具类 * vendor - 项目依赖其他开源项目目录 * dist - 打包生成安装包的存放路径 * main.go - 程序执行入口 * Makefile 提供编译、打包、测试等功能的脚本文件 * ginkgo 二进制文件,容器内执行测试用例的时候需要使用的命令,请勿移除 * ju...阅读全文

博文 2018-07-17 19:52:14 KenmyZhang