随笔分类 -  Go

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