- 博客(76)
- 收藏
- 关注
原创 Elasticsearch
是一個分佈式搜索和分析引擎,Logstash和Beats有助於收集、集合和丰富数据,并将其存储在Elasticsearch中,以交互方式探索、可视化和共享数据的见解,并管理和监控整个堆栈Elasticsearch为所有类型的数据提供了近实时的搜索和分析功能。无论是具有结构化或非结构化文本,数字数据或地理空间数据,可以支持快速搜索的方式有效的存储和索引它,可以远远超出简单的数据检索和汇总信息来发现数据中的趋势和模式。
2025-01-08 14:10:12
644
原创 KAFKA
kafka解决查询效率的手段之一是将文件分段,比如有100条Message,它们的offset是从0-99的,假如数据分为5段,第一段为0-19,第二段为20-39,以此类推这样在查找指定的offset的message时,使用二分查找就可以定位到该消息在哪个段中。(1)segment文件组成,主要由两部分组成,index文件、date文件这两个文件一一对应,成对出现,分别代表索引文件和数据文件,二者名称一样只是后缀不一样。它将每一个分区分为多个SEgment,每个Segment对应两个文件。
2024-12-26 13:58:23
177
原创 KAFKA消費數據的三種方式
点对点的消费模式也称为队列模式,它会将详细发送到一个队列中,并由只能有一个消费者来读取信息,即一个消息智慧被一个消费者处理,这种模式下只有一个消费者可以处理消息,如果想要多个消费者处理消息就要启动多个消费者实例,每个实例读取相同的队列。也称为主题模式,它会将消息发送到一个或多个主题,由多个消费者读取消息,这种模式下有个消息可以被多个消费者处理,这种模式下的所有消费者都可以接收相同主题下的所有消息。这种模式下,消息的处理是实时的,处理完成度额消息会输出到其它流中,作为下一步处理的输出。
2024-12-19 17:16:23
491
原创 MQTT协议01
MQTT(消息队列遥测传输协议),是一种基于发布/订阅模式的轻量级通信协议,该协议构建于TCP/IP协议上,MQTT最大的优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务,MQTT是一个基于客户端-服务器端的消息发布/订阅传输协议,是轻便简单开放和易于实现的。1)固定头:存在于所有与的MQTT数据包中,表示数据类型及数据包的分组类标识,如连接,发布,订阅,心跳等,其中,固定头是必须的,所有类型的MQTT协议中,都必须包含固定头。消息体,三部分构成,
2024-11-28 11:29:35
723
原创 多层嵌套json字符串(jsonStr)写入redis
5、判断字符串是否为json格式。2、将字符串转为json格式。4、将json写入redis。3、对json格式进行解析。
2024-10-11 10:25:36
491
原创 接收数据(jsonStr)并写入redis
确定存入redis的数据需要用什么作为唯一标识。将唯一标识作为key,从json中提取出来。5、关闭redis(防止出现问题)2、将字符串转换成json格式。
2024-10-11 10:10:18
174
原创 ThreadLocal
ThreadLocal提供了线程本地的实例,它与普通变量的区别在于,每个使用该变量的线程都会初始化一个完全独立的实例副本,ThreadLocal变量通常被private static修饰,当一个线程结束时,它所用的所有ThreadLocal相对的实例副本都可被回收。线程变量,THreadLocal中填充的变量属于当前线程,该变量对于其他线程而言是隔离的,也就是说该变量是当前线程独有的变量,ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程都可以访问自己内部的副本变量。
2024-09-27 10:16:15
1019
原创 redis01
是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志类型,ker-value数据库,并提供多种语言的API,它支持多种类型的数据结构,:字符串 散列 列表 集合 有序集合。3、隔离性:一个事物的执行不能被其它事物干扰,即一个事物内部的操作及使用激光的数据对于并发的其它事物是隔离的,并发执行的各个事物之间不能互相干扰。4、持久性:持久性也称为永久性,指一个事物一旦被提交,它对数据库中的数据的改变就是永久性的,接下来的其它操作或者故障不应该对其有任何影响。2、效率高,可以用于高速缓存。
2024-09-26 14:29:46
392
原创 SSM框架学习
2、SpringMVC:SpringMVC是SPring框架的一部分,专注于构建MVC架构中的Web应用程序,它处理HTTP请求和相应,将请求映射到相应的处理方法,并协调模型、视图和控制器的交互,在SSM中,SpringMVC负责处理WEb层的逻辑,将用户的请求和后端业务逻辑连接起来,并将数据呈现给用户。将这三个框架结合起来,可以实现一个完整的web应用,从前端的用户界面到后端的业务逻辑和数据存储层都能够得到很好的管理,整个程序的结构变得清晰,各个层次之间的协作也更加高效。
2024-09-13 14:45:45
308
原创 java08
HashMap实现了Map接口,根据键的HashCode的值存储数据,具有很快的访问速度,最多允许一条记录的键为NULL,不支持线程同步。通过使用迭代器,我们可以逐个访问集合中的元素而不是通过传统的for循环或者索引,这种方式更加简洁灵活,并且适用于各种类型的集合。java object是所有类的父类,也就是说java的所有类都继承了object,子类可以使用object的所有方法。它提供了统一的方式来访问集合中的元素,而不需要了解底层集合的具体实现细节。HashMAp是无序的,即不会记录插入的顺序。
2024-09-06 09:01:14
654
原创 java06
是java中的䘝抽象类型,是抽象方法思维集合,接口通常以interface来声明。一个类通过集成接口的方式从而继承接口的抽象方法接口并不是类,编写接口的方式和类很相似,但是它们并不属于同一种概念,类描述对象的属性和方法,接口则包含类要实现的方法除非实现接口的类是抽象类,否则要定义接口中的所有方法接口无法被实例化,但是可以被实现,一个实现接口的类,必须包含接口内描述的所有方法的实现,否则就必须声明这个类为抽象类。
2024-09-04 08:58:53
745
原创 时间复杂度和空间复杂度
概念:算法中基本操作执行的次数和问题的规模n之间的函数关系记作O(f(n))针对的是问题规模的增长率求解算法的时间复杂度的基本步骤:1、找出算法中的基本语句算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体2、计算基本语句的执行次数的数量级只要保证基本语句执行次数的函数中的最高次幂正确即可3、用O记号表示算法的时间性能0(1):表示执行次数和常数和问题规模没有关系,这个常数也可以是1、100、1000等。
2024-09-02 16:40:59
219
原创 java05
1、抽象类不能被实例化2、抽象类中不一定包含 抽象方法3、抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能4、构造方法,类方法(用static修饰的方法)不能声明为抽象方法5、抽象类的子类必须给出抽象类中抽象方法的具体实现。
2024-09-02 16:40:06
673
原创 java1 编程语言类型
计算机可以直接接受·直接理解的语言机器语言 是微处理器理解和使用的,用于控制它的操作二进制代码特点:编程质量好,占用内存小,用机器指令精准描述代码缺点:难读难记。
2024-08-31 16:18:38
252
原创 java04
重写:重写是指子类定义了一个与其父类中具有相同名称、参数列表、返回值类型的方法,并且子类方法覆盖了父类方法的实现,即外壳不变核心重写 重写的好处在于子类可以根据需要,定义自己的行为,也即是说子类可以选择性的实现子类的方法 重写方法不能抛出新的异常或者比被重写方法申明更加宽泛的异常 在面向对象的原则里,重写意味着可以重写现有的所有方法。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。子类是不继承父类的构造器(构造函数或者构造方法)的,它只是调用(隐式或者显式),
2024-08-30 15:56:26
1426
原创 java03
继承就是子类继承父类的行为和特征,使子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为 类的继承格式 class 父类 { } class 子类 extends 父类 { } supper关键字 java继承的类型:单继承、多重继承、不同类型继承同一个类、多继承(java不支持多继承)用于在方法声明中指定该方法可能抛出的异常,当方法内部抛出指定类型的异常时,该异常会被传力给调用该方法的代码,并且在该代码中处理异常。在合适的位置进行捕获,对异常进行适当的处理。
2024-08-30 09:23:00
1183
2
原创 java02
finalize:java允许存在的函数,它在对象被回收之前调用,它用来清理回收对象,可以使用它来确保打开的文件被关闭了,必须要指定在对象销毁的时候要执行的操作。构造方法:在对象被创建时会调用构造方法,如果类没有给出特定的构造方法,那么编译器会提供一个默认的构造方法,默认构造方法的访问修饰符和类的访问修饰符相同。变量作用域,变量在程序中可以被引用的部分,方法内被定义的变量称为局部变量,局部变量必须声明才可以使用。当程序调用一个方法时,程序的控制权交给方法,当方法执行完成之后,控制权交换给程序,
2024-08-28 16:20:57
212
2
原创 数据结构-算法概念与程序设计
1、时候统计法,很多计算机内部都具有计时功能,不同的而算法程序可以通过一组或者多组相同的统计数据以分辨优劣,但是这中办法有两中弊端:1、必须先运行依赖算法编制的程序。2、所得的时间的统计量依赖于计算机的硬件软件等环境因素,容易掩盖算法本身的优劣。(2)确定性:算法中的每一条指令必须有确切的含义,在任何条件下,算法只有唯一的一条执行路径,对于相同的输入只能得到相同的输出。程序主要是为了人的阅读与交流,其次才是机器执行,可读性好有助于人对于算法的理解,晦涩难懂的程序容易隐藏错误,难以调试和修改。
2023-12-25 22:07:59
509
原创 面试-判断数组序列是否具有单调性
bool类型的两个函数,如果单调递增返回值为真,单调递减返回值也为真,两者都不满足返回值为假。数组序列从大到小或者从小到大。单调递增或者单调递减。
2023-12-20 20:37:42
575
原创 面试-旋转数组的三种方法
将原来的数组分割成两个部分,直接向后移的,和往前移的,先把旋转到前面的写入到新申请的空间,后面补上向后移的,最后将新空间的内容依次赋值给原来的数组,然后释放申请的空间,并将指针置为空。题目:给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。先将数组全部逆置,然后把前k个元素和剩下的元素分别逆置。再编写函数调用K次右移一位的函数。先编写右移一位的函数。
2023-12-20 17:59:11
435
原创 面试题-合并两个有序数组
在两个数组都没有写进去的情况下,进行比较,小的先写,写完进行下一个的比较,直到其中一个数组完全写完,然后退出比较,将没有写完的数组再写道入新数组中。从后向前依次放去,如果数组2先放完,则排序成功,如果数组一先放完,将数组二剩下的依次放入到数组一剩下的位置中。顺序表的结构存放在栈区,存放的内容在堆区。3、将两个数组写进去新申请的空间中。2、申请新空间为两个数组大小之和。
2023-12-20 17:06:49
375
原创 数据结构-typedef关键字讲解
凡是合法的变量声明都可以使用typedef转换成类型声明。给结构体起别名可以在使用时不用写struct。typedef就是给已有的类型名起一个别名。
2023-12-15 16:18:46
134
原创 数据结构-线性表的详解
线性表中的数据元素可以是各种各样的,但是同一个线性表中的数据元素必须具有相同的特性,属于同一种数据对象,相邻数据元素之间存在序偶关系。线性表的顺序指的是,用一组地址连续的存储单元,一次存储线性表的数据结构。(4)除了最后一个以外,集合中的每一个数据元素均只有一个后继。(3)除了第一个以外,集合中的每一个数据元素均只有一个前驱。(2)存在唯一的一个被称为最后一个的数据元素。(1)存在唯一的一个被称为第一个的数据元素。一个线性表是n个数据元素的有限序列。线性表的数据元素必须是连续的。
2023-12-15 16:00:00
68
原创 数据结构-数据结构导论
数据元素:是数据的基本组成单位,在计算机中通常作为一个整体进行考虑和处理,一个数据元素可以被分成若干个数据项,数据项是数据元素不可分割的最小单位。数据元素之间的关系在计算机中有两种不同的表示方式:顺序映像和非顺序映像,由此得到两种不同的存储结构:顺序存储结构和链式存储结构。数据的逻辑关系和物理关系是密切相关的两个方面,任何一个算法的设计取决于选定的逻辑结构,而算法的实现依赖于物理结构。数据元素在计算机中的存储称为存储结构,又称为数据的物理结构,包括数据元素的表示和关系的表示。数据元素之间存在一对多的关系。
2023-12-15 15:30:11
185
原创 http协议和HTTP编程流程
服务器与浏览器建立连接之后,如果两次以上的请求复用同一个TCP链接,就称为长连接,如果浏览器发送一次请求报文,服务器一次应答就断开,下次交互再重新进行三次握手连接,就称为短链接,长连接更好,减少网络中的同步报文,也使服务器的响应速度变快。浏览器和web服务器在应用层通信使用的是http协议,HTTP协议在传输层使用的是TCP协议,浏览器和web服务区三次握手建立连接之后,才能发送HTTP请求报文,那么服务器收到请求报文之后,向浏览器回复http应答报文。(超文本传输协议)(80)[应用层协议]
2023-08-23 10:41:15
1573
原创 TCP特点UDP编程
对于udp编程,因为是无连接的,所以可以多个客户端发送,客户端关闭,服务器端不回收到任何数据,服务器端关闭后,对于客户端无影响。解决办法:让接收的时候能区分出来,用不同的报文、在报文前面描述数据有多大、不连续send。只有在握手和挥手的时候回引起TCP协议的变化,稳定收发连接的时候状态时不会发生改变的。3、接收recvfrom()//需要指定对方的IP和端口。2、发送sendto()//需要指定对方的IP和端口。多次发送的数据被一次性收到了,误以为是一次性收到的。2、指定IP和端口bind()
2023-08-21 15:16:03
2071
原创 TCP编程流程(补充)
客户端发送的数据和服务器返回的数据,数量对不上是正确的,因为发送数据是从发送缓冲区进行发送,接收是从接收缓冲区进行接收,所以真正接收到的数据和发送的数据可能不相同,真正发送的,和接收到的数据也可能不相同。netstat _natp:查看缓冲区还有多少个数据,查看是送的缓冲缓冲区还没有发送,还是接收缓冲取还没有被接收。如果只有一个线程,南那么只能接收一个客户端,被堵塞住了,如果先要链接多个客户端,就需要启用多个线程。执行listen会创建一个监听队列。
2023-08-20 15:10:53
515
原创 TCP编程流程
主机字节序列分为大端字节序和小端字节序大端字节序是指一个整数的高位字节存储在内存的低地址处,低位字节序列存储在内存的高地址处。小端字节序是指整数的高位字节存储在高地址处,低位字节序列存储在内存的低地址处。网路字节序列:大端字节序列,转换为大端:htons()
2023-08-19 19:38:59
828
原创 网络编程基础(1)
为应用层提供可靠的面向连接的和基于流的服务,TCP协议使用超时重传,确认应答等方式来确保数据包被正确的发送至目的端,TCP协议是可靠的,使用TCP协议通讯的双方必须先建立TCP连接,并在内核中为该连接维持一些必要的数据结构,比如连接状态、读写缓冲区等,等通讯结束后,双方必须关闭连接以释放这些内核数据,TCP服务是基于流的,基于流的数据没有长度限制,他远远不断的从通讯的一端流向另外一端,发送端可以逐个字节的向数据流中写入数据,接收端也可以逐个字节的将他们读出。四个字节,每个字节8位,共32位,用十进制表示。
2023-08-18 14:07:12
1966
原创 linux17 线程安全 线程同步
多线程程序无论调度顺序如何,都能保证程序 的正确性,就说该程序处于线程安全的状态1)、同步2)、线程安全函数//有的函数不适合多线程使用,是函数自身的原因。
2023-08-17 14:59:38
248
原创 Linux16(1) 线程同步
用户级线程:模拟出来多条路径,在内核眼里依旧是一条路径,他的出现不需要操作系统参与,可以创建特别多的线程,开销小但是无法使用多个处理器(只能并发)当有线程持有读模式锁时,其他线程也可以继续获取读模式锁,但不能获取写模式锁。在Linux系统上,没有线程的概念,每一个线程都是当作进程来实现的,是一个和其他进程共享某些资源的进程,都拥有属于自己的内存控制块。组合:可以利用多处理器的资源,在用户空间可以创建更多线程,对于后期线程的创建来说,开销小。加锁:pthread_mutex_lock(&mutex);
2023-08-16 16:08:00
191
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人