![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
实例
文章平均质量分 62
Man-Li
漫鸽网络
展开
-
基于golang多消息队列中间件的封装nsq,rabbitmq,kafka
golang的接口是一种抽象类型,是对其他类型行为的概括与抽象,从语法角度来看,接口是一组方法定义的集合,文本的封装使用了golang接口这一特性,把所有的消息队列中间件抽象为一个MQer拥有生产和消费两个方法,具体的各个消息队列中间件去实现这两个方法即可,最明显的优点在于扩展性,解耦性,选择性,维护性这几个表象上。原创 2023-08-03 10:15:58 · 1565 阅读 · 0 评论 -
docker config.json: no space left on device: unknown 解决方案
dump文件一般是程序或者系统用于缓存内存内容的临时文件,如果不需要,是可以删除的。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如WinDbg。今天打包push程序遇到了 docker config.json: no space left on device: unknown这个问题,经过研究整理了解决方案。遇到 /usr/bin/rm: 参数列表过长 怎么解决?ulimit -s 指定栈上的内存上限,单位为KB。这个问题是由与 /run 的空间使用完了。原创 2023-05-12 10:15:18 · 287 阅读 · 0 评论 -
使用redis做分布式锁
运行结果如果突然服务器宕机,那么必然造成锁无法释放,即造成死锁?解决方案:设置超时时间。加锁和设置超时时间中间引起服务器宕机,则一样会导致死锁。解决方案:原子性操作,即同时加锁和设置超时时间;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-14Tju5bW-1670470670608)(http://mange1.oss-cn-beijing.aliyuncs.com/test/a8ea5c06b619cb643a891497b15aee86.png#pic_center原创 2022-12-08 11:39:15 · 359 阅读 · 0 评论 -
grpc拦截器实践
grpc提供了拦截器,可以使用拦截器开发grpc中间件,实现各种中间功能。 比如: 日志采集,认证 等Server端核心方法: streamInterceptorClient端核心方法: unaryInterceptorcc.GetState()以下方法可以获取客户端地址完整实例代码地址:https://github.com/mangenotwork/man/tree/master/core/grpc_1原创 2022-12-08 11:36:40 · 323 阅读 · 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 · 499 阅读 · 0 评论 -
grpc流模式的实例
grpc中的stream,srteam顾名思义就是一种流,可以源源不断的推送数据,或者服务端和客户端长时间数据交互。Server端实现Client端实现最后可以在实际业务中灵活使用,根据漫哥的经验可以按照需求进行设计数据在各个子服务中的流向;原创 2022-12-08 11:32:08 · 716 阅读 · 0 评论 -
linux下使用imagemagick将PDF拆分为图片
使用: convert -density 250 -quality 100 河北省2021年历史组合分数分布统计.pdf hb_nishi.jpgdensity 200 : 图像每英寸面积内的像素点数,数值越高图片质量越高quality 100 : 这个为转换图片时的压缩率,0-100之间原创 2022-12-08 11:30:50 · 380 阅读 · 0 评论 -
实现端口扫描
创建tcp客户端然后与目标地址的每个端口建立连接,如果能连接成功说明目标地址此端口已经被打开。结果原创 2022-12-06 16:00:16 · 350 阅读 · 0 评论 -
grpc python的使用与golang交互
grpc python的使用与golang交互使用:新建一个 msg.proto 文件。生成接口代码就会看到两个py文件: 和 python 创建客户端与golang交互python 可以通过grpc与golang交互, 推拉数据; 注意的是需要维护好 proto文件;原创 2022-12-06 15:58:54 · 196 阅读 · 0 评论 -
golang操作ES
目前golang操作elasticsearch的第三方包中最流行的是:https://github.com/olivere/elastic7.x 7.0 github.com/olivere/elastic/v76.x 6.0 github.com/olivere/elastic5.x 5.0 gopkg.in/olivere/elastic.v5例如:ES版本是7.0以后的版本,就使用github.com/olivere/elastic/v7这个包地址。原创 2022-12-06 15:55:15 · 1181 阅读 · 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 · 493 阅读 · 0 评论 -
solr安裝實踐
Solr 是一个独立的企业搜索服务器,具有类似 REST 的 API。您可以通过 JSON、XML、CSV 或 HTTP 上的二进制文件将文档放入其中(称为“索引”)。您通过 HTTP GET 查询它并接收 JSON、XML、CSV 或二进制结果。https://solr.apache.org/features.htmlhttps://solr.apache.org/guide/solr/latest/getting-started/introduction.html啓動鏡像下載中文分詞 ik原创 2022-12-06 15:44:42 · 212 阅读 · 0 评论 -
golang 固定顺序map
golang的map是无序的,但有些业务场景需要有序的map来实现需求用一个切片来记录key的顺序测试总结我的开源库 https://github.com/mangenotwork/gathertool 有大量的业务实现方案,感兴趣的可以去看看,可以与我沟通和交流学习原创 2022-12-06 15:42:16 · 827 阅读 · 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 · 2152 阅读 · 0 评论 -
基于golang的Json选择器
json 例子:如上面的json,要选择出future的第一个的date的值,输出: 2022/07/29 10:23:08 2021-10-25 < nil >输出原创 2022-12-06 15:27:35 · 396 阅读 · 0 评论 -
raft算法练习-模拟三节点的分布式选举
Raft是一个用于管理日志一致性的协议。它将分布式一致性分解为多个子问题:Leader选举(Leader election)、日志复制(Log replication)、安全性(Safety)、日志压缩(Log compaction)等。同时,Raft算法使用了更强的假设来减少了需要考虑的状态,使之变的易于理解和实现。Raft将系统中的角色分为领导者(Leader)、跟从者(Follower)和候选者(Candidate):Leader:接受客户端请求,并向Follower同步请求日志,当日志同步到大多数节原创 2022-12-06 15:14:45 · 267 阅读 · 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 · 311 阅读 · 0 评论 -
golang爬虫练习-抓取行业信息分类
gathertoolgathertool是golang脚本化开发库,目的是提高对应场景程序开发的效率;轻量级爬虫库,接口测试&压力测试库,DB操作库等。地址:下载: go get github.com/mangenotwork/gathertool库文档:使用gathertool能很规范化抓取程序的编写,提供配置,请求,提取,保存;特别是提取,使用 gt.GetPointClassHTML 快速定位到数据Dom范围,再使用gt.RegHtmlATxt获取到具体数据;原创 2022-11-22 09:57:47 · 327 阅读 · 0 评论 -
使用ETCD实现注册服务
利用ETCD实现注册服务转载 2022-06-29 11:40:37 · 841 阅读 · 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 · 1283 阅读 · 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 · 673 阅读 · 0 评论 -
golang实现前缀数实现匹配路由和获取路由参数
前缀树又称单词查找树,字典树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。需求定义使用前缀树 匹配路由提取路由上的参数规则: 定义路由/v1/{a},其中a就是参数名,请求路由/v1/123,那么a=123可以定义多个参数, 如: 定义路由/v1/{a}/{b}/{c},其中就有 a,原创 2021-09-28 18:13:35 · 1334 阅读 · 0 评论 -
ManGe总结的常用js方法
字符串操作length 属性返回字符串的长度; str.length;indexOf() 方法返回字符串中指定文本首次出现的索引(位置); str.indexOf(“China”);lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引; str.lastIndexOf(“China”);search() 方法搜索特定值的字符串,并返回匹配的位置; str.search(“locate”);slice() 提取字符串的某个部分并在新字符串中返回被提取的部分; str.slice原创 2021-08-04 11:20:54 · 201 阅读 · 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 · 1039 阅读 · 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 · 1295 阅读 · 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 · 1298 阅读 · 0 评论 -
爬虫简单实例-爬取拼多多商品信息
接口https://youhui.pinduoduo.com/goods/goods-detail?goodsId=商品信息ID思路通过遍历商品信息ID来获取商品的信息, 1 ~ 99999999999然后使用多线程或多进程进行抓取优点 : 无反爬,实现简单缺点 : 效率慢,资源损耗大,时间长效果实现#!/usr/bin/env python# -*- co...原创 2019-11-07 15:49:28 · 34350 阅读 · 14 评论 -
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 · 918 阅读 · 0 评论 -
关于代理
4种代理这4种代理,主要是在代理服务器端的配置不同,导致其向目标地址发送请求时,REMOTE_ADDR, HTTP_VIA,HTTP_X_FORWARDED_FOR三个变量不同。1、透明代理(Transparent Proxy)REMOTE_ADDR = Proxy IPHTTP_VIA = Proxy IPHTTP_X_FORWARDED_FOR = Your IP透明代理虽然可以直...原创 2019-10-17 18:24:59 · 372 阅读 · 0 评论 -
python封装常用文件操作功能提升工作效率
直接上源码#!/usr/bin/env python# -*- coding=utf-8 -*-__author__ = 'man' import osimport sysimport timeimport jsonimport shutilimport configparserclass Man_File_handle(): ''' 对文件操作的类; @ ...原创 2019-09-19 15:41:19 · 728 阅读 · 0 评论 -
开发H5游戏练手, 黑暗堡垒-炼狱传奇H5 (三) 玩家信息,背包,商店,技能,任务,玩家菜单,游戏菜单,NPC对话与攻击怪物
项目地址https://github.com/mangenotwork/HABL-H5基于 lufylegend 开发lufylegend 框架官网 : http://www.lufylegend.com/lufylegend是一个兼容性极高,功能极多,使用方便的HTML5游戏引擎。玩家信息//玩家信息 json数据var user_info_data = { //玩家物...原创 2019-09-18 17:08:08 · 543 阅读 · 0 评论 -
开发H5游戏练手, 黑暗堡垒-炼狱传奇H5 (二) 游戏界面-地图与角色
项目地址https://github.com/mangenotwork/HABL-H5基于 lufylegend 开发lufylegend 框架官网 : http://www.lufylegend.com/lufylegend是一个兼容性极高,功能极多,使用方便的HTML5游戏引擎。游戏地图var script = { stage01:{ // 添加角色信息 add:...原创 2019-09-18 16:19:24 · 605 阅读 · 0 评论 -
漫鸽爬虫实例 - 采集信用中国的数据
效果图简述1. 需要用到 requests 库。2. 利用多进程同步爬取,multiprocessing库。3. 需要对目标网站做接口分析,找到读取数据的接口。4. 获取到的数据可以利用正则清洗。5. 采集的数据保存到csv.>code# -*- coding=utf-8 -*-__author__ = 'ManGe' ''' 信用中国 四...原创 2019-08-08 10:04:16 · 1011 阅读 · 0 评论