- 博客(65)
- 收藏
- 关注
原创 SpringBoot快速上手
翻译过来就是:Apache Maven 是一种软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一个中心信息管理项目的构建、报告和文档总结就是,Maven是一个项目管理工具,提高我们的开发效率,减少我们的开发BugMaven有很多功能,但是本篇文章只体现两个方面:项目构建,管理依赖在学习SpringBoot之前, 我们先来认识⼀下Spring我们看下Spring官⽅()的介绍。
2025-05-20 21:03:14
904
1
原创 RabbitMQ工作模式
P: ⽣产者, 也就是要发送消息的程序C: 消费者,消息的接收者Queue: 消息队列, 图中⻩⾊背景部分. 类似⼀个邮箱, 可以缓存消息;⽣产者向其中投递消息, 消费者从 其中取出消息特点: ⼀个⽣产者P,⼀个消费者C, 消息只能被消费⼀次. 也称为点对点(Point-to-Point)模式.适⽤场景: 消息只能被单个消费者处理Work Queue(⼯作队列)
2025-05-20 20:53:41
1001
原创 优先级队列(堆)
JDK1.8中的PriorityQueue底层使用了堆这种数据结构,而堆实际就是在完全二叉树的基础上进行了一些调整如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储 在一 个一维数组中,并满足:Ki = K2i+1 且 Ki >= K2i+2) i = 0,1,2…,则称为 小堆(或大 堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆从堆的概念可知,堆是一棵完全二叉树,因此可以层序的规则采用顺序的方式来高效存储,注意:对
2025-05-20 20:48:36
706
转载 RabbitMQ
AMQP(Advanced Message Queuing Protocol)是⼀种⾼级消息队列协议, AMQP定义了⼀套确定的 消息交换功能, 包括交换器(Exchange), 队列(Queue) 等. 这些组件共同⼯作, 使得⽣产者能够将消息发 送到交换器. 然后由队列接收并等待消费者接收. AMQP还定义了⼀个⽹络协议, 允许客⼾端应⽤通过该 协议与消息代理和AMQP模型进⾏交互通信。
2025-05-20 20:46:53
846
原创 二叉树的介绍
设二叉树的根节点所在 层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层 上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,如果按 照某种规则进行约定,则每个人对于同一棵树的遍历结果肯定是相同的。从概念中可以看出,二叉树定义是递归式的,因此后序基本操作中基本都是按照该概念实现的。访问根节点,访问左孩子,访问右孩子。
2025-05-20 20:42:48
925
原创 Stack & Queue
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈 顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
2025-05-20 20:41:09
743
原创 LinkedList与链表
LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高在集合框架中,LinkedList也实现了List接口,具体如下:说明LinkedList实现了List接口LinkedList的底层使用了双向链表LinkedList没有实现RandomAccess接口,因此LinkedList不支持随机访问。
2025-05-20 20:39:28
966
原创 RabbitMQ简介及安装类
RabbitMQ官⽹: RabbitMQ: One broker to queue them all | RabbitMQRabbitMQ是采⽤Erlang语⾔实现AMQP(Advanced Message Queuing Protocol,⾼级消息队列协议)的 消息中间件,它最初起源于⾦融系统领域, 为了在分布式系统中存储和转发消息⽽设计的。
2024-10-09 11:53:27
1192
原创 JMeter
添加⽅式:线程组—配置元件—⽤⼾定义的变量可以自定义变量有时我们只想要在固定的场景⾥使⽤参数化,改动后不希望影响到其他的脚本。使⽤:在HTTP请求的取样器中引⼊定义的变量。${参数名}适⽤场景:变量需要在多个脚本中使⽤,⽅⾯统⼀管理和修改。
2024-10-08 23:03:03
1905
原创 性能测试概念
性能测试和功能测试都是在系统测试阶段进⾏,那么这两者有什么区别呢?概念:为了发现系统性能问题或获取系统性能相关指标⽽进⾏的测试。⼀般在真实环境、特定负载条件下,通过⼯具模拟实际软件系统的运⾏及其操作,同时监控性能各项 指标,最后对测试结果进⾏分析来确定系统的性能情况。
2024-10-08 20:54:04
929
原创 Selenium
elementToBeClickable(By locator) ‒ ⽤于检查元素的期望是可⻅的并已启⽤,以便您可以单击它。textToBe(Bylocator,String str) - 检查元素。presenceOfElementLocated(Bylocator) ‒ 检查⻚⾯的 DOM 上是否存在元素。urlToBe(java.lang.String url) ‒ 检查当前⻚⾯的 URL 是⼀个特定的 URL。
2024-10-08 20:10:46
1210
原创 正则表达式
正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。通过这一篇文章,我们可以详细了解到正则表达式的内容以及语法格式,在文本处理方面确实有独特的优势和地位!正则表达式可以在文本中查找、替换、提取和验证特定的模式。正则表达式并不是Java中才有,其他语言中也有实现。
2024-10-07 15:31:30
165549
原创 初识HTTP协议
通过AI可知:HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式、超媒体信息系统的网络协议。它是万维网(World Wide Web)上应用最广泛的协议,用于定义客户端与服务器之间的请求和响应消息格式,以及客户端和服务器之间的交互方式。HTTP/1.1是广泛使用的版本,而HTTP/2则引入了头部压缩、多路复用等特性,以提高性能。
2024-10-06 16:38:14
773
原创 网络原理-数据链路层
在这一层中和程序员距离比较遥远,除非是做交换机开发,否则不需要了解数据链路层由AI可知:数据链路层(Data Link Layer)是OSI(Open Systems Interconnection)七层网络模型中的第二层,它在物理层之上,网络层之下。数据链路层的主要功能是为网络层提供可靠的数据传输服务,即将网络层传来的数据可靠地传输到相邻的节点,同时为物理层提供服务。数据链路层是网络通信中非常重要的一层,它确保了数据在物理介质上的可靠传输,并且为上层网络层提供了服务。这一层的协议主要是。
2024-10-02 17:18:31
1255
原创 初识TCP/IP协议
Question:IP都能组包了,UDP为啥还有64KB的限制,借助IP组包能力不能突破UDP的限制吗?Answer:直观上看起来,把上述数据,拆成多分,分多个IP数据包发送,好像也是OK传输过去之后,上述数据也能合并还原成原始的模样这里还原出来的数据,要交给UDP进一步的进行使用,在UDP这一层,要对上述数据进行解析,取出8个字节,作为报头,剩下的作为载荷,剩下的载荷到底多长?就会尝试从报头中,报文长度字段来读取,读出来的数字,最多还是64KB。
2024-10-02 16:15:41
1864
1
原创 网络原理-传输层UDP
上一篇博客中讲述了应用层如何自定义协议:确定传输信息,确定数据格式应用层也有一些现成的协议:HTTP协议这一篇博客中来讲述传输层协议。
2024-10-01 10:37:06
1590
原创 网络编程套接字TCP
服务器程序的典型工作流程读取请求并解析根据请求计算响应把响应写回到客户端System.out.println("服务器启动!");// 1) 读取请求并解析// 为了方便在 java 代码中处理 (尤其是后面进行打印) 可以把上述数据报中的二进制数据, 拿出来, 构造成 String// 2) 根据请求计算响应// 3) 把响应写回到客户端// 由于当前写的是 "回显服务器"
2024-10-01 09:19:19
1083
原创 网络编程套接字
socket是操作系统提供的socket api,其实不止有一套,而是有好几套TCP和UDP都是传输层协议,都是给应用层提供服务的,但是由于这两个协议,特点,差异非常大,因此我们就需要搞两套api来分别表示。
2024-09-30 13:26:02
1301
原创 TCP/IP五层模型
QQ里就会有一个应用层网络协议,协议就是约定数据,按照什么样的格式来组织(数据的格式),字符串,字符也是通过二进制0101构成的,网络传输的数据(本质上是二进制的)字符串(更准确的说是二进制的bit流),因此,要传输的,发送人,接收人,消息内容...就要组织到一个字符串中,组织的时候,就需要按照一定的格式来组织,不同的协议,数据组织的格式是不相同的。假设QQ的应用层协议是这样的,四个信息,为了组织成字符串,就通过,来分割各个部分,使用\n结束标志,发送人的qq号,接收人的qq号,发送信息,消息正文\n。
2024-09-19 21:51:42
1249
原创 初识网络原理
标识一个主机上不同的应用程序,要求每个程序在启动的时候,就需要关联上一个和别人不重复的端口号(也可以叫做绑定),有的时候可能会谈到有的程序是有固定端口号的,这个说法源自于一个概念“知名端口号”,上古时期,大佬们为了避免当时的一些程序,端口号之间发生冲突,就给这些知名的程序,分配了不同的端口,比如...(不包含MySQL,tomcat更不包含Java,这些都是后来的,当时人家分的时候,这几个兄弟,还没起来呢)两者之间只是一种相对的概念,没有绝对的局限,全世界最大的广域网叫做Intenet(万维网)
2024-09-17 21:38:53
1693
原创 Redis分布式锁
在⼀个分布式的系统中, 也会涉及到多个节点访问同⼀个公共资源的情况. 此时就需要通过 锁 来做互斥 控制, 避免出现类似于 "线程安全" 的问题此时就需要使⽤到本质上就是使⽤⼀个公共的服务器, 来记录 加锁状态. 这个公共的服务器可以是 Redis, 也可以是其他组件(⽐如 MySQL 或者 ZooKeeper 等), 还可以 是我们⾃⼰写的⼀个服务.分布式锁的基础实现思路⾮常简单,本质上就是通过⼀个键值对来标识锁的状态。
2024-08-16 13:22:03
995
原创 Redis缓存
缓存 (cache) 是计算机中的⼀个经典的概念. 在很多场景中都会涉及到. 核⼼思路就是把⼀些常⽤的数据放到触⼿可及(访问速度更快)的地⽅, ⽅便随时读取举个例⼦: ⽐如我需要去⾼铁站坐⾼铁. 我们知道坐⾼铁是需要反复刷⾝份证的 (进⼊⾼铁站, 检票, 上⻋, 乘⻋过程中, 出站....)正常来说, 我的⾝份证是放在⽪箱⾥的(⽪箱的存储空间⼤, ⾜够能装). 但是每次刷⾝份证都需 要开⼀次⽪箱找⾝份证, 就⾮常不⽅便因此我就可以把⾝份证先放到⾐服⼝袋⾥. ⼝袋虽然空间⼩, 但是访问速度⽐⽪箱快很多。
2024-08-15 21:00:52
704
原创 Redis的集群-详细操作及理论
广义的集群:只要是多个机器,构成了分布式系统,都可以称为是一个”集群“,前面博客所讲的哨兵模式,也可以称为是”广义的集群“狭义的集群:redis提供的集群模式,这个集群模式之下,主要是要解决,存储空间不足的问题(拓展存储空间)哨兵模式提高了系统的可用性:哨兵模式中,本质还是redis主从节点存储数据,其中就要求一个主节点/从节点,就得存储整个数据的”全集“此处关键问题,就是引入多台机器,每台机器存储一部分数据,设由1TB的数据需要存储,拿两台机器来存,每个机器只需要存512G即可;
2024-08-15 18:52:07
1242
1
原创 Redis的分布式部署方案-哨兵
由于对 Redis 的许多概念都有不同的名词解释,所以在介绍 Redis Sentinel 之前,先对⼏个名词 概念进⾏必要的说明,如表所⽰。名词逻辑结构物理结构主节点Redis 主服务⼀个独⽴的 redis-server 进程从节点Redis 从服务⼀个独⽴的 redis-server 进程Redis 数据节点主从节点主节点和从节点的进程哨兵节点监控 Redis 数据节点的节点 ⼀⼀个独⽴的 redis-sentinel 进程哨兵节点集合若⼲哨兵节点的抽象组合。
2024-08-15 12:45:20
1392
原创 Redis分布式部署方式-主从复制
分布式系统,涉及到一个非常关键的问题:单点问题引入分布式系统,主要也就是为了解决上述的单点问题,在分布式系统中,往往希望有多个服务器来部署redis服务,从而构成一个redis集群,此时就可以让这个集群给整个分布式系统中其他的服务,提供更稳定。高效的数据存储功能在分布式系统中,希望使用多个服务器来部署reids,往往存在以下几种redis的部署方式。
2024-08-14 16:52:38
1516
1
原创 Redis事务大揭秘:一次操作,改变数据库的命运!
数据库中的事务是指对数据库执行一批操作,在同一个事务当中,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。Redis 的事务和 MySQL 的事务概念上是类似的. 都是把⼀系列操作绑定成⼀组. 让这⼀组能够批量执 ⾏.Redis 事务本质上是在服务器上搞了⼀个 "事务队列"每次客⼾端在事务中进⾏⼀个操作, 都会把命令先 发给服务器, 放到 "事务队列" 中(但是并不会⽴即执⾏)⽽是会在真正收到 EXEC 命令之后, 才真正执⾏队列中的所有操作。
2024-08-12 18:42:41
1028
原创 Spring Cloud Eureka:微服务世界的GPS,让服务无处可藏!
当更换机器, 或者新增机器时, 这个URL就需要跟着变更, 就需要去通知所有的相关服务去修改. 随之⽽来的就是各个项⽬的配置⽂件反复更新, 各个项⽬的频繁部署. 这种没有具体意义, 但⼜不得不做的⼯作, 会让⼈⾮常痛苦.同样的, 微服务开发时, 也可以采⽤类似的⽅案服务启动/变更时, 向注册中⼼报道. 注册中⼼记录应⽤和IP的关系调⽤⽅调⽤时, 先去注册中⼼获取服务⽅的IP, 再去服务⽅进⾏调⽤注册中⼼主要有三种⻆⾊:他们之间的关系以及⼯作内容, 可以通过两个概念来描述谈到注册中⼼, 就避不开CAP理论.C
2024-08-12 15:29:07
763
原创 别让环境搭建毁了你的Spring Cloud项目,一文教你快速搞定!
实现⼀个电商平台(不真实实现, 仅为演⽰) ⼀个电商平台包含的内容⾮常多, 以京东为例, 仅从⾸⻚上就可以看到巨多的功能我们该如何实现呢?如果把这些功能全部写在⼀个服务⾥, 这个服务将是巨⼤的. 巨多的会员, 巨⼤的流量, 微服务架构是最好的选择. 微服务应⽤开发的第⼀步, 就是服务拆分. 拆分后才能进⾏"各⾃开发"@BeanREST(Representational State Transfer), 表现层资源状态转移。
2024-08-12 14:09:27
627
原创 Spring 框架下的 Redis 操作:让你的应用性能飙升!
上篇博客我们讲述了使用Jedis操作Redis,那么如何在Spring中操作Redis?
2024-08-12 10:57:28
405
原创 别再瞎忙了!Spring Cloud让你的微服务开发效率翻倍
简单来说, Spring Cloud 就是分布式微服务架构的⼀站式解决⽅案, 是微服务架构落地的多种技术的集合Distributed/versioned configuration 分布式版本配置Service registration and discovery 服务注册和发现Routing 路由 • Service-to-service calls 服务调⽤Load balancing 负载均衡Circuit Breakers 断路器。
2024-08-12 10:54:49
1006
原创 Redis和Java的爱恨情仇之常见结构命令
Jedis这个库的本质就是针对Redis的各种命令进行了封装,调用某个方法,就相当于在Redis客户端敲下了对应的命令。
2024-08-11 17:56:33
342
原创 Redis和Java之间的爱恨情仇之使用命令
介绍这些Redis的命令在代码中的操作,挑选一些有代表性的命令,我相信jedis的命令和Redis客户端的命令大差不差!
2024-08-11 17:55:00
294
原创 Redis的边边和角角
有两部分,第一部分是下次光标的位置,另一部分是返回的key,scan是有可能返回空的集合的,如果命令返回的cursor是0,代表遍历结束返回结果不一定是递增的count也不一定是准的。
2024-08-11 17:48:34
1056
原创 Redis客户端-RESP的简简单单介绍
不能编写自定义的qq/王者农药客户端,因为他们并没有公开协议的,但是网上还是有一些自定义的qq自定义的客户端啊?这是因为通过一些抓包/逆向手段,猜测qq的应用层协议是啥样的,猜多猜少靠水平+运气了。
2024-08-11 17:46:02
1059
原创 Redis中的zset类型
Question:这里的有序单纯就是升序/降序,那么排序的规则是啥Answer:给zset中的member同时引入了一个属性,分数(score),浮点类型,每个member都会安排一个分数,进行排序的时候,就是按照此处的分数大小来进行升序/降序来排序。
2024-08-11 17:42:01
1541
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人