- 博客(609)
- 收藏
- 关注
原创 leveldb源码剖析(二)——LSM Tree
LSM Tree具有较高的写入性能,主要通过写入内存和磁盘顺序写实现;写入数据时,先将数据写入内存,当内存达到一定大小时,将内存中的数据一次性顺序写入(flush)磁盘,生成SSTable中一个segment,segment内部数据也是有序的;读取数据时,先查找布隆过滤器,如查询不到直接返回key不存在,如存在,继续查询稀疏索引表;查找稀疏索引表,根据查询到的范围从磁盘读取数据,进而利用二分法读取获取最终结果;
2024-09-04 22:37:41 1194
原创 kafka(八)——AR、ISR、HW和LEO
follower副本发生故障会被临时踢出ISR,待follower副本恢复后,follower副本会读取本地磁盘上次记录的HW,将log文件高于HW的部分截取掉,从HW开始向leader副本进行同步,等待该follower副本的LEO大于该Partition的HW,即follower副本追上leader副本之后,就可以重新加入ISR。
2024-05-20 22:28:10 550
原创 kafka(六)——存储策略
kafka通过topic作为主题缓存数据,一个topic主题可以包括多个partition,每个partition是一个有序的队列,同一个topic的不同partiton可以分配在不同的broker(kafka服务器)。
2024-04-12 21:57:48 1153
原创 kafka(四)——生产者流程分析(c++)
1(all):生产者发送过来的数据,等待所有副本将数据同步后发送下一条数据,性能最慢,安全性最高;消息保序策略:按key分区,可以实现局部有序,但这又可能会导致数据倾斜,可根据实际情况选择。1:生产者发送过来的数据,等待Leader副本确认后发送下一条数据,性能中等;producer的acks参数表示生产者生产消息时,写入到副本的严格程度。
2024-04-08 22:15:23 1112
原创 kafka(一)——简介
Kafka 是一种分布式、支持分区、多副本的消息中间件,支持发布-订阅模式,多用于实时处理大量数据缓存的场景,类似于一个“缓存池”。
2024-01-20 19:56:30 1453
原创 音视频学习(二十二)——rtmp发流(tcp方式)
本文主要介绍自研的RtmpStreamSender.dll,rtmp库提供接口接收裸流数据,支持将裸流数据封装为flv格式并通过rtmp协议发流。关于rtmp协议基础介绍可查看:https://blog.csdn.net/www_dong/article/details/131026072关于rtmp收流介绍可查看:https://blog.csdn.net/www_dong/article/details/135073488。
2023-12-27 20:18:54 875
原创 音视频学习(二十一)——rtmp收流(tcp方式)
本文主要介绍rtmp协议收流流程,在linux上搭建rtmp服务器,通过自研的rtmp收流库发起取流请求,使用ffmpeg+qt实现视频流的解码与播放。关于rtmp协议基础介绍可查看:https://blog.csdn.net/www_dong/article/details/131026072。
2023-12-18 22:51:31 1469
原创 GB28181学习(十八)——图像抓拍
本文主要介绍图像抓拍功能,通过自研的sip库(mysipsdk.dll)对接真实设备,使用http方式实现图像数据传输,最终达到图像抓拍与保存的目的。
2023-12-13 21:10:07 945 1
原创 GB28181学习(十七)——基于jrtplib实现tcp被动和主动发流
GB/T28181-2022实时流的传输方式介绍:https://blog.csdn.net/www_dong/article/details/134255185基于jrtplib实现tcp被动和主动收流介绍:https://blog.csdn.net/www_dong/article/details/134451387本文主要介绍下级平台或设备发流功能,用于对接特定的SIP服务器或上级平台。
2023-11-22 21:16:16 1305 1
原创 GB28181学习(十六)——基于jrtplib实现tcp被动和主动收流
GB/T28181-2022实时流的传输方式介绍:https://blog.csdn.net/www_dong/article/details/134255185。
2023-11-16 21:41:21 1021
原创 GB28181学习(十二)——报警事件通知和分发
MESSAGE消息头Content-type头域为Content-type:Application/MANSCDP+xml;MESSAGE消息头Content-type头域为Content-type:Application/MANSCDP+xml;设备收到MESSAGE消息后,应立即返回200 OK应答,应答命令中无消息体;采用MESSAGE方法的消息体携带;采用MESSAGE方法的消息体携带;请求命令消息体采用XML封装;请求命令消息体采用XML封装;
2023-10-23 21:25:47 628
原创 GB28181学习(十一)——控制(PTZ、镜头、光圈等控制)
PTZ_CTRL_HALT = 0, // 停止PTZ_CTRL_RIGHT, // 右转PTZ_CTRL_RIGHTUP, // 右上PTZ_CTRL_UP, // 上转PTZ_CTRL_LEFTUP, // 左上PTZ_CTRL_LEFT, // 左转PTZ_CTRL_LEFTDOWN, // 左下PTZ_CTRL_DOWN, // 下转PTZ_CTRL_RIGHTDOWN, // 右下PTZ_CTRL_ZOOM, // 镜头放大/缩小。
2023-10-23 20:25:29 2747 1
原创 GB28181学习(十)——视音频文件下载
实时点播(信令处理):https://blog.csdn.net/www_dong/article/details/132950064。实时点播(数据处理):https://blog.csdn.net/www_dong/article/details/133581370。历史视音频回放:https://blog.csdn.net/www_dong/article/details/133826739。当接收到MediaStatus命令且NotifyType为121是表示历史媒体文件发送结束。
2023-10-22 16:07:05 552
原创 GB28181学习(八)——历史视音频的回放
实时点播(信令处理):https://blog.csdn.net/www_dong/article/details/132950064。实时点播(数据处理):https://blog.csdn.net/www_dong/article/details/133581370。历史视音频文件查询成功后,选中一条记录,右键选择录像回放,即可弹窗显示录像数据。查看历史文件成功后,选中某一条记录,开始录像回放。
2023-10-14 16:15:27 538
原创 linux基础64——abrtd总结
全称,自动bug报告守护进程,用于监控应用程序崩溃。当程序发生崩溃时,它将收集的崩溃信息,将信息存于**/var/spool/abrt**路径下。last-ccpp:记录发生崩溃的程序全路径;ccpp-*:存放程序崩溃的详细信息;
2023-10-08 21:54:24 1067
原创 GB28181学习(六)——实时视音频点播(数据传输部分)
GB28181系列文章:总述:https://blog.csdn.net/www_dong/article/details/132515446注册与注销:https://blog.csdn.net/www_dong/article/details/132654525心跳保活:https://blog.csdn.net/www_dong/article/details/132796612。
2023-10-05 16:59:09 863
原创 c++ tinyXml介绍
TinyXML是一个开源的解析XML的解析库。解析库的模型通过解析XML文件,在内存中生成DOM模型,使得可以方便的遍历XML。
2023-09-17 18:45:39 338
原创 GB28181学习(四)——网络设备信息查询
设备目录(Catalog)、设备信息(DeviceInfo)、设备状态(DeviceStatus)已自测通过。
2023-09-15 21:58:42 1364 2
原创 GB28181学习(三)——心跳保活
2)打开客户端,输入域名和本地ip,关于域名和本地ip的配置,可查看:https://blog.csdn.net/www_dong/article/details/132654525,填写完成后点击“连接”按钮;1)客户端启动前,登录设备查看国标设备,注册状态为不在线,心跳周期60s;
2023-09-10 22:14:43 1617
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人