- 博客(135)
- 资源 (11)
- 问答 (2)
- 收藏
- 关注
原创 使用openssl m3u8解密 EXT-X-KEY:METHOD=AES-128,URI=xxx
F12步骤自动化脚本#这个预先生成strkey=30613464393634393866656565386165#一共有120个小文件for j in $(seq 0 119)do #echo $j iv=$(printf '%032x' $j) #echo $iv input="./ts/"$j".mp4" output="./output/"$j"_out.mp4" #echo $input #echo $output openssl aes-128-
2020-12-27 10:01:41 21993 5
原创 lua socket客户端 lua string.pack字符串打包
https://www.runoob.com/manual/lua53doc/manual.html#6.4.2<: 设为小端编码>: 设为大端编码=: 大小端遵循本地设置![n]: 将最大对齐数设为 n (默认遵循本地对齐设置)b: 一个有符号字节 (char)B: 一个无符号字节 (char)h: 一个有符号 short (本地大小)H: 一个无符号 short (...
2020-05-06 14:35:39 7914 4
原创 go服务k8s容器化之grpc负载均衡
1.grpc基于HTTP/2实现,HTTP2是长连接的,io多路复用,即在一条tcp连接上可以发起多个rpc请求, 请求通过流id 也就是streamID划分。2.k8s是L4层负载均衡,也就是TCP那层,支持tcp的流量转发,如果是grpc服务部署在k8s,且通过k8s clusterIP访问 就会出现负载不均衡的情况;3.istio-服务网络,支持7层代理,可以解决grpc服务容器化后负载不均的问题,实现L7的负载均衡;
2024-04-16 23:30:44 576
原创 golang 协程题目
都是一个货色,要么使用无缓冲channel, 要么使用有缓冲chan+waitgroup等待协程退出,或者使用全局变量判断是否终止协程。
2024-04-13 15:39:38 368
原创 golang context
作用:用于在go协程中 传递上下文、超时、取消、传值底层实现:是由互斥锁、channel、map来实现的互斥锁:保护临界资源channel: 用于信号通知,比如ctx.Done()map: 保存父ctx下派生的所有子ctx, 父ctx关闭,子ctx都关闭实现的接口。
2024-04-11 18:52:15 245
原创 golang kafka sarama源码分析
1.topic支持多分区,每个分区只能被组内的一个消费者消费,一个消费者可能消费多个分区的数据;2.消费者组重平衡的分区策略,是由消费者自己决定的,具体是从消费者组中选一个作为leader进行分区方案分配;3.每条消息都有一个唯一的offset,kafka保证单个分区的消息有序,因为每个分区的消息是按顺序写入的,消费者是按offset拉取;4.自动提交和手动提交,自动提交是指 sdk 开启了一个协程,**定时自动提交已经标记处理的消息的offset,而不是说拉到消息就自动提交**;手动提交则需要业务代
2024-04-10 18:50:10 642
原创 golang mutex
正常模式(非公平锁):所有阻塞在等待队列的go协程会按顺序获取锁,通常新请求的go协程会更容易获取锁。饥饿模式(公平锁):新请求锁的go协程不会获取锁,而是加入队列尾部阻塞等待。饥饿模式触发条件:当一个go协程等待锁的时间超过1ms。支持并发读,读锁不阻塞读,阻塞写;2.sync.RwMutex读写锁底层实现。2.sync.RwMutex读写锁底层实现。1.sync.Mutex互斥锁底层实现。1.sync.Mutex互斥锁底层实现。锁有两种模式,正常模式和饥饿模式。
2024-04-06 17:58:06 373
原创 golang channel
如果多个goroutinue都监听同一个channel,这个channel被关闭,所有gorountine都能收到退出信号。如果多个goroutinue都监听同一个channel,那么channel的数据被随机一个gorountine读取消费。channel底层是通过循环数组实现的先入先出队列,使用互斥锁保证channel写入和读取数据的线程安全。(1)创建方式不同, 有缓冲的chan会带上缓冲区大小,make(chan type, size)底层使用互斥锁,保证读写channel队列的线程安全。
2024-04-06 15:56:13 492
原创 golang map
底层基于hash表实现,实现有2个结构体hmap,bmap,map由若干个桶存储,每个桶存8个元素,使用链地址解决hash冲突。并不扩大容量,桶的数量保持不变,只是把旧桶的数据重新排列一次,使得同个桶的key排列更紧密,节省空间。当key定位到的桶已经填满8个元素,会创建一个溢出桶,将溢出桶插入当前桶的链表尾部。当桶总数>=2^15 如果溢出桶总数>=2^15 ,则认为溢出桶过多。当桶总数 < 2^15, 如果溢出桶总数>=桶总数,则认为溢出桶过多。如何保证有序,先对key排序,再按key遍历map。
2024-04-06 12:41:13 530
原创 golang 数组和切片
3.如果当前切片的容量大于等于阈值(默认 256),小切片的2倍生长,大切片生长1.25倍;2.如果当前切片的容量小于阈值(默认 256)就会将容量翻倍;1.如果期望容量大于当前容量的两倍就会使用期望容量;2.数组是深拷贝,切片是浅拷贝,切片是引用类型。1.数组长度固定,切片长度可变。扩容规则 不同版本不一样。
2024-04-06 11:23:09 301
原创 golang 结构体比较
2.int string 普通类型,如果变量顺序不一样,则不可比较。1.如果结构体成员包含 map, slice, 不可比较。
2024-04-06 10:42:18 395 1
原创 golang make和new
1.make只能初始化 切片、map、channel 这三种数据类型,new可以初始化任意类型。2.make返回原有数据类型,new返回指针。
2024-04-06 10:25:45 118
原创 golang defer实现
原理:底层通过链表实现,每次新增的defer调用,通过头插法插入链表;defer执行时,从链表头开始遍历,相当于实现了后加入的defer先执行,先加的defer后执行。derfer : 延迟调用,函数结束返回时执行,多个defer按照先进后出的顺序调用。
2024-04-05 19:30:01 444
原创 k8s svc流量转发
访问 10.1.173.212 的流量 转到 KUBE-SVC-GSTOWW43R3XNF3UU 处理。KUBE-SVC-GSTOWW43R3XNF3UU 负载均衡。默认使用iptables。
2024-04-05 18:57:07 576
原创 golang题目 该函数是提供给第三方的并发处理框架,其启动workers个协程并发处理用户的任务, 用户任务的数据被分为总共pieces份,数据被标号为0到pieces-1,doOnePiece是用
该函数是提供给第三方的并发处理框架,其启动workers个协程并发处理用户的任务,用户任务的数据被分为总共pieces份,数据被标号为0到pieces-1,doOnePiece是用户自定义的用于处理一份数据的方法,其接收一个参数piece来指定数据的标号。MyFunction并发的执行用户任务,直到任务数据被全部处理完,或者ctx出现停止信号(ctx.Done()),每个worker同时只能处理一份数据。
2024-03-23 12:33:04 105
原创 383. 赎金信
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。magazine 中的每个字符只能在 ransomNote 中使用一次。如果可以,返回 true;否则返回 false。
2024-03-22 22:11:34 172
原创 centos7配置samba连接win10
win操作:win删除所有samb用户信息net use * /del /ywin下添加网络凭据win+Rcontrol userpasswords2添加samba服务器地址 \\192.168.xx.xx添加samba用户,密码,必须是系统已经存在的用户Linux操作:1.安装sambayum install samba[root@localhost share]# cd /etc/samba/[root@localhost samba]# lslmhosts smb.c
2021-06-12 11:44:02 277
原创 kubectl彩色输出
https://github.com/dty1er/kubecolor步骤:1.git clone https://github.com/dty1er/kubecolor.git2.cd kubecolor/3.go build -o kubecolor cmd/kubecolor/main.go4.vi ~/.bashrcalias kubectl='/root/kubecolor/kubecolor'5.source .bashrc
2021-05-28 09:22:49 350
原创 docker命令集
启动、停止、状态systemctl start dockersystemctl restart dockersystemctl enable dockersystemctl stop dockersystemctl status dockersystemctl daemon-reload查看信息docker versiondocker info镜像操作查找镜像docker search image拉取镜像docker pull image[:tag]查看所有镜像docke
2021-05-06 22:41:13 48
原创 k8s命令集
master 主控node 节点,理解为虚拟机、物理机pod 一个或多个container组成,这些容器共享pod的ip,共享pod数据卷container 容器service,svc 服务,一个或多个pod组成的对外访问的接口endpointdeploymentnamespace 命名空间volume 数据卷replicaSet RC, pod的副本集数量jobselectorkube-apiserverkube-controller-mangerkube-scheduler
2021-05-01 00:35:41 88
原创 docker运行redis容器
创建redis容器[root@node2 ~]# docker run -d -p 6379:6389 -v /root/redis_data:/data redis --appendonly yes --requirepass "123456"5a82e1405ca710de5f2e4adde873386bed2dd660ac2508979f606e82e50b8276[root@node2 redis_data]# docker psCONTAINER ID IMAGE COMMAN
2021-04-10 16:34:11 676
原创 vscode配置go远程linux
Tools environment: GOPATH=/root/goInstalling 9 tools at /root/go/bin in module mode. gopkgs go-outline gotests gomodifytags impl goplay dlv golint goplsInstalling github.com/uudashr/gopkgs/v2/cmd/gopkgs (/root/go/bin/gopkgs) SUCCEEDED
2021-03-05 13:37:44 268
原创 docker命令
查看所有镜像docker images拉取镜像docker pull centos新建并启动容器docker run [options] centosdocker run -it centos交互式-i-t守护进程后台运行-d启动容器docker start 容器id或者name重启容器docker restart 容器id或者name停止容器docker stop 容器id或者name强制停止容器docker kill 容器id或者name
2021-01-31 23:00:42 135
原创 go time.NewTicker
package mainimport ( "fmt" "strconv" "time")var ( nowday = time.Now().Day() now, _ = strconv.Atoi(fmt.Sprintf("%04d%02d%02d%02d", time.Now().Year(), time.Now().Month(), time.Now().Day(), 0)))func main() { tickMinute() //fmt.Println(getToday
2021-01-27 16:11:43 332
原创 WebSocket:Failed to execute ‘send‘ on ‘WebSocket‘: Still in CONNECTING state.
ws = new WebSocket(‘ws://192.168.150.53:8080/websocket’);ws.send(“111”);因为ws连接还没有建立成功,不能在new完后直接跟着send。js代码:<script> var interval = 1000; var send = function (ws,message, callback){ waitForConnection(ws,function(){
2021-01-26 18:18:17 2011 1
Linux环境下已经编译好的all版本的protobuf3.15.4
2021-03-04
广工信息工程学院信号检测与估计课件,期末复习用
2020-06-26
广工计算机图形学课件信息工程学院
2020-06-26
2019广工信工概率论5.17日 试卷及资料.zip
2020-05-03
2019年广工信工学院0626数电试卷及资料.zip
2020-05-03
C++如何使用宏来定义一个类?
2020-03-31
tcpdump抓包为什么有的四次挥手只抓到了3个包
2020-03-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人