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

golang整洁之道(一)

设计工整的go项目配置文件 问题背景 项目经常会涉及到配置文件,而配置文件往往包含多方的配置信息,可能同时涉及到MySQL,kafka,hive,hdfs等等。 不加思索的yaml配置文件 最快,最直接的方案自然是如下示例,直接写 yaml部分 hdfs_path: "/user/hive/warehouse/dm_user.db/user_vod_time/create_time=" hdfs_host: "hdfsNode9" hdfs_port: "8020" eth_host: "http://127.0.0.1" eth_port: "8545" coin_password: "password" golang部分 package config type config struct...阅读全文

博文 2019-03-06 11:34:42 Mandelbrot_Kobe

Go语言实战技巧(3)

1. go 命令(build, install, test,快速略过) 2. cgo(调用C代码)import "C"之前存放被注释的C代码。详细参考https://golang.org/cmd/cgo/。使用cgo命令添加C编译选项,如// #cgo LDFLAGS: -L/go/src/foo/libs -lfoo。3. vendor(vendor目录)将项目使用的第三方库放到vendor目录,防止项目间不同版本间冲突。解决第三方库多项目多版本冲突问题。并不解决第三方库版本管理和自动更新问题,使用govendor库。4. 配置文件(json config) 配置文件定义 配置文件,如server.conf: json配置文件 使用时: 解析配置文件 5. log库(seelog)第三方库...阅读全文

博文 2017-08-21 13:05:14 海吹的风

???? golang读取配置文件(ini文件)

???? golang读取配置文件(ini文件) ???? 1.配置文件 app.ini [mysql] url=root:abc.123@tcp(127.0.0.1:3306)/foot_this?charset=utf8 #url=root:abc.123@tcp(127.0.0.1:3306)/foot?charset=utf8 maxIdle=10 maxConn=20 ???? 2.代码 IniUtil.go package utils import ( "fmt" "gopkg.in/ini.v1" "strconv" "strings" "tesou.io/platform/foot-parent/foot-api/common/base" ) var ( //配置信息 ini...阅读全文

博文 2020-05-09 16:35:04 现世码农

go-学习笔记

2018年6月30日 基础命令 go build 用于编译源码文件、代码包、依赖包 可执行文件路径为 $GOPATH/bin go run 编译并运行go源码文件 go get 动态获取远程代码包 系统关键字或保留字 1,保留关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 2, 预定的标识符,包括基础数据类型和系统内嵌函数。 append bool byte cap close complex complex64 complex...阅读全文

博文 2018-07-01 06:34:40 昨夜语

VS Code 配置golang编译选项

安装一大堆插件后终于可以调试了,当我想输出调试好的文件时发现没有输出选项,需要手动添加: 方法:工作区配置文件设置编译选项 "settings": { "go.buildFlags": ["-ldflags=-s -w -H windowsgui"] } 不要使用网上教的 "-ldflags=\"-s -w -H windowsgui\"" 配置,全都会报错,什么不加就OK了。 然后用ctrl+shift+P -> Go:build workspace 编...阅读全文

区块链之链码升级

进入区块链peer节点的证书文件夹,在客户端下,路径为:```crypto-config/peerOrganizations/org2.cloudchain-dev.querycap.com/users/Admin\@org2.cloudchain-dev.querycap.com/)```peer执行脚本:```#!/bin/bashPATH=`pwd`/../bin:$PATHexport FABRIC_CFG_PATH=`pwd`export CORE_PEER_TLS_ENABLED=trueexport CORE_PEER_TLS_CERT_FILE=./tls/client.crtexport CORE_PEER_TLS_KEY_FILE=./tls/client.keyexpo...阅读全文

如何限制文件上传的大小

# 如何限制文件上传的大小 ```go err := r.ParseMultipartForm(32 << 20) // 32Mb if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) } ``` 文件上传一般会采用 POST `multipart/form-data` 的形式,处理这类请求要调用 `r.ParseMultipartForm`,无论是显式调用,还是在 `r.FormFile` 里面的隐式调用。 那 32Mb 是对文件上传大小的限制吗?不是,上传的文件们按顺序存入内存中,累加大小不得超出 32Mb ,最后累加超出的文件就存入系统的临时文件中。非文件字段部分不计入累加。所以这种情况,文件上传是没有任何限...阅读全文

博文 2019-08-10 16:02:25 yashiro1899

go数据类型

命名规范允许:字母,数字,下划线不能已数字开头名字不能是关键字区分大小写变量声明变量:var 变量名 变量类型多个变量声明:var 变量名1,变量名2 数据类型1,数据类型2声明变量必须要使用变量默认值为0同一个函数中,变量名必须是唯一的自动推导类型":=" 自动推导类型作用是声明变量,同时给变量赋值,通过变量值声明变量类型多个变量声明 var ( a = 1 b = 2.1 )Printf和Println的区别Printf 格式化输出 【fmt.Printf("a = %d\n", a):将变量a的值输出到%d的位置,\n:换行】Println 一段一段输出,并自动换行常量声明常量: const 常量名 常量类型常量不允许修改自动推导:const 常量名称 = 常量值多个常量声明 var ...阅读全文

一行命令将mysql表转为golang struct

Github地址 中文文档| English okcli 可以将指定数据表生成为对应的model文件,目前支持将列名、数据类型、默认值、注释带入指定model中, 就像如下文件: import "time" type ( Student struct { Id int32 `db:"id"` Name string `db:"name"` // the student's name Gender int8 `db:"gender"` // the student's gender,0-male,1-female,DEFAULT:0 Age int8 `db:"age"` // the student's age,DEFAULT:0 Class string `db:"class"` // t...阅读全文

博文 2019-12-19 07:32:42 丨Andy丨丶

golang初学者: string, [...]TYPE, []TYPE类型浅析 & golang 的内存管理

# go string类型 ## string类型变量 ```c //go语言中的string类型像是c语言中的 struct string{ size_t len ; char const * data ; //指向[...]byte类型的数组 }; ``` ## string = 运算符赋值操作 ```go /* string类型 = 赋值运算符, 推测使用浅copy, string类型不提供修改索引的[...]byte类型数组的方法,并且go语言实现了gc垃圾回收机制,不需要关心内存释放的问题,所以单纯的赋值操作,没有必要进行深copy,使用浅copy可以提高性能,节省内存空间 */ ``` # go [...]TYPE array类型 ## [...]TYPE类型变量 ```c /*...阅读全文

博文 2020-02-03 22:24:00 loop_0

Go语言入门到放弃-变量

变量 1. 变量声明 使用关键字var var v1 int //整型 var v2 string //字符串 var v3 [10]int //数组 var v4 []int //数组切片 var v5 struct { //结构体 f int } var v6 *int //指针 var v7 map[string] //map,key为string类型,value为int类型 还有一种用法就是将若干个需要声明的变量放置在一起 var ( v1 int v2 string ) 2. 变量初始化 变量初始化有三种方式: var v1 int = 10 //方式1 var v2 = 10 //方式2,编译器可以自动推导出v2的类型 v3 := 10 //方式3,可以省略关键字var和类型,编...阅读全文

博文 2018-08-21 01:35:18 ljmict

Golang文件读写

创建文件通过os包的Create、NewFile方法创建func Create(name string)(file *File,err Error)func NewFile(fd uintprt,name string)*File打开文件func Open(name string)(file *File,err Error)func OpenFile(name string,flag int,perm uint32)(file *File,err Error)写文件func (file *File) Write(b []byte)(n int,err Error)func (file *File)WriteAt(b []byte,off int64)(n int,err Error)func...阅读全文

博文 2018-10-28 23:34:39 水无寒

Golang:常量和变量

标识符与关键字 标识符 由数字,字母,下划线组成,只能以字母和下划线开头. 关键字 关键字和保留字不能用作变量名. 25个关键字: break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 37个保留字: Constants: true false iota nil Types: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 c...阅读全文

Go语言安装小记

1.登陆网址https://golang.org下载源码 wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz2.解压缩文件: tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz3.在文件/etc/profile添加环境变量export PATH=$PATH:/usr/local/go/binexport GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/gopath (可选设置)更新环境变量:source /etc/profi...阅读全文

Go语言笔记 | 03-变量的声明和初始化

Go语言笔记 | 03-变量的声明和初始化 变量声明 在 go 语言中声明一个变量一般要用到关键字 var,变量声明的语法:var 变量名 类型 = 表达式。 在声明变量时将变量的类型放在变量的名称之后,和 c 语言不太一样,原因可以参考go 声明语法。 声明一个变量 var i int // 0 声明一个变量列表,同类型的变量 var a, b, c string // "", "", "" 声明一组变量,不同类型的变量 var ( str string // "" avg, sum float32 // 0.0, 0.0 ) 未初始化的变量,系统会自动赋予该类型的零值 变量零值 当一个变量被声明之后,系统自动赋予它该类型的零值 bool 的零值为 false 整数的零值为 0 浮点数的零...阅读全文

博文 2019-01-23 21:34:40 jianggushi

golang 文件操作之三

1.打包文件 // This example uses zip but standard library // also supports tar archives package main import ( "archive/zip" "log" "os" ) func main() { // 创建一个打包文件 outFile, err := os.Create("test.zip") if err != nil { log.Fatal(err) } defer outFile.Close() // 创建zip writer zipWriter := zip.NewWriter(outFile) // 往打包文件中写文件。 // 这里我们使用硬编码的内容,你可以遍历一个文件夹,把文件夹下的...阅读全文

博文 2018-02-07 15:34:39 soledad

gencodec工具

gencodec 百度了一下,居然找不到gencodec工具的中文使用介绍,对我这种拿来主义的人真有点不适应,简单总结一下介绍使用。 gencodec是一个非常便捷的通过类型自动生成marshaling代码的工具,工具的安装就不细说了,基本没有使用其他库除了golang.org/x里某些库,地址:https://github.com/fjl/gencodec。 使用方式: gencodec -type MyType -field-override MyTypeMarshaling -formats json,yaml,toml -out mytype_json.go 在相应的包下指定: type: 需要生成的类型名 formats: 样式,支持三种json,yaml,toml,默认json ...阅读全文

博文 2020-06-06 18:32:43 渐行渐远_简行

Prometheus快速了解

概览 Prometheus是一个独立的开源监控系统。其组成主要有时序数据库、数据采集、数据查询(PromQL查询语言)和报警。先看一下Prometheus结构图 Prometheus工作流程 先得部署一个被监控的应用:App。 让App和Prometheus通信才能达到监控的目的。 将app关联到Prometheus,即在Prometheus中配置被监控App的位置信息。 需要采集app的数据,App就得按照Prometheus提供的规则编写Http接口。 数据采集两种方式: 比如Java应用,可以在Java应用中引入相关依赖,提供Prometheus采集数据的pull接口。 提供exporter做为中间层适配数据采集。 Prometheus按时通过该接口pull数据,即达到数据采集的目的。...阅读全文

golang(cgo)---如何在两个不同的package中使用同样的自定义数据类型?

如何在两个不同的package中使用同样的自定义数据类型?这里主要针对包括在C头文件中结构体类型,如果只是在不同的go package中自定义数据类型,这个很好处理。但实际上处理的核心是一样的,下面通过两个例子来说明解决办法。 测试例程目录 ├── include │ └── data.h └── src ├── common │ └── common.go └── main └── main.go 测试 data.h #pragma once #include struct Data { int a; char b; }; common.go package common /* #include #cgo CFLAGS : -I../../inclu...阅读全文

博文 2016-09-01 21:00:03 FreeApe

剥开比原看代码01:初始化时生成的配置文件在哪儿

作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 人们常说,“阅读源代码”是学习编程的一种重要方法。作为程序员,我们在平时的学习工作中,都应该阅读过不少源代码。但是对于大多数人来说,阅读的可能更多是一些代码片断、示例,或者在老师、同事的指导下,先对要阅读的项目代码有了整体的了解之后,再进行针对性的阅读。 但是如果我们面对的是一个像比原这样比较庞大的项目,身边又没有人指导,只能靠自己去看,这时应该怎么来阅读呢?也许每个人也都能找到自己的办法,或高效,或低效,或放弃。 我在这次阅读比原源代码的过程中,尝试的是这样一种方法:从外部入手,通过与比原节...阅读全文

博文 2018-07-23 15:34:47 比原链Bytom

DockOne微信分享(一零四):艺龙部署体系的演进

【编者的话】随着公司业务规模的逐渐扩大,传统的基于机器层面的部署系统在面对服务扩缩容、故障迁移、成本控制等方面已经越来越力不从心,于是,我们开始将容器技术与当前公司内部已有的自动化运维体系相结合,来实现一套艺龙的容器云平台,以期解决上述问题。 原有部署平台的架构设计在讲解部署系统之前,我先给大家讲一下目前艺龙自动化运维的业务模型。早期艺龙的运维,因为规模较小,通常人工处理,当规模大了以后,就开始尝试基于Puppet等脚本的方式操作。随着规模的进一步扩大,逻辑需求的增加,使得原有的这种基于行为的模型很难更高效的进行管理。 因此,我们抽象出服务这个概念,用户对服务做出定义,服务之间采用树形关联,服务节点上挂载元信息,而机器也是元信息之一,因此,新的模型就变为人去定义服务,而服务去关联机器。无论上...阅读全文

博文 2017-06-25 16:25:29 百事可乐

Go语言学习笔记(六)

golang中结构体是由零个或多个任意类型的值组成的实体。一般在 golang 中用结构体来定义某个类。 基本使用 例如声明一个 Employee 的结构体: type Employee struct { Id int Name string Address string DoB time.Time Position string Salary int ManagerID int } 当需要实例化的时候: var dilbert Employee dilbert.Id = xxx dilbert.Name = "golang" ... //或者 dilbert := &Employee{} //或者 dilbert := new(Employee) 结构体成员的名字开头是大写字母,则表示该成...阅读全文

博文 2019-03-17 21:34:41 程序员Morgan

gitbook 入门教程之网站域名备案 icp 插件

欢迎访问 gitbook-plugin-icp 官网 ???? 用于在首页页脚区域添加 icp 网站备案信息的 Gitbook 插件 ???? 主页 Github : https://snowdreams1006.github.io/gitbook-plugin-icp/ GitLab: https://snowdreams1006.gitlab.io/gitbook-plugin-icp/ Gitee : https://snowdreams1006.gitee.io/gitbook-plugin-icp/ 屏幕截图 多语言版本 单语言版本 用法 步骤#1-更新book.json文件 在您的 gitbook 的 book.json 文件中,将 icp 添加到 plugins 列表中。 在 ...阅读全文

博文 2019-12-20 20:32:41 雪之梦技术驿站

go语言基础语法

go语言基础语法 定义变量在go语言中有两种定义变量的方法: var的方式,如下var a = 1将a变量赋值1 第二种方式 ":=",如下:a := 1和上述一样,将a变量赋值1 `注: 变量名 := 变量值,这种方式只适用于第一次赋值变量时,如果变量已赋值,如上的a已经赋值为1,此时如果想重新赋值在使用a := 2这种方式会报错,更改赋值直接a = 2即可` 定义函数:在go语言中没有class关键字,没有类的概念,go主要是面向函数和面向接口的编程语言。定义函数的关键字 func,如下:语法:[ ]里面的内容为可选项 func 函数名([参数名] [参数类型]) [函数返回值类型]{ 函数具体逻辑 [return] [返回的内容] } 循环:在go语言中只有for循环没有其他循环基本写...阅读全文

博文 2020-01-02 22:33:10 清风hao

Filbeat介绍

Filebeat 介绍 概要 Filebeat 是使用 Golang 实现的轻量型日志采集器,也是 Elasticsearch stack 里面的一员。本质上是一个 agent ,可以安装在各个节点上,根据配置读取对应位置的日志,并上报到相应的地方去。 Filebeat 的可靠性很强,可以保证日志 At least once 的上报,同时也考虑了日志搜集中的各类问题,例如日志断点续读、文件名更改、日志 Truncated 等。 Filebeat 并不依赖于 ElasticSearch,可以单独存在。我们可以单独使用Filebeat进行日志的上报和搜集。filebeat 内置了常用的 Output 组件, 例如 kafka、ElasticSearch、redis 等,出于调试考虑,也可以输出到...阅读全文

博文 2020-05-16 21:32:50 blankjee

Hive 数据类型 + Hive SQL

基本类型 整型 int tinyint (byte) smallint(short) bigint(long) 浮点型 float double 布尔 boolean 字符 string char(定长) varchar(变长) 时间类型 timestamp date 引用/复合类型 优点类似于容器(Container),便于我们操作数据 复合类型可以和复合类型相互嵌套 Array 存放相同类型的数据 数据按照索引进行查找,索引默认从0开始 user[0] Map 一组键值对,通过key可以访问到value key不能相同,相同的key会相互覆盖 map['first'] Struct(就是C语言中的结构体, golang中也有) 定义对象的属性,结构体的属性都是固定的 通过属性获取值 us...阅读全文

博文 2019-10-31 12:32:46 aside section._1OhGeD

Delve代码分析笔记(3)——config

Delve程序运行起来以后,首先就会加载和解析配置文件: func New() *cobra.Command { // Config setup and load. conf = config.LoadConfig() ...... } Delve的配置文件位于用户home目录下的.dlv文件夹下,文件名是config.yml。例如,如果是root用户,则配置文件的全路径是:/root/.dlv/config.yml。目前配置文件只支持为命令指定别名。 config包只包含一个config.go文件。代码也比较简单,归纳起来就是:如果用户没有创建配置文件,则替用户创建一个(里面没有实质内容),然后读取配置文件内容,并把Config结构体(定义如下)返回给调用者。 // Config defi...阅读全文

Mins: 一个mini版的restful api资源服务器

介绍 又双叒叕造了一个轮子。Mins,mini server。一个小型服务器。主要用来做一些小型项目开发,或者前端调试用的服务器。内置完成了增删改查的api。只要配置好数据表,就可以对数据表的资源进行增删改查,用约定好的api路由。用来补充略显鸡肋而常用的"nodejs启动服务器"或"php -S"操作。 项目地址 https://github.com/chenhg5/mins 使用 十分的简单,利用提供的二进制文件,传入参数 -c 即可。 mins -c /the/config/file/path 路由 方法 路径 GET /resource/:table/id/:id DELETE /resource/:table/id/:id PUT /resource/:table/id/:id P...阅读全文

博文 2018-07-09 14:34:47 honhon

Springboot 系列(二)Spring Boot 配置文件

注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别。 前言 不管是通过官方提供的方式获取 Spring Boot 项目,还是通过 IDEA 快速的创建 Spring Boot 项目,我们都会发现在 resource 有一个配置文件 application.properties,也有可能是application.yml.这个文件也就是 Spring Boot 的配置文件。 1. YAML 文件 在 Spring Boot 中,官方推荐使用 properties 或者 YAML 文件来完成配置,对于 YAML 文件格式还不了解的可以查看官方的具体格式,这里只做简单介绍。 YAML 语法规则: 大小写敏...阅读全文

博文 2019-02-26 22:34:42 雪漫士兵

【译】Go语言之声明语法

作者:Rob Pike,原文链接:Go's Declaration Syntax 以下是译文: 前言 Go 的初学者可能会有这样的疑问:为什么 Go 的声明语法与传统的其他 C 家族编程语言不太一样?在这篇文章中我们会比较这两种不同的方式,并且也会解释为什么。 C 变量 首先,让我们说说 C 中的语法。C 使用了一种不寻常的巧妙的方法来实现声明语法。我们不是用什么特殊的语法来描述类型,而是写一个表达式,这个表达式包含两个部分:被声明的变量和变量的类型。 int x; 上面这行代码声明了一个类型为 int 的变量 x。一般来说,为了弄清楚如何编写新变量的类型,可以先写一个含基本类型变量的表达式,然后将基本类型放在左边,将表达式放在右边。 因此,下面的声明: int *p; int a[3]; ...阅读全文

博文 2017-11-25 09:04:40 Stephen

《和我一步步部署 kubernetes 集群》- 更新到 kubernetes v1.10.4 版本了!

![k8s-install](https://raw.githubusercontent.com/opsnull/follow-me-install-kubernetes-cluster/master/images/dashboard-home.png) 《和我一步步部署 kubernetes 集群》自发布以来,受到 kubernetes 社区做多爱好者的关注,提了不少问题和建议(见 Github Issues),很开心能给大家带来帮助! 上一版是基于 kubernetes 1.6.2 版本,这一年来,kubernetes 经历了 4 次大版本升级,很多配置参数都发生了变化,组件功能也有所变化。为保持文档的指导性,紧跟社区变化,特将文档更新到最新稳定版本 v1.10.4。 相对上一版本,这一...阅读全文

从nginx热更新聊一聊Golang中的服务器热更新(上)

静态语言在服务器编程时都会遇到这样的问题:如何保证已有的连接服务不中断同时又升级版本?最近花了点时间看了下nginx热更新代码流程,想了下结合之前的经验一并总结下热更新1. 热更新是什么?简单翻译成人类可读的实例是如下这个样子:举个例子,你现在在坐卡车,卡车开到了150KM/H然后,有个轮胎,爆了然后,司机说,你就直接换吧,我不停车。你小心点换嗯。就这个意思2.网关中的热更新服务程序热更新这个问题在层7网关中尤其严重,网关中承载着大量的请求,包括HTTP/HTTPS短连接、HTTP/HTTPS长连接、甚至是websocket这种超长连接(websocket通常连接时间会很长,十几分钟到几天不等)。这样的话我们势必不能讲服务程序停止再启动的冷更新,服务进程热更新是非常有必要的。网关作为一个基础...阅读全文

博文 2019-03-18 14:09:39 Lateautunm​

Linux 命令行下搜索工具大盘点,效率提高不止一倍!

在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令。grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂。 于是,为了简化 grep 的语句并达到同等效果,很多业内高手开发出了很多同样强大的工具,在某些程度上甚至可以替代 grep 。 下面我就给大家介绍 5 个常用的命令行搜索工具。如果你不喜欢使用编辑器或 IDE 来查找代码关键字,那么这几个工具将对你十分有帮助。 这 5 个工具有些仅适用于类 Unix 系统,但也有一些是跨平台的搜索速度非常快的工具。 grep 使用 grep 的优势是它几乎可以在任意类 Unix 系统上使用。这个命令的强大之处我相信大家都有所耳闻了。下面我给大家介绍几个我最常使用 grep 命令的几种方...阅读全文

博文 2020-05-15 19:32:46 良许Linux

gitbook 入门教程之自定义不一样的多语言首页插件

自定义多语言主页 中文 | English ???? 主页 Github : https://snowdreams1006.github.io/gitbook-plugin-multilingual-index/ GitLab : https://snowdreams1006.gitlab.io/gitbook-plugin-multilingual-index/ Gitee : https://snowdreams1006.gitee.io/gitbook-plugin-multilingual-index/ 屏幕截图 用法 步骤#1 - 更新 book.json 文件 在您的gitbook的 book.json 文件中,将 multilingual-index 添加到 plugins 列...阅读全文

博文 2019-12-11 17:32:46 雪之梦技术驿站

兄弟连区块链教程btcpool矿池源码分析nmcauxmaker模块解析

btcpool矿池-nmcauxmaker模块解析 nmcauxmaker命令使用 nmcauxmaker -c nmcauxmaker.cfg -l log_nmcauxmaker #-c指定nmcauxmaker配置文件 #-l指定日志目录 nmcauxmaker.cfg配置文件 nmcauxmaker = { //rpc调用间隔(秒) rpcinterval = 10; //最近一次rpc调用时间写入文件 file_last_rpc_call_time = "/work/xxx/nmcauxmaker_lastrpccalltime.txt"; //启动时是否检查zmq is_check_zmq = true; //nmc支付地址 payout_address = "N59bssPo1...阅读全文

博文 2018-10-16 15:34:52 兄弟连区块链培训

请问怎么解决包路径的问题

我用go get的github包安装在了我工程目录下的pkg文件夹里,但是我执行go run的时候他报这个错: ![1.png](https://static.studygolang.com/180216/a7d1ed6b1f992231e73c186449548edd.png) 但是这个包是在我的工程目录下,不是在/usr/lib/go-1.6/pkg下, ![2.png](https://static.studygolang.com/180216/a80e526dc00b953f9f14231588f9adf8.png) 这是我的go环境,go path是当前工程: ![Screenshot from 2018-02-15 19-05-18.png](https...阅读全文

ELK学习笔记

ELK 官方网站:https://www.elastic.co/products 相关概念: Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。 Logstash :数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。 Kibana :可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数...阅读全文

博文 2020-04-09 00:32:51 Gukson666

进程管理工具 Supervisor

要想在终端后台常驻进程,首先想到的是在命令后加 & 符号,来达到隐藏程序在后台的目的,尽管看起来进程已经在后台运行了,实际上终端会话关闭时进程还是会被 kill 掉,这种问题一般是采用搭配 nohup 命令来解决的,nohup 作用是忽略 SIGHUP 信号,而会话关闭时正好发送了该信号给会话内所有运行程序,简而言之,nohup 命令搭配 & 不仅可以在后台运行,还不受会话关闭的影响。 $ nohup /bin/cat & 那么问题来了,虽然做到了后台运行,也避免了挂断操作带来的影响,但是它避免不了常驻进程自己出现问题,一旦它因自身异常终止了进程,这对黄金搭档就无力回天了。那怎么才能把挂了的常驻进程拉起来呢?这就是我们要讲的主题 Supervisor。 Supervisor 介绍 Super...阅读全文

Kubernetes笔记(2)—— 编译时的workspace

编译k8s代码时,会在k8s根目录下生成一个_output文件夹,同时这个文件夹下还包含local文件夹: ~/kubernetes/_output/local$ ls bin go go文件夹下就是一个标准的Go语言workspace: :~/kubernetes/_output/local/go$ ls -alt total 20 drwxrwxr-x 4 nan nan 4096 Dec 9 22:09 .. drwxrwxr-x 2 nan nan 4096 Dec 9 22:09 bin drwxrwxr-x 4 nan nan 4096 Dec 9 22:08 pkg drwxrwxr-x 5 nan nan 4096 Dec 9 22:07 . drwxrwxr-x 3 nan...阅读全文

博文 2017-06-24 19:20:47 肖楠

golang 产生文件的cksum值

golang 产生文件的cksum值 例子产生文件的cksum串,SHA1,SHA256,以及MD5,其他的也类似 package main import ( "fmt" "io" "log" "os" "encoding/hex" "crypto/md5" "crypto/sha1" "crypto/sha256" ) func main() { hash_file_md5("file.txt") hash_file_shaX("file.txt") } func hash_file_shaX(filePath string) error { f, err := os.Open(filePath) if err != nil { log.Fatal(err) } defer f.Close...阅读全文

博文 2019-10-11 02:32:41 aside section ._1OhGeD

InfluxDB源码修改,GO语言的一个小问题,config.go的使用

各位大神,请问有没有研究过influxdb源码的? 有个GO语言的小问题想请教一下,我是写Java的,GO语言基础了解一些: 我想在源码中添加一个配置选项,比如说,增加一个配置“写入数据时,在控制台打印一句话”,配置文件里面,我新增这样两行: 向源码中**influxdb\etc\config.sample.toml**文件中添加 ``` [write_my] enable = true word = "xxx" ``` 然后新建一个目录influxdb/write_my,新建文件config.go和logger.go。 config.go参考influxdb/services/httpd/config.go logger参考influxdb/s...阅读全文

【golang系统编程】打开文件使用的flags参数

这篇主要是关于参数的笔记,没什么干货 open的flags主要分为一下几种 t1:文件访问模式标志,不能同时使用只能指定其中一种 t2:文件创建标志 t3:已打开文件的状态标志 标志 用途 统一UNIX规范版本 类型 O_RDONLY 以只读方式打开 v3 t1 O_WRONLY 以只写方式打开 v3 t1 O_RDWR 以读写方式打开 v3 t1 O_CLOEXEC 设置close-on-exec标志 v4 t2 O_CREAT 若文件不存在则创建之 v3 t2 O_DIRECT 无缓冲的输入/输出 t2 O_DIRECTORY 如果pathname不是文件夹,则失败 v4 t2 O_EXCL 结合O_CREAT参数使用,专门用于创建文件 v3 t2 O_LARGEFILE 在32位系统使...阅读全文

博文 2019-12-15 07:32:38 geange

Go程序编译简介

Go语言安装包自带的编译器是gc。针对不同的硬件平台,Go分别提供了一组编译工具包:比如,6a,6c,6g和6l就是针对X86-64平台(5*是ARM,8*是X86)。此外gcc还有一个支持Go语言的前端:gccgo。因此如果gc不支持你当前的平台,可以尝试用gcc。 go build命令默认会使用gc编译器。假设当前目录为goEx,在这个目录下创建hello.go: package main import "fmt" func main() { fmt.Println("Hello, world!") } 在当前目录下执行go build命令: [root@Fedora goEx]# ls hello.go [root@Fedora goEx]# go build [root@Fedora...阅读全文

Kafka存储机制是怎样的?

kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment。 所谓的分区其实就是在kafka对应存储目录下创建的文件夹,文件夹的名字是主题名加上分区编号,编号从0开始。 **一、segment** 所谓的segment其实就是在分区对应的文件夹下产生的文件。 一个分区会被划分成大小相等的若干segment,这样一方面保证了分区的数据被划分到多个文件中保证不会产生体积过大的文件;另一方面可以基于这些segment文件进行历史数据的删除,提高效率。 一个segment又由一个.log和一个.index文件组成。 **1..log** .log文件为数据文件用来存放数据分段数据。 **2..in...阅读全文

在IntelliJ IDEA14中安装go语言插件

在IntelliJ IDEA14中安装go语言插件 虽然本人按照此文的步骤进行安装,失败了。 但是,想收藏此文。 在IntelliJ IDEA14中安装go语言插件 go语言的集成开发环境仍不成熟,试用了liteide,感觉很不适应,弹出菜单对程序员的干扰太大。所以就试大牌的IntelliJ IDEA,这工具本来是JAVA开发阵营的,不过它已经变为一个非常强大的支持多种语言的集成环境了。 1、go环境 下载Go1.5.1(由于国内伟大的墙,golang.org访问被墙,搞点技术真是不易,从Golang中国的的百度云盘下载是不错的选择,http://pan.baidu.com/s/1hq1mrDM),安装很方便,直接解压到c:\go目录中即可。系统PATH环境变量中加上c:\go\bin。 2...阅读全文

博文 2016-09-04 17:00:19 lsm135

Go语言实践技巧(2)——package定义和初始化

(1)一个文件夹下的所有文件必须属于同一个package,一个好的规则是package和文件夹名字相同。此外,要注意import语句所指定的是寻找package的path,而不是package的名字。关于这个话题讨论,请参见Is the package name must same with name folder name?。 另外,要注意import的语法(参考这里): import packagename importpath 举例如下: Import declaration Local name of Sin import "lib/math" math.Sin import m "lib/math" m.Sin import . "lib/math" Sin 在第二种情况下,m是p...阅读全文

博文 2017-06-24 19:16:50 肖楠

EMQ百万级MQTT消息服务(TLS Docker Golang)

在这里插入图片描述 附上: 喵了个咪的博客:w-blog.cn EMQ官方地址:http://emqtt.com/ EMQ中文文档:http://emqtt.com/docs/v2/guide.html 1.TLS证书验证 为了保障安全.我们常常会使用HTTPS来保障请求不被篡改,作为MQTT使用TLS加密的方式来保障传输安全 EMQ默认使用的TLS加密的端口是8883端口,默认证书在EMQ目录下etc/certs: 对应的配置文件在emq.conf中,可以修改你的端口和配置文件路径 listener.ssl.external = 8883 listener.ssl.external.keyfile = etc/certs/key.pem listener.ssl.external.cert...阅读全文

博文 2020-02-25 22:33:25 文振熙

1.Go语言开发环境搭建

打开https://golang.google.cn/dl/这个网站,选择对应系统的安装包 Mac系统: 1、首先复制/private/etc/hosts这个文件到桌面 2、打开命令行 执行如下命令cd ~、open .bash_profile 3、添加export GOROOT=/usr/local/go到export PATH=$PATH前面 4、然后将:$GOROOT/bin添加至export PATH=$PATH的末尾,完成如下图 5、在命令行执行go env命令,如果安装成功会出现下图 使用IntelliJ IDEA开发Go 1、下载并安装IntelliJ IDEA 2、打开Preferences,选择Plugins,点击Install JetBrains plugin...,在搜...阅读全文

golang学习之闭包

匿名函数不能够独立存在,但可以被赋值于某个变量,即保存函数的地址到变量中:fplus := func(x, y int) int { return x + y },然后通过变量名对函数进行调用:fplus(3,4)。 当然,也可以直接对匿名函数进行调用:func(x, y int) int { return x + y } (3, 4)。 func() { sum = 0.0 for i := 1; i <= 1e6; i++ { sum += i } }() 表示参数列表的第一对括号必须紧挨着关键字 func,因为匿名函数没有名称。花括号 {} 涵盖着函数体,最后的一对括号表示对该匿名函数的调用。 使用defer结合匿名函数(闭包)修改方法返回值: package main import ...阅读全文

博文 2016-11-08 13:00:16 caiyezi