BMQ-消息队列

68 阅读2分钟

2.8 Broker-传统数据拷贝

image.png

2.9 Broker-零数据拷贝

image.png 零拷贝相当于系统调用,通过系统调用,当数据从磁盘调到内核空间后,内核空间可以把数据发送给网卡,网卡直接交给消费者,降低数据拷贝的次数。

2.11

对于不同节点之间,可以通过复制使得集群达到最终一致,使得集群达到了高可用的目的。image.png

2.12

关闭Broker1,会把Broker2成为Leader副本。 image.png

3.1 BMQ介绍

1.读取由Proxy Cluster

3.2 运维操作对比

image.png

1.该函数释放的是指针指向的内存,释放的是内存,不是指针。释放内存后指针要指向NULL 2.和malloc函数配对使用,内存申请后要记得释放,避免内存泄漏。 3.不允许重复释放。 基本数据类型与引用数据类型的区别 区别: (1)基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。 (2)引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。 静态区: 保存自动全局变量和 static 变量(包括 static全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。 堆区: 一般由程序员分配释放,由 malloc系列函数或 new 操作符分配的内存,其生命周期由 free 或 delete决定。在没有释放之前一直存在,直到程序结束,由OS释放。其特点是使用灵活,空间比较大,但容易出错。 栈区: 由编译器自动分配释放,保存局部变量,栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁,其特点是效率高,但空间大小有限。 文字常量区: 常量字符串就是放在这里的。 程序结束后由系统释放。