-
golang学习笔记之yaml文件处理
所属栏目:[大数据] 日期:2020-12-16 热度:91
golang可以通过Unmarshal和Marshal函数处理json数据,当前如果你是yaml文件也可以解析,毕竟yaml和json只是不同的数据格式。先看例子: package main import ( "fmt" "log" "gopkg.in/yaml.v2" ) var data = ` a: Easy! b: c: 2 d: [3,4] ` type T struct {[详细]
-
对 echo 框架进行统一的自定义错误处理
所属栏目:[大数据] 日期:2020-12-16 热度:112
借助移动端的增长,如今 RESTful 风格的 API 已经十分流行, 用各种语言去写后端 API 都有很成熟方便的方案,用 golang 写后端 API 更是生产力的代表, 你可以用不输 python/ruby 这类动态语言的速度,写出性能高出一两个数量级的后端 API 。 ECHO 框架 由于[详细]
-
对golang多核编程的一点了解
所属栏目:[大数据] 日期:2020-12-16 热度:128
/*1、本博客的原创文章,都是本人平时学习所做的笔记,禁止转载,谢谢合作。2、本博客的文章,未注明原创的,转载自其它博客或网站,作为自己的参考资料,感谢这些文章的原创人员。3、如有侵犯您的知识产权和版权问题,请通知本人,本人会即时做出处理删除文[详细]
-
golang学习笔记之手写一个执行器
所属栏目:[大数据] 日期:2020-12-16 热度:66
之前介绍过一个多协程的Parallelize,允许多个协程并发执行任务的函数,今天手写一个控制能力更强的的ruuner,初步实现单个协程处理,后续将继续改进为多协程处理: package runner import ( "errors" "os" "os/signal" "time" ) type Runner struct { // in[详细]
-
golang 语言学习
所属栏目:[大数据] 日期:2020-12-16 热度:107
http://studygolang.com/resources/cat/3 golang 中文网链接地址:点击打开链接 golang 学习地址:点击打开链接[详细]
-
golang 实现 iOS http2 推送 Apns通知
所属栏目:[大数据] 日期:2020-12-16 热度:171
由于要用到viop和远程推送通知 并使用go作为后台语言 就找到了开源的 https://github.com/RobotsAndPencils/buford 作为代码使用,但是 发现 这个开源代码在 生产环境下 无法推送消息 一直提示 : the Topic header of the request was not specified and was[详细]
-
golang 一行一行读文件
所属栏目:[大数据] 日期:2020-12-16 热度:73
package mainimport ( "bufio" "fmt" "os")func main() { counts := make(map[string]int) files := os.Args[1:] if len(files) == 0 { countLines(os.Stdin,counts) } else { for _,arg := range files { f,err := os.Open(arg) if err != nil { fmt.Fprint[详细]
-
Golang- import 导入包的语法
所属栏目:[大数据] 日期:2020-12-16 热度:126
一 包的导入语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用 fmt.Println("hello world") 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,当然Go[详细]
-
设置GoLang命令行开发环境和编译环境
所属栏目:[大数据] 日期:2020-12-16 热度:117
设置GoLang命令行开发环境和编译环境 示例项目目录:─ LpaicheDaemon│ ├── bin│ ├── pkg│ └── src│ ├── git .apache .org │ ├── github .com │ ├── golang .org │ ├── gopkg .in │ └── lpaiche .com │ ├── autobidding[详细]
-
Golang gRPC实践 连载二 Hello gRPC
所属栏目:[大数据] 日期:2020-12-16 热度:70
Hello gRPC 按照惯例,这里从一个Hello项目开始,本项目定义了一个Hello Service,客户端发送包含字符串名字的请求,服务端返回Hello消息。 流程: 编写 .proto 描述文件 编译生成 .pb.go 文件 服务端实现约定的接口并提供服务 客户端按照约定调用方法请求服[详细]
-
Golang gRPC实践 连载四 gRPC认证
所属栏目:[大数据] 日期:2020-12-16 热度:74
gRPC 默认提供了两种认证方式: 基于SSL/TLS认证方式 远程调用认证方式 两种方式可以混合使用 TLS认证示例 这里直接扩展hello项目,实现TLS认证机制 首先需要准备证书,在hello目录新建keys目录用于存放证书文件。 证书制作 制作私钥 (.key) # Key considera[详细]
-
Golang gRPC实践 连载五 拦截器 Interceptor
所属栏目:[大数据] 日期:2020-12-16 热度:51
Interceptor grpc服务端提供了interceptor功能,可以在服务端接收到请求时优先对请求中的数据做一些处理后再转交给指定的服务处理并响应,功能类似middleware,很适合在这里处理验证、日志等流程。 在自定义Token认证的示例中,认证信息是由每个服务中的方法[详细]
-
Golang gRPC实践 连载六 内置Trace
所属栏目:[大数据] 日期:2020-12-16 热度:146
内置Trace grpc默认提供了客户端和服务端的trace日志,可惜没有提供自定义接口,当前只能查看基本的事件日志和请求日志,对于基本的请求状态查看也是很有帮助的,客户端与服务端基本一致,这里已服务端开启trace为例,修改hello项目的server代码: server/ma[详细]
-
Golang gRPC实践 连载七 HTTP协议转换
所属栏目:[大数据] 日期:2020-12-16 热度:67
gRPC HTTP协议转换 正当有这个需求的时候,就看到了这个实现姿势。源自coreos的一篇博客,转载到了grpc官方博客gRPC with REST and Open APIs。 etcd3改用grpc后为了兼容原来的api,同时要提供http/json方式的API,为了满足这个需求,要么开发两套API,要么[详细]
-
Go语言实现telnet远程登录
所属栏目:[大数据] 日期:2020-12-16 热度:167
1、目前的linux服务器默认都未安装telnet服务,如需在linux服务器(如CentOS7)上安装telnet服务,可参考: http://www.centoscn.com/image-text/install/2015/0101/4402.html 2、telnet-server默认监听的端口号为23 3、默认情况下,linux不允许root用户以te[详细]
-
twitter 雪花算法 golang 实现
所属栏目:[大数据] 日期:2020-12-16 热度:132
package snowflake // twitter 雪花算法 // 把时间戳,工作机器ID,序列号组合成一个 64位 int // 第一位置零,[2,42]这41位存放时间戳,[43,52]这10位存放机器id,[53,64]最后12位存放序列号 import "time" var ( machineID int64 // 机器 id 占10位,十进制范围是[详细]
-
阅读go项目源码,解决无法快速找到interface有哪些struct实现问
所属栏目:[大数据] 日期:2020-12-16 热度:150
阅读go项目源码时,不方便知道interface有哪些struct实现,很不方便。 list-interfaces这个工具,用来分析go项目源码,帮你快速找出interface有哪些struct实现。 list-interfaces使用 list-interfaces --codedir /appdev/gopath/src/github.com/contiv/netpl[详细]
-
Golang RPC性能测试
所属栏目:[大数据] 日期:2020-12-16 热度:78
最近刚好要使用Golang的RPC,因此对Golang标准库的RPC进行了一下测试,看看其性能到底如何。RPC服务端和客户端的实现完全使用RPC的 net/rpc 标准库,没有经过特殊的优化,主要针对下面三个场景进行测试。测试之前需要先说明一下,Go的rpc连接是支持并发请求[详细]
-
golang string 和 int 的互相转换
所属栏目:[大数据] 日期:2020-12-16 热度:55
string 转 int 要 import strconv import ( "fmt" "strconv" ) func test(x int ,y string ) string { var res string //strconv.Itoa 就是将 int 类型 转成 stirng res = strconv.Itoa(x) + y return res} int 转成 string func test2(x int ,y string ) in[详细]
-
golang各类平台的源码下载
所属栏目:[大数据] 日期:2020-12-16 热度:128
http://www.golangtc.com/download[详细]
-
golang起一个http服务
所属栏目:[大数据] 日期:2020-12-16 热度:111
golang中开发http服务,可以用net/http包提供的功能。 package main import ( "fmt" "log" "net/http") // w表示response对象,返回给客户端的内容都在对象里处理// r表示客户端请求对象,包含了请求头,请求参数等等func index(w http.ResponseWriter,r *ht[详细]
-
Golang1.8获取Windows硬件信息小实例.
所属栏目:[大数据] 日期:2020-12-16 热度:152
package main import ( "fmt" "net" "runtime" "strings" "syscall" "time" "unsafe" "github.com/StackExchange/wmi" ) var ( advapi = syscall.NewLazyDLL( "Advapi32.dll" ) kernel = syscall.NewLazyDLL( "Kernel32.dll" )) func main() { fmt.Printf( "[详细]
-
OPQ - 开源持久化消息队列
所属栏目:[大数据] 日期:2020-12-16 热度:183
OPQ An Open sourced Persistent message Queue Code is tested under go1.4.2,higher version should be OK (CAUTION: OPQ hasn't been tested in production environment so far) Features persistent message storage push model - push message to targe[详细]
-
Sharing Golang packages to C and Go
所属栏目:[大数据] 日期:2020-12-16 热度:156
Sharing Golang packages to C and Go Sun,Aug 23,2015 programming languagestutorial The latestGo 1.5version is out. As part of thenew features, Go compiler can compile packages as a shared libraries. It accepts -buildmode argument that deter[详细]
-
golang 启动流程
所属栏目:[大数据] 日期:2020-12-16 热度:120
找到启动函数 在linux使用objdump反汇编可以看到golang编译的exe的启动代码 首先使用objdump -f exe 可以看到 start address 0x0808c760 然后使用objdump -d exe t.asm 打开t.asm文件查找上面的start address 可以看到入口函数是_rt0_386_linux 入口函数分析[详细]
