- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 【kafka】Golang的Sarama包手动提交偏移量
Golang的Sarama库中的Consumer Group在消费数据时,默认情况下会自动提交偏移量。Consumer Group中的每个分区消费者在处理完消息后,会自动将偏移量提交到Kafka的__consumer_offsets主题。这样下次消费者启动时,就可以从上次处理过的消息的下一个位置开始消费。但是,你可以根据需要配置Sarama消费者来更改这个自动提交的行为。在Sarama库中,Config结构体中的Consumer.Offsets字段提供了偏移量提交相关的配置选项。
2023-07-18 11:03:20
908
原创 [Golang]缩小build二进制文件方法
项目使用golang进行绘图,该绘图程序需要打包成二进制文件,发送到机器上执行,但是公司的低端机器的内存较小.用最新的go版本,因为新版的go,肯定是优化了打包速度,打包体积,运行速度等多方面,不管怎么说一定比上一个版本要好压缩的程序占用更少的硬盘空间UPX 可以压缩各种类型的可执行文件压缩后的文件可以直接由操作系统执行压缩过程不会修改源文件,也就意味着解压后直接可以得到原始文件不会产生额外的动态库调用,但会在打开时消耗更多的 CPU 资源,在运行时占用更多的内存(或 swap 空间、/tmp 存储
2022-06-10 16:10:07
2578
原创 [Golang]Slice切片
问:切片是什么结构?slice组成slice 由三个部分组成:data:元素存哪里 len:存了多少个元素 cap:可以存多少个元素初始化int切片var ints []int 初始化变量ints,data=nil,len=0,cap=0var ints []int = make([]int,2,5)data 指向第一个元素,长度为2.且都为0,最大容量为5在此基础上append:PS:超出容量的append,会使cap翻倍(具体规则:1.如果扩容前容量翻倍<所需最.
2022-05-11 21:35:40
246
1
原创 【mongo+golang】记录golang链接mongo副本集的一次错误解决方法err: (NotWritablePrimary) not master
mongo开启副本集,golang连接报错:err: (NotWritablePrimary) not masterserver selection error: context canceled, current topology: { Type: ReplicaSetNoPrimary, Servers: [{ Addr: sts-db-mongodb-0.svc-db-mongodb.db.svc.cluster.local:27017, Type: Unknown, Last error: co
2022-04-27 13:51:00
2669
1
原创 [ListNode链表] 翻转链表
翻转链表时间复杂度:O(1)图解:public Node reverseList(Node head){ //初始化prev=null,cur=head Node prev = null; Node cur = head; // while循环,条件,cur=null while(cur != null){ Node temp = cur.next;//记录cur.next
2022-04-05 11:10:58
328
原创 [golang]golang并发编程-协程
协程,也叫gorountinego 语言诞生比较晚,web2.0开发逐渐主流,高并发需求大go 一开始就没有打算让我们去实例化一个线程,而是使用协程多线程 - 每个线程占用的内存比较多 而且系统切换开销比较大轻量化线程 -> 协程,是用户级别的python中有两种编程模式 1.多线程和多进程进行并发编程 2.使用协程进行并发编程func p(){ fmt.Println("bobby")}func main(){ go p()}上述代码就是简单的协程执行结果:什么都.
2022-04-03 22:07:33
718
原创 [Golang] Golang GC(三色标记法)
一、GO 1.3之前的标记删除1.第一步,暂停程序业务逻辑,找出不可达对象,和可达对象2.第二部,开始标记,程序找出它所有的可达对象,并做上标记3.标记完之后,开始清楚未标记对象4,停止暂停,让程序继续跑。然后循环重复这个过程直到process程序生命周期结束标记-清除方法的缺点1.stw(stop the world)让程序暂停,程序出现卡顿2.标记需要扫描整个heap(堆)3.清除数据会产生heap碎片4.并发时,导致先前未被标记的误删除改进1.缩小stw范围,将清除挪出来,先恢复
2022-04-03 10:17:07
4237
2
原创 【算法】相交链表问题go语言解决
题目 leetcode 160.链接 [leetcode160](https://leetcode-cn.com/problems/intersection-of-two-linked-lists/)无论两链表是否相交,只需要将链表LA和链表LB的链尾对齐,然后从后向前依次比较节点是否相同即可。1.从后向前访问的第一节点既不是公共节点则两链表不相交。2.从后向前访问的公共节点中最后访问的公共节点则为两链表相交的第一个节点。但单链表想向前遍历节点有点痴人说梦,但是如果将LA+LB和LB+LA的两
2022-02-23 19:37:04
386
原创 Golang 操作数据库、写入excel
package mainimport ( "bytes" "context" "crypto/hmac" "crypto/sha256" "encoding/hex" "encoding/json" "errors" "flag" "fmt" "io/ioutil" "log" "math/rand" "net/http" "net/url" "strconv" "strings" "time" "github.com/tealeg/xlsx" "go.mong.
2022-01-04 14:00:56
1328
原创 [Golang]switch_case中的fallthrough 关键字
switch - case 语句默认加了 break 语句 switch i { case 0: fmt.Println(0) case 1: fmt.Println(1) case 2: fmt.Println(2) default: fmt.Println(0) }相当于: switch i { case 0: fmt.Println(0) break case 1: fmt.Println(1) break case 2: fmt.Print
2021-07-06 13:49:12
570
原创 [数据库]数据库迁移DEMO
const MongoClient = require('mongodb').MongoClient;const async = require('async');const http = require('http');const https = require("https")const NET_RESPONSE_TIMEOUT = 2000; // Response time out.const NET_RESPONSE_EXCEED_MAX_SIZE = 2001; // Repons
2021-06-30 10:28:30
126
原创 golang日志框架logrus 实战
logrusLogrus 是一个结构化、可插拔的 Go 日志框架,完全兼容官方 log 库接口。功能强大的同时,Logrus具有高度的灵活性,它提供了自定义插件的功能,有 TEXT 与 JSON 两种可选的日志输出格式。1. 地址https://github.com/sirupsen/logrus2. 示例由于是在一个大型已有的大型项目上增加日志框架的,因此需要一个全局的logrus实例,即logger对象来记录项目所有的日志。如:首先,创建一个package,这里我给他起名叫logu:
2021-01-15 15:40:45
1222
原创 [网络安全]中间人攻击
中间人攻击中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。中间人攻击主要有会话劫持、DNS欺骗两种一、会话劫持会话劫持利用了TCP/IP工作原理来设计攻击。TCP会话劫持的攻击方式可以对基于TCP的任何应用发起攻击,如HTTP、FTP、Telnet等。实现流程对于攻击者来说,所必须要做的就是窥探到正在进行
2020-12-08 16:35:31
5232
原创 oauth2.0小记(二)
三、基本授权流程#mermaid-svg-0Fnqf2HuzVbmW8mN .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-0Fnqf2HuzVbmW8mN .label text{fill:#333}#mermaid-svg-0Fnqf2HuzVbmW8mN .node rect,#mermaid-svg-0
2020-10-09 11:07:23
115
原创 oauth2.0小记(一)
OAUTH 2.0一、 OAuth2.0定义的5种角色1.客户端(Client)客户端是 OAuth 服务的接入方,其目的是请求用户存储在资源服务器上的受保护资源,客户端可以移动应用、网页应用,以及电视应用等等。用户代理(User Agent)用户代理是用户参与互联网的工具,一般可以理解为浏览器。资源所有者(Resource Owner)受保护资源所属的实体,比如资源的持有人等,下文的用户即资源所有者。授权服务器(Authorization Server)授权服务器的主要职责是验证资源所有
2020-09-29 16:13:52
586
1
原创 [Node]使用return替代else,处理异步回调问题(二次回调)
下面一段代码片CloudCtl.Instructions2.Clean[logic.instructions.Clean.class].Handler.call(self, userID, deviceID, deviceRealm, dResource, jCtl, extra, (err) => { if (err) { if(jCtl.type == "move"){ Cl.
2020-05-28 09:13:36
308
原创 Golang 数据类型转换(json、struct、map)
Golang 数据类型转换一、struct转json方法一package mainimport ( "encoding/json" "fmt")type Server struct { ServerName string `json:"serverName,string"` ServerIP string `json:"serverIP,omitempty"`}t...
2019-12-10 10:07:44
1465
原创 node
Nodenodejsnodejs对象属性的操作https://www.cnblogs.com/daijing/p/10324528.html
2019-09-02 16:43:21
102
原创 [Java]interrupt()用法
一、源码阅读1 interrupt()Thread#interrupt()的作用其实也不是中断线程,而是通知线程应该中断了,具体来说,当对一个线程调用interrupt() 时:如果线程处于被阻塞状态(例如处于sleep, wait, join 等状态),那么线程将立即退出被阻塞状态,并抛出一个InterruptedException异常,仅此而已。如果线程处于正常活动状态,那么...
2019-07-26 15:34:37
1348
原创 [Intellij IDEA]常用配置记录(Settings)
设置IDEA外观Ctrl+鼠标滚轮调节页面大小鼠标放在类名上一秒后显示介绍效果:自动导包insert import on paste:输入语句后自动导入(ask:询问;all:全部自动;None:从不)Add unambiguous imports on the fly:自动导入不明确的结构Optimize imports on the fly(for corrunt pr...
2019-07-26 13:49:37
616
原创 [java]JAVA中的域——静态域和实例域
java中的域域,英文文档中为field, 也就是我们常说的字段、属性。比如类的字段(属性),局部的,全局的。所谓域,其实是“field”的翻译java中的域分为两类:静态域(一个类中只有一个这样的域)、实例域(每一个对象对于所有的实例域都有自己的一份拷贝)静态域如果将域定义为static,那么每个类中只有一个这样的域。实例域每一个对象对于所有的实例域却都有自己的一份拷贝。例如,假定...
2019-07-24 13:33:32
1064
jQuery-imgFileupload.rar
2019-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人