04 2021 档案
摘要:本文介绍如何在Elasticsearch中对文档进行操作。 1、检查Elasticsearch及Kibana运行是否正常 在浏览器输入192.168.6.16:9200,有如下输出则说明Elasticsearch运行正常。 浏览器中输入http://192.168.6.16:5601/,显示如下页面
阅读全文
摘要:在public.xml上设置视频编码: <action application="export" data="nolocal:absolute_codec_string=PCMA,H264"/> 在dialplan中修改SDP消息 <action application="set"><![CDATA
阅读全文
摘要:在某些场景需要把摄像头或者其它推流视频加入FreeSWITCH。因此可以采用如下方式处理: 安装mod_vlc 然后在配置文件中加入 < action applicaiton=”playback” data=”vlc://rtsp://xxxx/vod”> 或者在fscli命令行输入: origin
阅读全文
摘要:测试环境:PostgreSQL 13.2 1、逻辑订阅简介 由于物理复制只能做到这个集群的复制,不能正对某个对象(表)进行复制,且物理复制的备库只能读,不能写。相反,逻辑订阅同时支持主备库读写,且可以做到针对某个对象进行复制。有更高的灵活性。但是逻辑订阅对主库性能影响较大。 2、发布端配置 pg_h
阅读全文
摘要:vector是一个能够支持任何类型的容器,本身为一个可以动态增长的数组。 1、vector基本数据结构 STL中所有的容器都包括三部分: 迭代器,遍历容器的元素,控制容器空间的边界和元素移动。 构造函数,满足容器多种多样的初始化。 属性获取,比如begin(),end()等。 template <c
阅读全文
摘要:环境:Ubuntu 16.04+PostgresQL13.2 1、指定安装路径 ./configure --prefix=/opt/postgresql 2、编译安装 sudo make sudo make install 3、添加用户和用户组 sudo groupadd postgres sudo
阅读全文
摘要:在STL编程中,容器是经常用到的一种数据结构,在C++标准库中,容器分为: 序列式容器 关联式容器 二者本质区别在于,序列式容器是通过元素在容器中的位置进行顺序存储和元素访问。关联容器则是通过键[key]存储和读取元素。 标准库中具体的容器如下图所示:
阅读全文
摘要:https://cdimage.debian.org/cdimage/archive/
阅读全文
摘要:1、注解的本质 在注解使用之前,Java各大框架(Spring,Hibernate等)使用xml来实现其松耦合方式的配置。但是随着项目越来越多,xml内容越来越复杂,维护成本越累越高。因此,业界提出采用一种标记式的高耦合配置方式,叫做注解。开发者可以在方法、类、字段属性等需要配置的地方进行注解。 关
阅读全文
摘要:1、定义 二叉搜索树(Binary Search Tree),(又:二叉查询树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树
阅读全文
摘要:1、简介 R-B Tree,全称Red-Black Tree,又称为“红黑树”,为一种自平衡二叉查找树(特殊的平衡二叉树,都是在插入和删除操作时通过特定操作保持二叉树的平衡,从而获得较高的查找性能)。红黑树的每个节点上都有表示存储位的颜色,可以是红色(Red)或黑色(Black)。 红黑树特性: (
阅读全文
摘要:1、Hystrix简介 Hystrix是由Nefflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或第三方库,防止级联失败,从而提升系统的可用性、容错性与局部应用的弹性,是一个实现了超时机制和熔断器模式的工具类库。 2、Hystrix设计原则 防止任何单独的依赖耗尽资源(线程),过载立即切断
阅读全文
摘要:1、概述 libevent是一个C语言编写的、轻量级开源高性能事件通知库。作为底层网络库,已经被广泛应用(如:memcached、Vomit、Nylon、Netchat等)。主要有以下几个亮点: 事件驱动(event-driven) 高性能 轻量级,专注网络。 源码精炼,易读 跨平台 支持多种I/O
阅读全文
摘要:编译环境:Windows 10 + VS2015 1、问题引入 在Win32环境下,CPU小端模式,参数用栈来传递,写出输出结果。 代码如下: int main() { long long a = 1; long long b = 2; long long c = 3; printf("%d%d%d
阅读全文
摘要:编译环境:Visual Studio 2015 参数传递与汇编语言有很大关系。子函数传递参数主要方式有三种(这三种参数传递方式都可用用于x86汇编语言甚至其它汇编语言): 寄存器方式传递参数 存储器方式传递参数 堆栈方式传递参数 在C++编译时,编译器采用堆栈方式传递参数。 测试代码: int ad
阅读全文
摘要:1、存储区域 1)Heap堆 由malloc分配的内存块,由程序员控制内存块的申请和释放(malloc/free)。如果申请的堆内存没有被释放掉,在程序结束时操作系统会自动回收。涉及问题:缓冲区溢出、内存泄漏。 2)Free store 自由存储区 由new分配的内存块。由程序员控制内存块的申请和释
阅读全文
摘要:编译环境:windows 10 64bit + VS2015 1、虚函数表简介 c++中虚函数的主要作用是实现多态机制,父类可以通过指针调用子类成员函数。多态机制为一种泛型技术,比如模板技术、RTTI技术,虚函数技术,有的是编译时确定调用方式,有的是运行时确定调用方式。 在c++中,虚函数通过虚函数
阅读全文
摘要:1、测试代码 代码中开启两个线程,加锁后轮流输出数据,其中一个线程误将pthread_mutex_unlock(),写成pthread_mutex_lock()代码如下: int g_tickets = 100; pthread_mutex_t g_mutex = PTHREAD_MUTEX_INI
阅读全文
摘要:编译环境:windows 10 + VS2105 1、构造函数不能为虚函数 虚函数的作用是为了实现C++多态机制。基类定义虚函数,子类可以重写该虚函数。当子类重写父类虚函数后,父类指针指向子类地址时,父类指针根据赋给它不同子类的指针,动态调用该子类的该函数,而不是父类的对应函数(当子类没重写该函数时
阅读全文
摘要:部署环境:CentOS 7 1、Heartbeat介绍 Heartbeat是Linux-HA项目中的一个组件,它实现了一个高可用集群系统。心跳检测和集群通信是高可用的两个关键组件,在Heartbeat项目中,由heartbeat模块实现了这两个功能。Heartbeat是目前开源HA项目中十分成功的例
阅读全文
摘要:编译环境:Windows10 + VS2015 1、空类占用的内存空间 类占内存空间是只类实例化后占用内存空间的大小,类本身是不会占内存空间的。用sizeof计算类的大小时,实际上是计算该类实例化后对象的大小。空类占用1字节原因:C++要求每个实例在内存中都有一个唯一地址,为了达到这个目的,编译器会
阅读全文
摘要:编译环境:Windows 10 + elclipse +gcc-8.1.0 1、类型推导 C++11 引入了 auto 和 decltype 这两个关键字实现了类型推导,由编译器在编译过程中完成类型推断过程。区别: 1)语法格式区别 auto varname = value; // auto 根据=
阅读全文