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

GO笔记之详解GO的编译执行流程

上篇文章介绍了Golang在不同系统下的安装,并完成了经典的Hello World案例。在这个过程中,我们用到了go run命令,它完成源码从编译到执行的整个过程。 今天来详细介绍下这个过程。简单理解,go run 可等价于 go build + 执行。 ## build命令简述 在Golang中,build过程主要由go build执行。它完成了源码的编译与可执行文件的生成。 ![image.png](https://static.studygolang.com/190520/bd0c9e15566e89a56d5dd20c6928db4e.png) go build接收参数为.go文件或目录,默认情况下编译当前目录下所有.go文件。在main包下执行会生成相应的可执行文件,在非main包...阅读全文

《go语言编程》学习笔记一

go语言是一门静态类型的开发语言 go语言的特性: 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 go语言中新增的数据类型 字典类型(map) 数组切片(Slice) 。可以认为数组切片是一种可动态增长的数组。 第一个go程序 // go1 project main.go package main import ( "fmt" ) func main() { fmt.Println("Hello, world. 你好,世界! ") } 打印效果 每个Go源代码文件的开头都是一个package声明,表示该Go代码所属的包。包是Go语言里最基本的分发单位,也是工程管理中依赖关系的体现。要生成Go可执行程序,必须建立一个名字为mai...阅读全文

go build和go install的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zl1zl2zl3/article/details/83615646 go build 通过go build加上要编译的Go源文件名,我们即可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉.go后缀。 $ go build hello.go $ lshello hello.go 当然我们也 可以通过-o选项来指定其他名字: $ go build -o mygo hello.go $ lsmygo hello.go 如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件: $ go build $ lsgo-exam...阅读全文

博文 2019-03-05 22:31:03 zl1zl2zl3

Go build编译

Golang版本:1.2 通常项目的工作目录是这样的 -Blog --bin --pkg --src ---site mypackage ----some.go main.go ---vendor 说明: site为自己的程序包,其下入口文件main.go; vendor 一般放置第三方的依赖("vendor"不用显式写在引包路径中) 通常将Blog设置为GOPATH,然后cd到bin下进行编译,原因是go build默认在当前路径下生成一个可执行文件,所以在linux下,避免在src下go build,会造成以下错误 go build crawlab: build output "site" already exists and is a directory 命令 go build sit...阅读全文

博文 2019-09-26 14:33:08 aside section ._1OhGeD

NoSQL笔记

#### 非关系数据库的相关问题 * 什么是最终一致性(Eventual Consistency)? "过程松,结果紧,最终结果必须保持一致性" 最终一致性模型是用于分布式系统中,用来实现高可用性,确保在如果一个更新操作发生,那么最终一定可以读取到这次更新操作的发生。最终一致性在分布式领域广泛使用,采用多个副本形式。如果一个系统实现了最终一致性,那么这个系统可以成为收敛的,或者叫做实现了副本收敛。相比与传统的ACID,最终一致性提供的是BASE(Basic Availablilty, Soft state, Eventual Consistency)服务。 最终一致性缺点:在系统达到副本收敛之前,系统有可能返回任何值。 * NoSQL是如何解决可伸缩性的挑战的...阅读全文

Go Application elasticHD无需安装的elasticsearch dashboard

ElasticHD 是一款 ElasticSearch的可视化应用。不依赖ES的插件安装,更便捷;导航栏直接填写对应的ES IP和端口就可以操作Es了。目前支持如下功能:ES 数据实时搜索ES DashBoard 数据可视化展示,(内存,硬盘等等。。。)ES Index Template (在线修改、查看、上传)SQL Converts to DSL Downloads ElasticHDPrecompiled binaries for supported operating systems are available.Application Info​​​​​​​​​​​ 图像 小部...阅读全文

博文 2017-06-06 08:39:36 farmerx

Go/Golang 语言小白(一般白)入门手册

版权声明:wo shi banquan shenmn https://blog.csdn.net/mengsiheng/article/details/82784035 一、安装环境 废话不多说:SDK下载地址https://golang.google.cn/dl/ 下载好之后,一路向下,安装地址不要有中文、空格、或者乱七八糟的符号,不要问我为什么!开发人员的基本素养 配置环境变量 环境变量包括几个值,分别是: 3.1 GOROOT : SDK的安装路径 3.2 GOPATH :存放源代码的路径 3.3 Path :go语言本身提供的可执行程序 3.4 GOBIN : 将来编译的可执行程序的存放位置,必须放在GOPATH路径下 如何配置?(以windows为例,其他系统也许哪天我开心了会写)...阅读全文

go 交叉编译

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build Windows 下编译 Mac 和 Linux 64位可执行程序 SET...阅读全文

Go 生态圈的 K/V 数据库 benchmark

Go生态圈有好几个K/V数据库,我们经常用它来做我们的存储引擎,但是这些数据库引擎的性能如何呢?本文试图用性能而不是功能的数据考察这些数据库,我测试了几种场景: 并发写、并发读、单一写并发读、并发删除,得出了一些有趣的数据。 测试在两台机器上测试的,一台机械硬盘,一台固态硬盘,使用256字节作为value值的大小,9个字节作为key的大小,测试简单的读写删除操作,并没有测试批量读写操作。 每个测试case测试1分钟。 代码: kvbench K/V 数据库 Rocksdb: RocksDB是Facebook维护的高性能的嵌入式K/V数据库。它是LevelDB的克隆版,针对多核、SSD做了很多优化。 LSM tree数据结构。 badger: 一个纯Go实现的快速的嵌入式K/V数据库,针对LS...阅读全文

博文 2019-04-16 14:56:58 smallnest

00 Go/Golang 语言小白(一般白)入门手册

一、安装环境 废话不多说:SDK下载地址https://golang.google.cn/dl/ 下载好之后,一路向下,安装地址不要有中文、空格、或者乱七八糟的符号,不要问我为什么!开发人员的基本素养 配置环境变量 环境变量包括几个值,分别是: 3.1 GOROOT : SDK的安装路径 3.2 GOPATH :存放源代码的路径 3.3 Path :go语言本身提供的可执行程序 3.4 GOBIN : 将来编译的可执行程序的存放位置,必须放在GOPATH路径下 如何配置?(以windows为例,其他系统也许哪天我开心了会写) 点击我的电脑-右键-属性-高级系统设置-高级-环境变量 4.1 来到下面这个就对了 peizhi1.jpg 4.2 配置上面我说的其中三个变量值 peizhi2.jpg...阅读全文

亲测GO环境搭建,理解go build、go install、go get

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangliangzi/article/details/77914943 前言: 秉承着作为一个新人,要有着“指哪打哪”的觉悟。在老大的需求下,顶上前端的空缺先干阵子前端。当然,在工作之余还是要好好朝着既定的方向努力的,实习结束后还了电脑,这次毕业再来换了新Mac,重新搭下Go的环境,顺便好好总结下,以后随着学习的深入,也会持续更新。 GO下载: GO语言中文网下载:https://studygolang.com/dl Mac下直接通过brew instatll go指令即可完成下载安装 GO环境变量配置: $GOROOT=/usr/local/go GO安装目录 $GOPATH=/usr/l...阅读全文

博文 2018-12-17 00:31:01 zhangliangzi

golang写一个简单的爬虫

package main import( "fmt" "io/ioutil" "net/http" ) func gethtml(url string) (r *http.Response, e error){ resp,err := http.Get(url) if err != nil { fmt.Print("error") } return resp,err } func main(){ resp, _ :=gethtml("http://www.baidu.com") defer resp.Body.Close() fmt.Println(resp.StatusCode) if resp.StatusCode==http.StatusOK{ body,err :=ioutil.Re...阅读全文

博文 2018-06-07 15:30:01 c-x-a

分步式文件存储系统技术及实现

课程介绍 本课程针对分步式文件存储系统的实现进行讲解,首先分析为什么要使用这种分步式存储系统,以及这种系统在设计时需要注意的问题,并比较现在市面常见的分步式存储系统(HDFS、Ceph等),展示阿里Pangu系统针对其中问题的解决方法,并结合Pangu系统说明分步式存储系统的设计要点。 讲师介绍 姚文辉,2009年加入阿里巴巴,从事阿里巴巴自主研发的云计算平台—飞天分布式操作系统中的分布式存储系统—盘古。 课程目标 • 学习分步式文件存储系统的实现 适合人群 • 云计算开发者 课时列表 • 课时1:分布式存储客观需求 • 课时2:小概率事件对分布式系统的挑战 • 课时3:常见分布式系统-终版 • 课时4:分布式设计要...阅读全文

Go安装

MAC: brew install go 安装完成后,假设安装路径为/usr/local/Cellar/go/1.6,在$HOME目录下新建一个目录用于存放go语言项目(工作目录), cd $HOME mkdir projects 然后设置$GOPATH环境变量,用于指明项目路径 export GOPATH=/User/[yourname]/projects 设置$PATH环境变量 export PATH=$PATH:/usr/local/Cellar/go/1.6/bin (注意,GOROOT不需要再配置) 切换到工作目录下 cd $GOPATH 新建三个目录 mkdir bin pkg src bin目录用于存放项目生成的可执行文件,pkg存放项目用到的第三方包,src存放源码 进入sr...阅读全文

关于相对路径获取模板文件 问题

~~~ tp1, err := template.ParseFiles("../../template/2.html") 类似这样的 当 go build 时 以上路径是正确的获取得到html文件,因为自动在src目录下生成exe文件 但是当 go install的时候 exe可执行文件自动将文件编译到bin目录下 这样就造成的以上代码的获取路径错误了 请问有什么两全其美方法解决这个问题呢, 别说绝对路径啊 因为每个用户磁盘不同不能指定住一个盘符 ~~~ 路径格式 ![QQ图片20171015133039.png](https://static.studygolang.com/171015/3297f9238a2a0b39ec81b537687e7b3c.png...阅读全文

基于 Graphviz 的可视化数据结构工具memviz

memviz 是一个基于 Graphviz 的可视化数据结构工具。 如下图所示,你更喜欢哪种调试数据结构的方式? ![image](https://static.oschina.net/uploads/space/2018/0128/195104_ghWN_2720166.png) memviz 需要一个指向任意数据结构的指针,然后生成一个易于理解的图片。 只需传递如下的数据结构:`memviz.Map(out, &data)`,然后将输出结果到 graphviz...阅读全文

拉勾网职位爬取及可视化

Github地址:https://github.com/JasonJe/memos/tree/master/jobs_data_analysis 爬取 爬取程序为crawl.py 直接运行即可进行爬取,python3 ./crawl.py。 说明:爬取的招聘网站为拉勾网,其职位详情页有反爬策略,即单个cookies不可连续获取2次详情页内容,这里使用代理请求首页来更新cookies,保证正常的详情页爬取。 数据可视化 可视化文档为data_analysis.ipynb 数据分析 & 可视化: 职位关键词Top 10 职位关键词Top 10 HR活跃时间分布 HR活跃时间分布 通过分析HR的活跃时间,可以知道在大概早上09:00 ~ 11:00 和下午14:00 ~ 18:00这两个时间段进行...阅读全文

博文 2019-10-28 11:32:53 aside section._1OhGeD

让运维更高效:关于ECS系统事件

**摘要**: 阿里云会针对ECS实例发布系统事件,当您收到阿里云计划维护的通知时,可以利用ECS系统计划事件了解与实例相关的计划维护操作,并根据您的业务特性选择合适的时间安排运维操作进行故障转移,减少对系统可靠性和业务连续性的影响。 阿里云作为领先和值得信赖的云计算服务提供商,提供和保障计算、存储、网络资源以及底层基础设施的可用性、稳定性、安全性。根据自身战略发展和业务需求,您可以设计高可用的云上IT架构,在阿里云上选择合适的产品、服务来搭建部署业务系统,并管理其中的数据。在此基础上,通过阿里云提供的API、监控、编排等多样化手段实现快速配置资源,搭建多套环境,自动化部署等IT运维能力。 相较于普通的IDC机房以及服务器厂商,阿里云会使用更严格的IDC标准、服务器准...阅读全文

Golang 交叉编译的方法

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go Linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go 32位系...阅读全文

golang并发编程读写锁sync.RWMutex

一、介绍 sync.RWMutex 为读写锁,lock为写锁定 ,Unlock 为写解锁,RLock为读锁,RUnlock为读解锁。 二、场景 适用于场景:多读一写,读可以同时进行,但是写只能一个写,读写是互斥的要么只能读或者只能写 三、代码测试 功能性测试 第一种场景 测试内容 : 读锁存在的情况下,同时出现读和写的操作,此时优先获取写锁 package main import ( "testing" "fmt" "sync" "time" ) var rwlock = &sync.RWMutex{} var wg = &sync.WaitGroup{} func TestRWMutex(t *testing.T) { //读 wg.Add(1) go rlockwork() time.S...阅读全文

博文 2019-06-27 21:32:40 清晨的麦田

媒体资源打包工具 libzipfs

libzipfs   libzipfs将golang web项目的媒体资源打包成zip放置到可执行文件中,使golang web 项目可以彻底的进行单文件部署。 ### 示例

-------------------       ---------------
| go executable   |       |  zip file   |
-------------------       ---------------
        \                        /
         --> libzipfs-combiner <-
                      |
                      v
----...阅读全文

ubuntu 下 golang 跨平台编译 windows 程序

1. 安装 gcc-mingw-w64 apt-get install gcc-mingw-w64 2. 跨平台编译 生成 64位 exe 可执行文件. env CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build -o main.exe main.go 生成 32 位 exe 可执行文件 env CGO_ENABLED=1 GOOS=windows GOARCH=386 CC=i686-w64-mingw32-gcc go build -o main.exe main.g...阅读全文

高可用Redis服务架构分析与搭建

基于内存的Redis应该是目前各种Web开发业务中最为常用的Key-Value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较MySQL而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。 不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。 首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现...阅读全文

数据库工程师的职责是什么?有哪些发展方向?

数据库开发工程师 1.负责公司业务数据库系统的模型设计,表结构设计 2.负责数据处理中的语句实现,存储过程逻辑实现 3.负责指导开发人员对语句的性能优化和指导 数据库管理员(DBA) 1.负责公司业务数据库系统的部署实现 2.负责数据库系统的高可用性,备份恢复,性能调忧,监控等实现 数据库架构师 1.统筹公司业务数据库系统各个层面的技术实现 2.指导数据库开发工程师和管理员在各个环节的工作,提供更优的方案 数据俨然已经成为所有企业的重要资产,互联网企业更是将数据作为自己的生命线。一个优秀的数据库工程师通常掌握着企业的核心价值,保障数据服务持续正常运转,所以在公司地位相对比较高。责任越大,地位越高,薪资越高。 高速社会要求高速的系统,现在的系统性能瓶颈已经不是传统的硬件瓶颈,而是后台程序和数据...阅读全文

windows GoLang

开发软件 Go 安装包 https://studygolang.com/dl GoLang开发工具 http://www.jetbrains.com/go/ Go安装包是go开发环境,类似java平台的jdk,但go语言编译的可执行程序不需依赖go开发环境。GoLang是IntelliJ IDEA软件公司的Go语言开发工具。 教程: http://www.runoob.com/go/go-tutorial.html https://studygolang.com...阅读全文

博文 2017-11-11 21:00:00 zhen-android

3 台机器如何搞定一个 Redis 高可用架构

基于内存的 Redis 应该是目前各种 Web 开发业务中最为常用的 key-value 数据库了。我们经常在业务中用其存储用户登陆态(Session 存储),加速一些热数据的查询(相比较 MySQL 而言,速度有数量级的提升),做简单的消息队列(LPUSH 和 BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将 Redis 存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近在我的项目中自己搭了一套小型的“高可用”Redis 服务,在此做一下自己的总结和思考。首先我们要定义一下对于 Redis 服务来说怎样才...阅读全文

博文 2019-01-11 21:34:42 Java高级架构师之路

Docker 容器编排实践练习

在本次练习中,你将体验到 Docker 的容器编排功能。首先你需要在单个主机上部署一个简单的应用程序,并了解其工作机制。然后,通过配置 Docker Swarm 模式,你将学习到怎样在多个主机上部署相同的简单应用程序。最后,你将看到如何对应用的规模进行扩容、缩容,以及如何将工作负载在不同的主机之间转移。 (译者注:登录原网站可使用在线练习资源) > **难度**:入门级 > **时间**:约 30 分钟 **任务**: - [第一节 - 容器编排是什么](# 第一节:容器编排是什么 ) - [第二节 - 配置 Docker Swarm 模式](# 第二节:配置 -Docker-Swarm- 模式 ) - [第三节 - 跨多主机部署应用](# 第三节:跨多主机部署应用 ) - [第四节 - 应...阅读全文

分享:用四十种语言分别写一个MD5算法 之12 Go语言MD5算法

分享:用四十种语言分别写一个MD5算法 之12 Go语言MD5算法 package main import ( "crypto/md5" "fmt" ) func main() { for _, p := range [][2]string{ } { validate(p[0], p[1]) } } var h = md5.New() func validate(check, s string) { h.Reset() h.Write([]byte(s)) sum := fmt.Sprintf("%x", h.Sum()) if sum != check { fmt.Println("MD5 fail") fmt.Println(" for string,", s) fmt.Println(...阅读全文

博文 2015-06-17 23:01:48 sooch

golang交叉编译笔记

GOOS:目标平台的操作系统(darwin、freebsd、linux、windows) GOARCH:目标平台的体系架构(386、amd64、arm) Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build Linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build Windows 下编译 Ma...阅读全文

go build 不同系统

Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。 Mac下编译Linux, Windows平台的64位可执行程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go Linux下编译Mac, Windows平台的64位可执行程序: CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go Windows下编译Mac, Linux平台的...阅读全文

博文 2018-12-14 10:31:03 liangguangchuan

高可用 Redis 服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常...阅读全文

博文 2018-11-29 00:34:46 java成功之路

阿里云效团队大规模代码构建技术实践

摘要: Vega是一种大数据可视化的高效工具,本文以分析游隼的迁徙情况为例,展示了Vega工具的强大能力及易学易用特点。 目前我们处于信息时代,万物联网的时代已经到来。从我们的日常生活中可以发现,小到身边的智能家居,再到平时出行的共享单车、滴滴等打车软件等,无时无刻不在产生大量的数据。这几年的时间里产生的数据量,已经远远超过了历史上其它时间的总和。那么这么多的数据汇聚成一个大数据,如何对这些数据进行有效分析与加以利用就变得十分重要了,而大数据可视化是进行大数据分析的一把利器。 什么是大数据可视化呢,参考一些资料给出的定义如下,现代的数据可视化(Data Visualization)技术指的是运用计算机图形学和图像处理技术,将数据换为图形或图像在屏幕上显示出来,并进行交互处...阅读全文

Go 博客平台 Pipe 1.8.3 发布,支持 PJAX

[Pipe](https://github.com/b3log/pipe) 是一款小而美的开源博客平台,使用 golang、Vue.js 编写。 v1.8.3 主要是支持了前台主题的 PJAX。 ### 安装 [下载](https://pan.baidu.com/s/1jHPtHLO)最新的 Pipe 包解压,进入解压目录直接运行 pipe/pipe.exe 可执行文件即可。 从 1.8.2 升级只需将已有的配置拷贝覆盖即可,启动后会自动升级。 ### 文档 * [Pipe 用户指南](https://hacpai.com/article/1513761942333) * [Pipe 开发指南](https://hacpai.com/article/1533965022328) * [Pip...阅读全文

搭建高可用的Redis服务,需要注意这些方面!

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近在项目中也搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常的情况下,依然...阅读全文

博文 2018-07-25 17:35:08 Java填坑之路

golang 中GOROOT,GOPATH,GOBIN到底是什么

本文为转载:初学者没有搞明白的GOROOT,GOPATH,GOBIN,project目录 我们接下来一个一个来看关于Go语言中的三个目录的详细解释 先通过go env查看go的环境变量(我这里是mac的环境,所以可能和你的不同) localhost:~ zhaofan$ go env GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/zhaofan/go_project" GORACE="" GOROOT="/usr/local/Cellar/go/1.9.2/libexec" GOTOOLDIR="/usr/local/Cellar/go/1....阅读全文

博文 2019-04-21 16:34:41 右哼哼丨左哼哼

go build 不同平台交叉编译

Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。 Mac下编译Linux, Windows平台的64位可执行程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go Linux下编译Mac, Windows平台的64位可执行程序: CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go Windows下编译Mac, Linux平台的...阅读全文

博文 2020-01-07 11:32:47 四季枫叶

go 开发环境

shell go env sublime text command+b打开sublime text终端 使用go build xx(项目名称)对其进行编译, [go build helloGo| done: 420.495985ms ] [./helloGo| done: 10.532868ms ] 如果仅是只需看运行结果,而不产生可执行文件(文件名和项目名一样)则在sublime text终端中直接使用go run xxx.go + $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('阅读全文

How to Write GO Code 中文版

- 说明 - [官方原文](https://golang.org/doc/code.html) - 本文按个人理解进行直译,水平有限,难免有错或偏差,欢迎批评指正 - 在Go的官方文档中,经常使用命令(command)这个词来指代可执行程序,如命令行应用程序,这个会让我们新手在阅读文档时感到困惑。所以,需要记住,在Go语言中,命令(command)是指任何可执行程序。作为对比,包(package)更常用来指语义上可导入的功能单元 - [Introduction](#1) - [Code Organization](#2) - [overview](#2.1) - [workspace](#2.2) - [the GOPATH environment variable](#2.3) - [im...阅读全文

博文 2018-06-08 15:47:00 semicoyoung

最近在自学GO语言,GO语言执行流程

最近自学Go语言,发现Go语言在编译过程中并没有像java一样,先转化为一个可执行文件,然后再去运行。于是就查了一下Go语言的执行流程。往下是我的一些整理。 Go语言暂时而言,编译文件命令我是发现了两个。一个是go run ,以及 go build 。 go run + xxx.go 可以对go语言进行直接运行。即再windows系统中,直接生成一个 .exe的可执行文件并运行。但是再运行之后我并没有找到 .exe 的文件在哪里。因时间问题,暂时不能找了如果有哪位前辈知道,可以直接告诉我的,嘻嘻。 go build + xxx.go 可以对go语言文件进行一个编译,但并不会去执行。执行的话,需要再进一步的操作...阅读全文

博文 2019-03-26 14:01:47 Garrett1101

代码部署问题,如果实现平滑重启

我这边的情况是,在windows下交叉编译编译好Linux下对应的可执行文件后上传至Linux执行开启服务。 如果版本迭代后,再执行上面的流程将新的可执行文件上传至Linux覆盖重启。这里有一个问题如果原来的文件是在工作状态则不能覆盖成功,需要将之前的服务停掉,才能进行覆盖操作。 我想请教一下,最佳的golang代码部署方案...阅读全文

高可用Redis服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。 不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。 首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现...阅读全文

博文 2019-04-15 22:34:43 java架构进阶

高可用Redis服务架构分析与搭建

基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较大的互联网公司,一般都会有专门的团队,将Redis存储以基础服务的形式提供给各个业务调用。不过任何一个基础服务的提供方,都会被调用方问起的一个问题是:你的服务是否具有高可用性?最好不要因为你的服务经常出问题,导致我这边的业务跟着遭殃。最近我所在的项目中也自己搭了一套小型的“高可用”Redis服务,在此做一下自己的总结和思考。首先我们要定义一下对于Redis服务来说怎样才算是高可用,即在各种出现异常...阅读全文

博文 2019-01-04 18:34:45 JAVA高级架构开发

aliyun sms 非官方sdk

由于没有注意到ali官方发布到新版的golang sdk for SMS service 快实现完成完成了才发现, 索性把它实现完成,只是没有补充足够的测试. 相比官方sdk, 个人认为实现要比官方版简洁,调用优雅, 可扩展性强于官方版. description: golang version short message sender underline with ali sms service ## Installation Use `go get` to install SDK ```sh $ go get -u github.com/guoapeng/gosms ``` ## Quick Examples Before you begin, you need to sign up fo...阅读全文

博文 2019-09-22 18:56:58 guoapeng

云解析DNS使用教程

课程介绍 云解析(Domain Name System,简称DNS)是一种高可用性、高可扩展的权威DNS服务和DNS管理服务。它的目的是为企业和开发者提供稳定、安全、智能的把网站域名或应用资源转换为计算机用于互连的数字 IP地址,从而将最终用户的访问路由到相应的网站或应用资源上同时提供DNS的管理服务。 产品详情:https://wanwang.aliyun.com/domain/dns/ 课时列表 • 课时1:购买与绑定 • 课时2:解析设置 • 课时3:智能解析 • 课时4:网站监控 • 课时5:全球负载均衡 开始学习:http://click.aliyun.com/m/27873/ ...阅读全文