- 博客(66)
- 收藏
- 关注
原创 数据结构和算法笔记
************ 分解问题 ***********//************ 遍历 ***********//****** 前序遍历位置 ******//****** 中序遍历位置 ******//****** 后续遍历位置 ******//****** 前序遍历位置 ******//****** 中序遍历位置 ******//****** 后序遍历位置 ******/
2024-01-16 15:08:28
1705
3
原创 pgsql checkpoint机制(1)
redo point和checkpoint位点之间逻辑上是一个时间段,在这个时间段内,由于写wal日志由walwriter进程完成,而刷脏由checkpoint进程完成,两个进程之间并行运行,在redo point和checkpoint位点之间,walwriter可能会插入新的wal日志记录(执行SQL),这样通过这两个位点就能够知道哪些数据已经刷到磁盘,哪些还没有,等到恢复的时候就能够准确定位到恢复的起点。checkpoint刷脏结束,redo point之前的数据均已被刷到磁盘存储(数据1和数据2)
2023-08-12 22:56:07
430
原创 Array题型:双指针Two Pointers套路
一、反向通用步骤:Initialize two pointer i = 0, j = array.length - 1 while i <= j: Decide what you should do based on the value of array[i] and array[j] Move at least one pointer forwardin its direction 二、同向通用步骤:Initialize two pointers i and...
2022-03-14 13:38:29
409
原创 使用双栈(参数栈、状态栈)实现树的前、中、后序遍历
#include <iostream>#include <vector>#include <stack>using namespace std; struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode() : val(0), left(NULL), right(NULL) {} TreeNode(int x) : val(x), left.
2022-01-22 22:14:09
594
原创 (二)涉众分析
2. 做好涉众分析业务建模的第一步:发现和定义涉众。在了解业务概况和业务目标后,接下来要做的事情不是去了解业务的细节,而是去发现也这个目标相关的人和物,英文把这种人和物称为Stakeholder,或者叫干系人,也称为涉众。2.1 什么是涉众?涉众是与要建设的业务系统相关的一切人和事。凡是与这个项目有利益关系的人和事都是涉众,他们都可能对系统建设造成影响。涉众不等于用户,通常意义上的用户是指系统的使用者,而这仅是涉众中的一部分。如何理解与业务系统相关的一切人和事呢?例如,项目出资方、监管方、建筑商等
2020-11-24 11:43:11
5093
原创 (一)问题领域
##1.了解问题领域###1.1了解业务概况供电企业的业务概况包括:-发点。由发电厂发出电力-送电。发电厂所发出的电力经过高压线传送到各个变电站-变电。变电站将高压电转换成较低电压-配电。降低了电压以后的电力,通过四通八达的电线路送入千家万户-用电。电力一直送到每家安装的电表,供家电使用所以,家里的电灯要亮起来,一共要经过发点、送电、变电、配电和用电五个环节。而供电局主要负责<fontcolor=#ff0000>配电</...
2020-11-24 11:38:48
450
原创 ASN.1学习
ASN.1 全称 Abstract Syntax Natation One. 是一个用来描述抽象类型抽象数据的语法. 类似于 XML, JSON 等, 主要用于编码数据以便于在网络中交换数据. 比如, X509 证书.Basic Encoding Rules —— BER1、Primitive, definite-length encoding(基本数据类型,除字符串以外均使用这种编码方式...
2019-11-15 23:18:30
386
原创 1.Class文件
Java Class文件结构定义如下:u4 magicu2 minor_versionu2 major_versionu2 contant_pool_countcp_info contant_pool[contant_pool_count - 1] // 常量池表u2 access_flagsu2 this_classu2 super_classu2 inte...
2019-06-27 18:54:43
194
转载 JVM指令集及各指令的详细使用说明
指令码助记符说明 0x00nop什么都不做 0x01aconst_null将null推送至栈顶 0x02iconst_m1将int型-1推送至栈顶 0x03iconst_0将int型0推送至栈顶 0x04iconst_1将int型1推送至栈顶 0x05iconst_2将int型2推送至栈顶 0x0...
2019-06-17 10:59:44
130
原创 记一次阿里云服务器中毒事件
一直使用的阿里云服务器,最近突然无法正常登录网站,同时数据库服务莫名其妙的挂掉了。登录到服务器的后台,执行top命令,发现很多wget、python -c import urllib2 as fbi这样的命令,如下图所示:根据CSDN山上的一篇博文:https://blog.csdn.net/zhangvalue/article/details/87928551,通过cron -l命令查...
2019-04-15 14:42:43
2414
原创 Hash表为什么要扩容?
Hash表示重要的数据结构之一,其可以采用多种方法避免冲突,常用的一种是:链接法。采用链接法来处理Hash冲突时,当Hash表中的项太多,也就是Hash冲突比较高的时候,Hash表的遍历就蜕变成单链表,此时为了提供Hash的性能,Hash表需要扩容。扩容方案可以参见live555、memcached等项目。...
2019-01-22 14:24:08
1212
转载 使用ffmpeg将实时流保存为AVI
项目中需要将编码器编码出的H264数据保存为avi格式文件。使用ffmpeg接口进行实现。ffmpeg一般是直接打开本地视频文件(如avi、mp4等)或者网络视频流(如:rtmp流媒体等),只需要直接将本地视频文件名或者流媒体的URL作为avformat_open_input的参数即可。但是这次的项目中,则需要直接将编码器编码出的H264流保存为avi文件。原本准备参考雷神的《ffmpeg 从...
2019-01-18 11:08:16
3941
1
原创 FFmpeg音视频核心技术精讲与实战
一、日志: <libavutil/log.h>头文件 av_set_log_level(); AV_LOG_DEBUG/AV_LOG_INFO/AV_LOG_WARNING/AV_LOG_ERROR av_log();二、文件删除和重命名: avpriv_io_delete(); avpriv_io_move();三、操作目录 av...
2019-01-17 22:17:29
1273
转载 Linux I/O多路复用——select函数中的算法
先讨论与IO无关的东西.调用select 的流程是1 将要监听的文件描述符(集)a,b,c选入一个集合S2 调用select,可以设置超时参数4 函数内部设置S集合中的描述符3 函数返回,解析S中还有哪些描述符怎样高效的来实现上述的过程.我们知道文件描述符是一个较小递增不重复的int,根据这个特点,我们可以用bitmap算法来实现,本质是一个映射关系.用几个较少的数来表示很多的数首...
2019-01-02 16:24:32
212
转载 白话讲解Nagle算法和延迟确认
以前对nagle算法有耳闻,利用TCP_NODELAY选项可以禁止他。然后看到延迟ack时,心想TCP_NODELAY选项与他有没有关系呢。其实没有,TCP_NODELAY只是用来禁用nagle算法的。关于他们之间的关系倒可以好好研究下。有以下一个场景,村东和村西隔着一条大河,有几条船在两岸摆渡。由于每次要求过河的人只有一个,如果来一个人就将那个人摆渡过去(假设船只足够多),那势必运输效率非常...
2019-01-02 16:06:19
269
转载 白话TCP运输控制(二) -- TCP的流量控制
上篇讲的是拥塞控制,这篇讲流量控制。还是以运输粮食为场景。虽然运输的拥塞控制能够在运输效率和拥塞之间达到平衡,但是运输粮食的整体效率还受一个关键因数影响,那就是对岸西村粮食的卸货能力。假设粮食运送到对岸后,要卸放在一个仓库里,随后被运往其他地方。如果运输的太快,仓库载货能力有限,粮食又没有及时被消耗,工人们只好等待仓库腾出地方来卸下新的粮食。显然这样会影响这个工程的效率。后来工人们又想了一...
2019-01-02 15:50:37
179
转载 白话TCP运输控制(一) -- TCP的拥塞控制
张家村码头的粮食堆积如山,每天都需要用船运到镇里。但是去镇上有50公里,只有水路可走。一大早,码头工人们就开始干活了, 为了早点干完收工回家,一船接一船,拼命地发送粮食。可是这水路不仅仅是张家村在运粮食,白头村还往外运石头, 东平村还往外运沙子,大家都拼命地往外发货物,再加上各式各样,络绎不绝的商船、客船, 大家很快就发现,船只太多,水面出现拥堵,工人们只好等待。工人们想这也不是个...
2019-01-02 15:45:30
199
转载 Will EAGAIN returned on send/write for anything other than buffer full?
EAGAIN/EWOULDBLOCK can also be returned (for TCP sockets) when the number of unacknowledged packets has reached the congestion window.To check the status of the socket w.r.t. the congestion window, ...
2019-01-02 14:31:15
143
转载 高性能高并发服务的瓶颈及突破思路
作者:头条号 / DBAplus社群链接:http://toutiao.com/a6329244529665310977/ 关于高性能高并发服务这个概念大家应该也都比较熟悉了,今天我主要是想讲一下对于如何做一个高性能高并发服务架构的一些自己的思考。本次分享主要包括三个部分:1. 服务的瓶颈有哪些2. 如何提升整体服务的性能及并发3. 如何提升单机服务的性能及并发一、服务...
2018-12-24 16:35:18
500
原创 分布式知识学习计划
1、搭建opensips+freeswitch的部署环境2、搭建fastdfs的部署环境3、搭建nginx+nodejs的部署环境
2018-09-24 01:36:43
266
转载 利用***+nat解决客户voip被封锁的问题
最近有个私交不错的客户it人员问我一个问题。客户自己买了一台mosa的voip 语音网关用来跟其他分公司进行voip通话,节省长途+国际话费。据说安装后的前一个星期用得很愉快,一个星期后就不行了。看来无锡电信盯得很紧嘛:)。架构很简单 pbx---------voip gateway-----------internet-------------- voip gateway----pbx...
2018-09-21 10:32:36
1293
转载 抖动和延迟之间的区别
延时和抖动是相互关联的两个东西,但是它们并不相同。延时是网络中的一个重要指标,它由四个关键部分组成:处理延时(processing delay),排队延时(queueing delay),传输延时(transmission delay)和传播延时(propagation delay)。它会影响用户体验,并可能因多种因素而发生变化。抖动是基于延时产生的—具体而言,就是前后延时的值不一致。抖动是两个数...
2018-09-03 14:20:20
44727
转载 struct sock、struct inet_sock、strct inet_connection_sock和struct tcp_sock数据结构
2018-08-09 16:20:32
902
原创 freeswitch配置文件目录结构
conf配置文件的目录结构如下: | |------autoload_configs/ 一般都是模块级的配置文件,每个模块对应一个。文件名一般以 module_name.conf.xml 方式命名。 | |------dialplan/ 定义xml拨号计划 | |------directory/ 它里面的配置文件决定了freeswitch作为注册服务器时哪些用户可以注册上...
2018-07-27 10:18:17
3000
原创 icmp
icmp报文类型 1.查询 icmp回显请求和应答 ---> ip记录路由选项(ping程序基于icmp的回显请求和应答功能提供-r选项,将记录的地址存放在ip首部的选项部分) 远端主机生成RR选项 中间路由器对RR选项的处理 ICMP回显请求中的RR清单复制到ICM...
2018-07-14 15:34:44
186
原创 opensips配置文件
## OpenSIPS residential configuration script# by OpenSIPS Solutions <team@opensips-solutions.com>## This script was generated via "make menuconfig", from# the "Residential" scenario.# You ...
2018-07-04 18:37:54
865
转载 sip信令超时机制
DIALOG当UA发送初始INVITE请求后,只有接收到失败响应才有可能建立DIALOG。通过callid,FROM域中的tag参数,TO域中的tag参数来唯一标识DIALOG。 FROM域中的参数由主叫添加,TO域中的参数由被叫添加。根据DIALOG的定义,只有当101-199或200消息中的TO域中带有tag参数时,此时才建立dialog。对通过101-199消息(目前一般是18×消息)建立的...
2018-06-27 16:38:09
4290
1
原创 Chapter 3. Locking system
Kamailio提供了一套有着简单接口的用户锁系统,以便我们在开发时使用。它的根元素是一个可以被锁定或者解锁的互斥信号量。SysV和POSIX提供的其他同步机制都不需要。 锁可以被当做简单变量或者是锁集合(数组)使用。为了提高速度,默认情况下,由机器特定的代码实现锁。 如果机器的架构不明,Kamailio将使用SysV信号量。1. Simple Locks API头文件:...
2018-06-02 13:41:18
240
转载 P2P NAT穿越
NAT 不仅实现地址转换,同时还起到防火墙的作用,隐藏内部网络的拓扑结构,保护内部主机。 NAT 不仅完美地解决了 lP 地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。 这样对于外部主机来说,内部主机是不可见的。但是,对于P2P 应用来说,却要求能够建立端到端的连接,所以如何穿透NAT 也是P2P 技术中的一个关键。由于nat的透明性,所以clienta-1和...
2018-05-22 16:26:05
378
转载 CentOS 6.5 64位系统OpenSips 1.11部属配置
上一篇介绍了OpenSips在CentOS 64位系统下的编译过程,本篇将主要介绍部属与配置,因网络限制无法上传截图,涉及重要过程请注册红色字体部分1、安装opensips,在安装前先选取数据库模块,否则在后述数据库配置/usr/local/lib64/opensips/opensipsctl目录下找不到对应数据库文件make menuconfig -> Configure Compile ...
2018-05-18 18:50:43
269
转载 Creating a New Endpoint: Lifecycle of a Session
AboutFreeSWITCH endpoints are designed to create, handle and destroy media streams. Click here to expand Table of ContentsThis page describes sessions and channels from the point of view of writing a...
2018-05-17 23:25:11
273
转载 freeswitch 媒体早期协商模式分析
从 wiki 上,学习到 freeswitch 的媒体协商分为早期协商跟延迟协商,简单的说,就是协商的时间点不同。早期协商: 是在一个 Inbound call 进来的时候,fs 就对其 SIP 消息中的 SDP 跟 inbound-codec-prefs 参数值进行匹配比较,并确认 lega 的编码方式延迟协商: 在收到 inbound call 的时候,先不做匹配比较,而是等到 outboun...
2018-05-17 18:57:46
1430
转载 freeswitch 内核研究笔记1
freeswitch 高性能技术特性:memory pool、task queue、event driven、multithread、hash、state Machine(内存池、多线程,任务队列,事件驱动,哈希,状态机)。内核启动流程:两个函数switch_core_init 负责核心的初始化apr_initialize(),switch_core_session_init,switch_cor...
2018-05-17 18:26:52
890
1
转载 freeswitch呼叫流程分析
freeswitch呼叫流程分析本文转载自http://www.cnblogs.com/MikeZhang/p/freeswitchCallFlow_20160907.html今天翻文档时发现之前整理的关于freeswitch呼叫相关的内容,写成博文分享出来也方便我以后查阅。整体结构图 FreeswitchCore模块加载过程freeswitch主程序初始化时会从modules.conf.xml文...
2018-05-17 17:42:21
2568
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人