![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
文章平均质量分 58
Man-Li
漫鸽网络
展开
-
基于golang多消息队列中间件的封装nsq,rabbitmq,kafka
golang的接口是一种抽象类型,是对其他类型行为的概括与抽象,从语法角度来看,接口是一组方法定义的集合,文本的封装使用了golang接口这一特性,把所有的消息队列中间件抽象为一个MQer拥有生产和消费两个方法,具体的各个消息队列中间件去实现这两个方法即可,最明显的优点在于扩展性,解耦性,选择性,维护性这几个表象上。原创 2023-08-03 10:15:58 · 1542 阅读 · 0 评论 -
《gathertool开发使用文档》
Date : 2023-03-28Author : ManGeMail : 2912882908@qq.comGithub : https://github.com/mangenotwork/gathertoolgo get github.com/mangenotwork/gathertoolgathertool是一个高度封装工具库,包含了http/s的请求,Mysql数据库方法,数据类型处理方法,数据提取方法,websocket相关方法,TCP|UDP相关方法,NoSql相关方法,开发常用方法等; 可原创 2023-03-31 14:57:19 · 468 阅读 · 0 评论 -
使用redis做分布式锁
运行结果如果突然服务器宕机,那么必然造成锁无法释放,即造成死锁?解决方案:设置超时时间。加锁和设置超时时间中间引起服务器宕机,则一样会导致死锁。解决方案:原子性操作,即同时加锁和设置超时时间;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-14Tju5bW-1670470670608)(http://mange1.oss-cn-beijing.aliyuncs.com/test/a8ea5c06b619cb643a891497b15aee86.png#pic_center原创 2022-12-08 11:39:15 · 356 阅读 · 0 评论 -
grpc拦截器实践
grpc提供了拦截器,可以使用拦截器开发grpc中间件,实现各种中间功能。 比如: 日志采集,认证 等Server端核心方法: streamInterceptorClient端核心方法: unaryInterceptorcc.GetState()以下方法可以获取客户端地址完整实例代码地址:https://github.com/mangenotwork/man/tree/master/core/grpc_1原创 2022-12-08 11:36:40 · 316 阅读 · 0 评论 -
grpc自带负载均衡实例
核心 : “google.golang.org/grpc/resolver”server端client端代码地址https://github.com/mangenotwork/man/tree/master/core/grpc_2原创 2022-12-08 11:34:56 · 498 阅读 · 0 评论 -
grpc流模式的实例
grpc中的stream,srteam顾名思义就是一种流,可以源源不断的推送数据,或者服务端和客户端长时间数据交互。Server端实现Client端实现最后可以在实际业务中灵活使用,根据漫哥的经验可以按照需求进行设计数据在各个子服务中的流向;原创 2022-12-08 11:32:08 · 703 阅读 · 0 评论 -
golang实现html获取指定位置的Dom
核心使用 “golang.org/x/net/html” 的html.Node来实现,先用html.Parse方将html解析为数结构,然后迭代匹配节点;代码在 https://github.com/mangenotwork/gathertool内置了很多实用的实现原创 2022-12-06 15:50:13 · 485 阅读 · 0 评论 -
golang 固定顺序map
golang的map是无序的,但有些业务场景需要有序的map来实现需求用一个切片来记录key的顺序测试总结我的开源库 https://github.com/mangenotwork/gathertool 有大量的业务实现方案,感兴趣的可以去看看,可以与我沟通和交流学习原创 2022-12-06 15:42:16 · 817 阅读 · 0 评论 -
基于golang操作Docker
github.com/docker/dockerhttps://docs.docker.com/engine/api/sdk实例: https://docs.docker.com/engine/api/sdk/examples/在[Service]部分,修改ExecStart参数,在最后增加-H tcp://0.0.0.0:2375查看是否成功 curl http://localhost:2375/version如果不能访问,可能是因为防火墙的原因,所以开放防火墙2357端口Doc原创 2022-12-06 15:39:50 · 2124 阅读 · 0 评论 -
raft算法练习-模拟三节点的分布式选举
Raft是一个用于管理日志一致性的协议。它将分布式一致性分解为多个子问题:Leader选举(Leader election)、日志复制(Log replication)、安全性(Safety)、日志压缩(Log compaction)等。同时,Raft算法使用了更强的假设来减少了需要考虑的状态,使之变的易于理解和实现。Raft将系统中的角色分为领导者(Leader)、跟从者(Follower)和候选者(Candidate):Leader:接受客户端请求,并向Follower同步请求日志,当日志同步到大多数节原创 2022-12-06 15:14:45 · 264 阅读 · 0 评论 -
raft算法练习-UDP通讯进行分布式选举
上一篇文章 “raft算法练习-模拟三节点的分布式选举” ( https://mange.work/blog?id=53 )是基于rpc通讯的,这篇文章将通讯协议改为udp进行实现;UDP的优点:快,比TCP稍安全UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击……UDP的缺点:不可靠,不稳定因为UDP没有TCP那原创 2022-12-06 15:11:11 · 307 阅读 · 0 评论 -
golang爬虫抓取期货数据
golang爬虫抓取期货数据原创 2022-07-08 10:47:32 · 645 阅读 · 0 评论 -
golang爬虫抓取商品报价
golang爬虫抓取商品报价数据原创 2022-07-08 10:04:50 · 313 阅读 · 0 评论 -
使用ETCD实现注册服务
利用ETCD实现注册服务转载 2022-06-29 11:40:37 · 834 阅读 · 0 评论 -
golang爬虫框架 gathertool开发文档
gathertool是基于golang的爬虫框架和接口&压力测试框架,目的是为了提高对应场景的开发效率。原创 2022-06-02 11:17:05 · 399 阅读 · 0 评论 -
使用golang快速搭建socket5代理
快速搭建socket5代理原创 2022-06-02 11:12:13 · 1060 阅读 · 0 评论 -
golang实现http&https代理服务器
golang实现http&https代理服务器效果图:实现package mainimport ( gt "github.com/mangenotwork/gathertool" "log")func main(){ ipt := >.Intercept{ Ip : "0.0.0.0:8111", HttpPackageFunc: func(pack *gt.HttpPackage){ // 查看 ContentType log.Println原创 2022-05-26 15:53:11 · 1275 阅读 · 0 评论 -
基于golang常用加密解码的封装
AES : 高级加密标准;AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特;type AES interface { Encrypt(str, key []byte) ([]byte, error) Decrypt(str, key []byte) ([]byte, error)}DES : 数据加密标准,是一种使用密钥加密的块算法type DES interface { Encrypt(str, key []byte) ([]byte, error.转载 2022-04-07 10:59:48 · 664 阅读 · 0 评论 -
golang实现前缀数实现匹配路由和获取路由参数
前缀树又称单词查找树,字典树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。需求定义使用前缀树 匹配路由提取路由上的参数规则: 定义路由/v1/{a},其中a就是参数名,请求路由/v1/123,那么a=123可以定义多个参数, 如: 定义路由/v1/{a}/{b}/{c},其中就有 a,原创 2021-09-28 18:13:35 · 1322 阅读 · 0 评论 -
基于Golang TCP 开发网络游戏 CLI四川麻将 - 3. 使用grom进行Mysql存储数据
项目地址https://github.com/mangenotwork/CLI-Sichuan-MahjongGromhttps://learnku.com/docs/gorm/v1/connecting_to_the_database/3784封装一下package dbimport ( "fmt" "log" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql")var MysqlDB *go原创 2021-09-14 16:33:58 · 252 阅读 · 0 评论 -
基于Golang TCP 开发网络游戏 CLI四川麻将 - 2.Tcp通讯
项目地址https://github.com/mangenotwork/CLI-Sichuan-Mahjong数据传输结构定义这里使用gob序列化数据// entity.gotype TransfeData struct { Cmd enum.Command // 指令 Timestamp int64 Token string // 识别客户端身份 Data interface{} // 传输的数据 Message string // 传输消息 Code int // 传输code原创 2021-09-10 17:34:26 · 290 阅读 · 0 评论 -
基于Golang TCP 开发网络游戏 CLI四川麻将 - 1.选型与结构定义
项目介绍基于golang tcp 开发的命令行界面网络游戏 四川麻将血战到底;下图是初步效果界面项目地址https://github.com/mangenotwork/CLI-Sichuan-Mahjong选型开发语言 golang通讯协议 TCP项目架构 CSMysql: github.com/jinzhu/gormRedis: github.com/gomodule/redigo/redis项目结构common 公用./common/db/* db方法./原创 2021-09-09 16:58:49 · 554 阅读 · 0 评论 -
golang微博爬虫-无登录获取cookie抓取微博
使用爬虫框架 gathertool框架地址: https://github.com/mangenotwork/gathertool框架下载: go get github.com/mangenotwork/gathertool介绍: 轻量级爬虫,接口测试,压力测试框架, 提高开发对应场景的golang程序。框架文档: https://380949.baklib-free.com/获取cookie步骤请求https://weibo.com F12 Network查看到由 https原创 2021-05-13 20:29:48 · 1519 阅读 · 0 评论 -
golang爬虫 高并发抓取阳光高考招生简章
golang爬虫高并发抓取阳光高考招生简章链接地址一级页面 学校列表https://gaokao.chsi.com.cn/zsgs/zhangcheng/listVerifedZszc–method-index,lb-1,start-0.dhtml二级页 每年的https://gaokao.chsi.com.cn/zsgs/zhangcheng/listZszc–schId-5.dhtml三级页 招生章程内容https://gaokao.chsi.com.cn/zsgs/zhangc原创 2021-04-28 21:16:05 · 1038 阅读 · 1 评论 -
基于golang爬虫框架gathertool快速编写并发抓取国内ip信息
基于golang爬虫框架gathertool快速编写并发抓取国内ip信息gathertool框架地址: https://github.com/mangenotwork/gathertool框架下载: go get github.com/mangenotwork/gathertool介绍: 轻量级爬虫,接口测试,压力测试框架, 提高开发对应场景的golang程序。框架文档: https://github.com/mangenotwork/gathertool/blob/main/READ原创 2021-04-26 20:06:07 · 2004 阅读 · 5 评论 -
开源Redis管理工具: ManGe-Redis
ManGe Redis 工具https://github.com/mangenotwork/mange_redis_manage项目简介ManGe redis 工具是一款redis操作,监控,预警,远程备份等功能集成的工具;该工具属于开发类辅助工具;该工具先选型为B/S架构;交流群QQ(加群下载最新code,与成品)829277568项目技术选型B/SUI框架: EasyUIJS框架: JQ接口框架: go gin数据库: sqlit3缓存: github.com/p原创 2021-01-31 13:36:48 · 603 阅读 · 2 评论 -
基于websocket IM 练手项目 mange_chat
mange_chat 项目地址https://github.com/mangenotwork/mange_chat技术选型websocket: github.com/gorilla/websocket服务端框架: github.com/gin-gonic/ginUI框架 : https://github.com/lihongxun945/jquery-weuiredis存储 : github.com/garyburd/redigo/redis文档:websocket : https原创 2021-01-31 13:06:23 · 237 阅读 · 0 评论 -
golang UUID库总结
github.com/lithammer/shortuuid --> ApXTmAAr3kzdc4amUmbNAEgithub.com/google/uuid --> 84b3a632-3caa-4eda-a38e-90490df4ed4dgithub.com/rs/xid --> bp75p1fffgvhc04llp50github.com/segmentio/ksuid --> 1Y4F8CGcQwckA4Iq02j.原创 2020-12-30 21:00:32 · 1034 阅读 · 0 评论 -
golang利用gco获取windows系统cpu信息
golang利用gco获取windows系统cpu信息效果图原理:细节注意代码关注ManGe分享更多知识效果图原理:调用汇编 cpuid指令调用 windows.h 的 GetSystemTimes细节注意malloc开辟的空间要在使用结束后用free回收,具体写法如下代码代码// 代码出处我的开源项目: https://github.com/mangenotwork/servers-online-manage// 获取windows系统cpu信息与使用率实例package原创 2020-12-29 21:53:26 · 1278 阅读 · 0 评论 -
基于golang实现代理IP抓取实例
依赖库“github.com/imroc/req”“github.com/PuerkitoBio/goquery”参考自己的开源项目https://github.com/mangenotwork/ManGe_IpProxy实例简单,直接上code/* golang 的代理ip采集*/package mainimport ( "fmt" "math/rand" "time" "strings" "regexp" "database/sql"原创 2020-06-10 10:35:10 · 1289 阅读 · 0 评论 -
开源网络云笔记管理系统 ManGe-Notes
描述ManGe-Notes 是一个云笔记管理系统,在线编写笔记,导入导出,文件格式转换等功能;适配PC(v1.0开发), 移动端的H5(v2.0开发),安卓端(v3.0开发);集成知识管理模块,个人博客模块,素材管理模块,收藏网络资源模块。开发环境适应版本 v0.1~v1.0UI框架: layuimarkdown插件 : editor.md后端:go version go1....原创 2020-02-19 21:19:11 · 5287 阅读 · 1 评论 -
golang操作Redis与面向接口编程实现
了解golang接口模式/* 定义接口 */type interface_name interface { method_name1 [return_type] method_name2 [return_type] method_name3 [return_type] ... method_namen [return_type]}/* 定义结构体 */ty...原创 2019-10-24 16:26:56 · 911 阅读 · 0 评论 -
在Windows平台搭建 Golang 的Web开发环境gin框架总结
1.下载golanghttps://studygolang.com/dl打开一路安装;安装完成后会有Go目录2. 配置环境变量 GOPATH 与 GOBIN在系统环境变量设置 GOPATH 与 GOBINGOBIN : 存放可执行文件的目录的绝对路径。GOPATH : 工作区目录的绝对路径。存放远源码的路径。GOROOT : Go语言的安装目录的绝对路径。设置完成后在cm...原创 2019-09-04 18:25:16 · 5465 阅读 · 1 评论