随笔分类 - Go
摘要:0x0 前言 项目的消息包发的proto的二进制流,遇到的问题是有个别消息包特别大。这里分享一个分析工具 0x1 golang代码 package util import ( "fmt" "reflect" "github.com/golang/protobuf/proto" ) // // 分析p
阅读全文
摘要:0x0 需求 我们所有的服务启动后都以lease形式注册入ETCD,现要把这些服务监控起来。 0x1 ETCD key监听器实现 可动态增删要监听的键值对 https://github.com/bailu1901/pkg/blob/master/etcd_watcher/watcher.go 0x3
阅读全文
摘要:0x0 前言 最近项目开始使用nats作为消息中间件。 nats的引入确实解决项目很多痛点。 比如: 1)服务动态横向扩展 2)负载均衡(nats的均衡机制只有随机,不过对我们来说也够用了) 3)多服务之间方便快捷的消息通信 0x1 mynats是什么 mynats是对nats.go的一个包装。目的
阅读全文
摘要:0x0 Gin简介 1.Gin 是什么? Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍。如果你需要极好的性能,使用 Gin 吧。 2.Gin相关地址 d
阅读全文
摘要:关于go modules的使用外面的教程实在太多了,我这里只讲下我自己使用的三种情形。 准备工作: 1、新建个文件加gomod_test。 2、在这个目录输入命令 go mod init gomod_test 情形一:比较常见的情况,引用github的包 比方我有如下代码 main.go 直接命令
阅读全文
摘要:0x0 需求 消费Kafka的日志并写入ElasticSearch供查询 0x1 依赖库 golang版Kafka客户端 https://github.com/Shopify/sarama golang版ElasticSearch客户端 https://github.com/elastic/go-e
阅读全文
摘要:记录一个用http.Post的问题
阅读全文
摘要:一、kafka集群搭建 至于kafka是什么我都不多做介绍了,网上写的已经非常详尽了。 (没安装java环境的需要先安装 yum -y install java-1.8.0-openjdk*) 1. 下载zookeeper https://zookeeper.apache.org/releases.
阅读全文
摘要:我的另外一个开源项目,任何建议、指正错误和优化我都非常欢迎 baibaibai_000@163.com 简介 扩展 可以扩展成战斗逻辑用lua编写的战斗验证服务器。这里展示了golang运行多个lua虚拟机,充分利用多核性能的个实现。 可以扩展用grpc做外部的可负载均衡的接口,我这里只简单的实现了
阅读全文
摘要:代码如下,如有问题请联系 baibaibai_000@163.com package work_test import ( "math/rand" "runtime" "sync" "testing" "time" ) // TestWorker // test目的:展示当多个worker同时处理一个通道的任务,被关闭时,通道剩余的任务需要被全部处...
阅读全文
摘要:转自:http://www.cnblogs.com/li-peng/p/8522592.html Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个正在运行中的golang程序,进行调试。 线上golang服务出现问题时,Devle是必不少的在线调
阅读全文
摘要:1、安装GitLab-Runner 1)curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash 2)yum install git
阅读全文
摘要:最新项目需求是要做一个实时排行榜,有积分Score变动就直接影响排行榜,这里讲一种比较高效的实现,欢迎指正。 基本实现原理: 1、排行榜用的数据结构是跳表 SkipList (跳表是一种有序的链表,随机检索、插入和删除的性能非常高,Redis和LevelDB都有采用跳表这种数据结构,是一种空间换时间
阅读全文
摘要:1、加入代码 //version.go 2、Makefile 3、make 4、查看 ./myapp -v
阅读全文
摘要:具体看README吧 https://github.com/bailu1901/lockstepserver
阅读全文
摘要://sevice.go //watch.go
阅读全文
摘要:go的pprof包 go中有pprof包来做代码的性能监控,在两个地方有包: net/http/pprof runtime/pprof 其实net/http/pprof中只是使用runtime/pprof包来进行封装了一下,并在http端口上暴露出来. 本篇只讲如何在web上查看性能。 一、代码部分
阅读全文
摘要:* 注意go build要带上这个标记 -gcflags='-N -l',目的是关闭Go内部做的一些优化,聚合变量和函数内联等优化。 * 或者直接这样运行dlv --listen=:2345 --headless=true --api-version=2 exec ./demo
阅读全文
摘要:菜单栏Tasks->Configure Tasks vscode编译快捷键 ctrl+shitf+b
阅读全文