go
文章平均质量分 97
乃不知有汉
https://download.csdn.net/download/wangshuxuncom/7631369
展开
-
go-micro register 解析
register完成go-micro的服务发现功能。保存broker的发布订阅主题保存server的rpc调用 信息等等源码分析Registrytype Registry interface { Init(...Option) error // 根据选项初始化 Options() Options // 返回所有的选项 Regi...原创 2019-11-08 11:16:07 · 781 阅读 · 0 评论 -
go-micro broker 用法 解析
草稿阶段,持续更新 ...单独使用brokerbroker 可以单独使用,默认是基于 http的broker。 broker 自带了 register(默认是mdns)。 broker.Connect() 后会自动通过resiger找到当前运行的broker。借助 broker ,我们可以很方便的实现 发布,订阅。我们不用关心 broker 服务器 侦听是什么端口,有多少个br...原创 2019-10-30 18:07:46 · 2877 阅读 · 0 评论 -
golang:interface{}类型测试
转发 https://studygolang.com/articles/8198在golang中空的interface即interface{}可以看作任意类型, 即C中的void *.对interface{}进行类型测试有2种语法:1. Comma-ok断言: value, ok = element.(T), 其中T是具体类型.2. Swi...转载 2018-07-24 17:43:44 · 5665 阅读 · 0 评论 -
loraserver 源码解析 (六) lora-app-server
目录 下载源码升级 npm安装一些必要的依赖库pq_trgm extensionrun 调用 handleDataDownPayloads 开启一个Goroutine G1run再调用 startApplicationServerAPI 开启一个Goroutine G2run 又调用 startGatewayPing 开启一个Goroutine G3接下来的s...原创 2018-07-06 21:34:07 · 4801 阅读 · 1 评论 -
go context用法详解
转发自 作者kingeasternsun https://studygolang.com/articles/10155?fr=sidebar本文主要基于官方文档Go Concurrency Patterns: Context以及视频Advanced Go Concurrency Patterns的学习而得。背景在go服务器中,对于每个请求的request都是在单独的goroutine...转载 2018-07-20 17:59:28 · 9155 阅读 · 0 评论 -
go 中嵌入 lua
GOLANG中使用LUA进行扩展嵌入lua后方便做功能扩展package mainimport ( "fmt" "github.com/yuin/gopher-lua")func Double(L *lua.LState) int { lv := L.ToInt(1) /* get argument */ L.Push(lua.LNumber(lv...转载 2018-08-10 11:39:18 · 4556 阅读 · 0 评论 -
go 汇总, cloud.google.com 无法下载 等解决办法
这是一个汇总帖,记录go的一些基础升级到go最新版本export GOPROXY=https://goproxy.io基本就都可以下载了第三方库google 被墙了,很多相关的库都 go get 不下来。可以用下面的方法曲线下载cloud.google.com/go/pubsub对应的github仓库在这里 https://github.com/g...原创 2018-08-07 15:33:13 · 7630 阅读 · 0 评论 -
grpc 和 restfull 共用一个端口
这个端口对外提供grpc服务,同时对外提供http json格式的服务需要使用https, http的话得再开一个端口完整代码如下package mainimport ( "io/ioutil" "crypto/tls" "crypto/x509" "net/http" "context" "strings" "github.com/grpc-e原创 2018-08-30 11:04:44 · 3718 阅读 · 2 评论 -
docker 安装 用法
本文记录 docker 相关知识,以备将来自己查阅卸载我电脑装的是 docker-ce ,所以不能用 remove dockersudo apt-get remove docker-ce安装ubuntu 安装照着上面官网的文档来。设置仓库,然后sudo apt-get updatesudo apt-get install docker-cecentos...原创 2018-12-10 15:30:55 · 597 阅读 · 0 评论 -
nsq 源码笔记 -- nsqlookup
下载go get -u github.com/kr/godepgodep get github.com/bitly/nsq/...如果被墙了,更新到 go 最新版本,我当前是 1.12版本然后修改下 /etc/environment , 加入下面这句,重新登录系统export GOPROXY=https://goproxy.io编译make启动...原创 2019-09-16 00:34:28 · 334 阅读 · 0 评论 -
nsq 源码笔记 -- nsqd
目录主 goroutineG2_TCP 即 nsqd 的tcp 侦听goroutineG2_TCP_SubG处理的命令IDENTIFYSub 消息处理RDY countFIN msgidREQ id timeoutMspqueue.PriorityQueueinFlightPqueueG2_TCP_SubPumpn.queueScanLoop G...原创 2019-09-16 17:53:13 · 416 阅读 · 0 评论 -
zookeeper 介绍 安装 及 简单用法
介绍ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。简单来说zookeeper=文件系统+监听通知机制。Zookeeper入门看这篇就够了安装推荐dockerdock...原创 2019-09-26 10:15:33 · 297 阅读 · 0 评论 -
codis rebalance 算法的理解
rebalance其实就是n个组一起瓜分1024个slot的问题.一个组就是一个 redis 集群, codis 所有的key 都被hash到 1024 个 slot 上集群分到的slot 越多, 保管的key就越多, 负载就越重rebalance 尽量让每个集群的负载均衡如果是重新分配的话,尽可能减少迁移的slot举例刚开始运行的时候,开了个2 redis组, 组1 {0,...原创 2019-10-11 12:19:48 · 816 阅读 · 0 评论 -
loraserver 源码解析 (五) loraserver
loraserver 是 LoRa Wan networkserver (简称 ns)的核心 loraserver 连接 lora-app-server的 grpc 由 asclient 负责asclient 写了个连接池type client struct { client as.ApplicationServerServiceClient clientCo...原创 2018-07-05 09:54:45 · 6385 阅读 · 14 评论 -
loraserver 源码解析 (四) lora-gateway-bridge
lora-gateway-bridge 负责接收 gateway 通过 udp 发送的 packet-forwarder 数据然后通过 MQTT broker 将报文转发给 LoRa Server 安装go get -u github.com/brocaar/lora-gateway-bridge构建后提示缺乏依赖库 ~/go/gopath/src/github....原创 2018-07-04 15:17:16 · 5981 阅读 · 0 评论 -
logrus 安装 使用
安装logrusgo get github.com/sirupsen/logrus无法访问 golang 所以就 先 clone github.com/golang的源码 然后生成cd $GOPATH/src/golang.org/xgit clone https://github.com/golang/crypto.gitgo get -u golang.org/x/cryp...原创 2018-06-20 23:37:51 · 3551 阅读 · 0 评论 -
go redis 客户端 go-redis 和 redigo
安装go get github.com/gomodule/redigo/redis示例package mainimport ( "fmt" "github.com/gomodule/redigo/redis")func main() { c, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { fmt.Prin...原创 2018-06-21 21:47:24 · 3664 阅读 · 0 评论 -
go grpc protobuf restfull api swagger 安装 及 各种用法示例
目录grpc安装安装protobufgo hello 示例如何即提供 grpc 又提供 RESTfull 接口?安装编写proto文件生成rpc对应go文件gw.go运行试试看命令swaggerOpenAPI规范文档已经生成了,通过 swagger-ui 展现运行借助go-bindata 把 swagger 和 json 文件 转换为...原创 2018-06-22 22:35:56 · 8639 阅读 · 5 评论 -
ubuntu 16.04 安装 postgresql 10 并 配置成loraserver需要的
配置仓库Create the file /etc/apt/sources.list.d/pgdg.list and add a line for the repositorydeb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main suwget --quiet -O - https://www.postgresql...原创 2018-06-28 11:05:22 · 2918 阅读 · 2 评论 -
loraserver 源码解析 (二) 运行起来
loraserver 源码解析 (一) 构建已经在build目录下生成了 loraserver 由于缺乏 redis 或 postgresql 或 mqtt broker 会导致无法执行下去本文介绍如何安装部署它们 ubuntu 16.04 安装 最新 redis ubuntu 16.04 安装 postgresql 10 并 配置成loraserver需要的 ...原创 2018-06-29 14:43:49 · 3175 阅读 · 0 评论 -
loraserver 源码解析 (三) 配置
目录 一些主要配置项lora-app-serverloraserver 原理 一些主要配置项(陆续补充中 。。。)lora-app-server# Valid values for sslmode are:## * disable - No SSL# * require - Always SSL (skip verification)# * v...原创 2018-06-29 22:46:16 · 2957 阅读 · 0 评论 -
go 用法
查看文档go doc timego doc hello.HelloReplystringer安装mkdir-p$GOPATH/src/golang.org/xcd$GOPATH/src/golang.org/xgitclonehttps://github.com/golang/tools.gitgoget-ugolang.org/x/to...原创 2018-06-18 19:47:05 · 891 阅读 · 0 评论 -
[Golang] GoConvey测试框架使用指南 转发
点击打开链接GoConvey是一款针对Golang的测试框架,可以管理和运行测试用例,同时提供了丰富的断言函数,并支持很多 Web 界面特性。GoConvey 网站 : http://smartystreets.github.io/goconvey/GoConvey 是个相当不错的 Go 测试工具,支持 go test。可直接在终端窗口和浏览器上使用。特点:直接与 go t...转载 2018-06-19 22:00:05 · 912 阅读 · 0 评论 -
go 线程同步WaitGroup结束示例
WaitGroup用于线程同步,WaitGroup等待一组线程集合完成,才会继续向下执行。示例中 main 等待 job1 job2 job3结束后, wg.Wait 才返回wg.Add(3) 表明要等待3个 goroutines 每调用一次 Done ,减少一个等待的goroutine计数如果我不小心, wg.Add(4), 那么就程序就会永远无法结束如果wg.Add(2) ...原创 2018-07-02 16:34:44 · 811 阅读 · 0 评论 -
loraserver 源码解析 (一) 构建
源码地址loraserver lorawan netserver,和 gateway通信 与app server交互lorawan 它用于lorawan通信数据的序列化 安装golang安装Golang 下载源码go get -u github.com/brocaar/loraservergo get -u github.com/broc...原创 2018-06-27 17:05:13 · 6942 阅读 · 8 评论 -
emacs go 开发环境
gocode+auto-complete搭建emacs的go语言自动补全功能下面是我的配置,写给自己看的(add-to-list 'load-path "/home/wangjunsheng/go/emacs/go-mode")(require 'go-mode)(define-key go-mode-map [(meta ?g)] 'godef-jump)(custom-s...转载 2018-06-27 17:23:48 · 1367 阅读 · 0 评论 -
go-bindata 和 sql-migrate 用法
安装 go-bindata go get -u github.com/jteeuwen/go-bindata/...This package converts any file into managable Go source code. Useful for embedding binary data into a go program. The file data is optionally ...原创 2018-07-03 17:58:33 · 3384 阅读 · 0 评论 -
go react web服务器
照着官方文档 完成 3子棋react 官方指南 构件reactnpm run build程序被构件到了 build 目录下 新建 main.go,利用go-bindata 把 react相关文件打包到一个go文件中//go:generate go-bindata -prefix build -pkg static -o internal/static/stati...原创 2018-07-16 22:09:03 · 2402 阅读 · 0 评论 -
ubuntu 16.04 升级 go 1.15
升级到 1.13.3wget https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz把原先的安装目录mv 到一个新目录(备份下) 再把13.3解压到原先的安装目录即可如果是在原有的基础上升级,都这里已经安装好了,后面的不用看了。下载下载地址:https://golang.google.cn/dl/可以手动下载,...原创 2018-06-12 10:39:40 · 4870 阅读 · 1 评论