- 博客(56)
- 收藏
- 关注
原创 RabbitMQ简介及安装类
RabbitMQ官⽹: RabbitMQ: One broker to queue them all | RabbitMQRabbitMQ是采⽤Erlang语⾔实现AMQP(Advanced Message Queuing Protocol,⾼级消息队列协议)的 消息中间件,它最初起源于⾦融系统领域, 为了在分布式系统中存储和转发消息⽽设计的。
2024-10-09 11:53:27 1081
原创 JMeter
添加⽅式:线程组—配置元件—⽤⼾定义的变量可以自定义变量有时我们只想要在固定的场景⾥使⽤参数化,改动后不希望影响到其他的脚本。使⽤:在HTTP请求的取样器中引⼊定义的变量。${参数名}适⽤场景:变量需要在多个脚本中使⽤,⽅⾯统⼀管理和修改。
2024-10-08 23:03:03 1696
原创 性能测试概念
性能测试和功能测试都是在系统测试阶段进⾏,那么这两者有什么区别呢?概念:为了发现系统性能问题或获取系统性能相关指标⽽进⾏的测试。⼀般在真实环境、特定负载条件下,通过⼯具模拟实际软件系统的运⾏及其操作,同时监控性能各项 指标,最后对测试结果进⾏分析来确定系统的性能情况。
2024-10-08 20:54:04 852
原创 Selenium
elementToBeClickable(By locator) ‒ ⽤于检查元素的期望是可⻅的并已启⽤,以便您可以单击它。textToBe(Bylocator,String str) - 检查元素。presenceOfElementLocated(Bylocator) ‒ 检查⻚⾯的 DOM 上是否存在元素。urlToBe(java.lang.String url) ‒ 检查当前⻚⾯的 URL 是⼀个特定的 URL。
2024-10-08 20:10:46 1031
原创 正则表达式
正则表达式是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的模式,用于描述要匹配的文本模式。通过这一篇文章,我们可以详细了解到正则表达式的内容以及语法格式,在文本处理方面确实有独特的优势和地位!正则表达式可以在文本中查找、替换、提取和验证特定的模式。正则表达式并不是Java中才有,其他语言中也有实现。
2024-10-07 15:31:30 2027
原创 初识HTTP协议
通过AI可知:HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式、超媒体信息系统的网络协议。它是万维网(World Wide Web)上应用最广泛的协议,用于定义客户端与服务器之间的请求和响应消息格式,以及客户端和服务器之间的交互方式。HTTP/1.1是广泛使用的版本,而HTTP/2则引入了头部压缩、多路复用等特性,以提高性能。
2024-10-06 16:38:14 651
原创 网络原理-数据链路层
在这一层中和程序员距离比较遥远,除非是做交换机开发,否则不需要了解数据链路层由AI可知:数据链路层(Data Link Layer)是OSI(Open Systems Interconnection)七层网络模型中的第二层,它在物理层之上,网络层之下。数据链路层的主要功能是为网络层提供可靠的数据传输服务,即将网络层传来的数据可靠地传输到相邻的节点,同时为物理层提供服务。数据链路层是网络通信中非常重要的一层,它确保了数据在物理介质上的可靠传输,并且为上层网络层提供了服务。这一层的协议主要是。
2024-10-02 17:18:31 1173
原创 初识TCP/IP协议
Question:IP都能组包了,UDP为啥还有64KB的限制,借助IP组包能力不能突破UDP的限制吗?Answer:直观上看起来,把上述数据,拆成多分,分多个IP数据包发送,好像也是OK传输过去之后,上述数据也能合并还原成原始的模样这里还原出来的数据,要交给UDP进一步的进行使用,在UDP这一层,要对上述数据进行解析,取出8个字节,作为报头,剩下的作为载荷,剩下的载荷到底多长?就会尝试从报头中,报文长度字段来读取,读出来的数字,最多还是64KB。
2024-10-02 16:15:41 1762
原创 网络原理-传输层UDP
上一篇博客中讲述了应用层如何自定义协议:确定传输信息,确定数据格式应用层也有一些现成的协议:HTTP协议这一篇博客中来讲述传输层协议。
2024-10-01 10:37:06 1513
原创 网络编程套接字TCP
服务器程序的典型工作流程读取请求并解析根据请求计算响应把响应写回到客户端System.out.println("服务器启动!");// 1) 读取请求并解析// 为了方便在 java 代码中处理 (尤其是后面进行打印) 可以把上述数据报中的二进制数据, 拿出来, 构造成 String// 2) 根据请求计算响应// 3) 把响应写回到客户端// 由于当前写的是 "回显服务器"
2024-10-01 09:19:19 1048
原创 网络编程套接字
socket是操作系统提供的socket api,其实不止有一套,而是有好几套TCP和UDP都是传输层协议,都是给应用层提供服务的,但是由于这两个协议,特点,差异非常大,因此我们就需要搞两套api来分别表示。
2024-09-30 13:26:02 1262
原创 TCP/IP五层模型
QQ里就会有一个应用层网络协议,协议就是约定数据,按照什么样的格式来组织(数据的格式),字符串,字符也是通过二进制0101构成的,网络传输的数据(本质上是二进制的)字符串(更准确的说是二进制的bit流),因此,要传输的,发送人,接收人,消息内容...就要组织到一个字符串中,组织的时候,就需要按照一定的格式来组织,不同的协议,数据组织的格式是不相同的。假设QQ的应用层协议是这样的,四个信息,为了组织成字符串,就通过,来分割各个部分,使用\n结束标志,发送人的qq号,接收人的qq号,发送信息,消息正文\n。
2024-09-19 21:51:42 1125
原创 初识网络原理
标识一个主机上不同的应用程序,要求每个程序在启动的时候,就需要关联上一个和别人不重复的端口号(也可以叫做绑定),有的时候可能会谈到有的程序是有固定端口号的,这个说法源自于一个概念“知名端口号”,上古时期,大佬们为了避免当时的一些程序,端口号之间发生冲突,就给这些知名的程序,分配了不同的端口,比如...(不包含MySQL,tomcat更不包含Java,这些都是后来的,当时人家分的时候,这几个兄弟,还没起来呢)两者之间只是一种相对的概念,没有绝对的局限,全世界最大的广域网叫做Intenet(万维网)
2024-09-17 21:38:53 1461
原创 Redis分布式锁
在⼀个分布式的系统中, 也会涉及到多个节点访问同⼀个公共资源的情况. 此时就需要通过 锁 来做互斥 控制, 避免出现类似于 "线程安全" 的问题此时就需要使⽤到本质上就是使⽤⼀个公共的服务器, 来记录 加锁状态. 这个公共的服务器可以是 Redis, 也可以是其他组件(⽐如 MySQL 或者 ZooKeeper 等), 还可以 是我们⾃⼰写的⼀个服务.分布式锁的基础实现思路⾮常简单,本质上就是通过⼀个键值对来标识锁的状态。
2024-08-16 13:22:03 953
原创 Redis缓存
缓存 (cache) 是计算机中的⼀个经典的概念. 在很多场景中都会涉及到. 核⼼思路就是把⼀些常⽤的数据放到触⼿可及(访问速度更快)的地⽅, ⽅便随时读取举个例⼦: ⽐如我需要去⾼铁站坐⾼铁. 我们知道坐⾼铁是需要反复刷⾝份证的 (进⼊⾼铁站, 检票, 上⻋, 乘⻋过程中, 出站....)正常来说, 我的⾝份证是放在⽪箱⾥的(⽪箱的存储空间⼤, ⾜够能装). 但是每次刷⾝份证都需 要开⼀次⽪箱找⾝份证, 就⾮常不⽅便因此我就可以把⾝份证先放到⾐服⼝袋⾥. ⼝袋虽然空间⼩, 但是访问速度⽐⽪箱快很多。
2024-08-15 21:00:52 639
原创 Redis的集群-详细操作及理论
广义的集群:只要是多个机器,构成了分布式系统,都可以称为是一个”集群“,前面博客所讲的哨兵模式,也可以称为是”广义的集群“狭义的集群:redis提供的集群模式,这个集群模式之下,主要是要解决,存储空间不足的问题(拓展存储空间)哨兵模式提高了系统的可用性:哨兵模式中,本质还是redis主从节点存储数据,其中就要求一个主节点/从节点,就得存储整个数据的”全集“此处关键问题,就是引入多台机器,每台机器存储一部分数据,设由1TB的数据需要存储,拿两台机器来存,每个机器只需要存512G即可;
2024-08-15 18:52:07 1138
原创 Redis的分布式部署方案-哨兵
由于对 Redis 的许多概念都有不同的名词解释,所以在介绍 Redis Sentinel 之前,先对⼏个名词 概念进⾏必要的说明,如表所⽰。名词逻辑结构物理结构主节点Redis 主服务⼀个独⽴的 redis-server 进程从节点Redis 从服务⼀个独⽴的 redis-server 进程Redis 数据节点主从节点主节点和从节点的进程哨兵节点监控 Redis 数据节点的节点 ⼀⼀个独⽴的 redis-sentinel 进程哨兵节点集合若⼲哨兵节点的抽象组合。
2024-08-15 12:45:20 1283
原创 Redis分布式部署方式-主从复制
分布式系统,涉及到一个非常关键的问题:单点问题引入分布式系统,主要也就是为了解决上述的单点问题,在分布式系统中,往往希望有多个服务器来部署redis服务,从而构成一个redis集群,此时就可以让这个集群给整个分布式系统中其他的服务,提供更稳定。高效的数据存储功能在分布式系统中,希望使用多个服务器来部署reids,往往存在以下几种redis的部署方式。
2024-08-14 16:52:38 1387
原创 Redis事务大揭秘:一次操作,改变数据库的命运!
数据库中的事务是指对数据库执行一批操作,在同一个事务当中,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。Redis 的事务和 MySQL 的事务概念上是类似的. 都是把⼀系列操作绑定成⼀组. 让这⼀组能够批量执 ⾏.Redis 事务本质上是在服务器上搞了⼀个 "事务队列"每次客⼾端在事务中进⾏⼀个操作, 都会把命令先 发给服务器, 放到 "事务队列" 中(但是并不会⽴即执⾏)⽽是会在真正收到 EXEC 命令之后, 才真正执⾏队列中的所有操作。
2024-08-12 18:42:41 989
原创 Spring Cloud Eureka:微服务世界的GPS,让服务无处可藏!
当更换机器, 或者新增机器时, 这个URL就需要跟着变更, 就需要去通知所有的相关服务去修改. 随之⽽来的就是各个项⽬的配置⽂件反复更新, 各个项⽬的频繁部署. 这种没有具体意义, 但⼜不得不做的⼯作, 会让⼈⾮常痛苦.同样的, 微服务开发时, 也可以采⽤类似的⽅案服务启动/变更时, 向注册中⼼报道. 注册中⼼记录应⽤和IP的关系调⽤⽅调⽤时, 先去注册中⼼获取服务⽅的IP, 再去服务⽅进⾏调⽤注册中⼼主要有三种⻆⾊:他们之间的关系以及⼯作内容, 可以通过两个概念来描述谈到注册中⼼, 就避不开CAP理论.C
2024-08-12 15:29:07 705
原创 别让环境搭建毁了你的Spring Cloud项目,一文教你快速搞定!
实现⼀个电商平台(不真实实现, 仅为演⽰) ⼀个电商平台包含的内容⾮常多, 以京东为例, 仅从⾸⻚上就可以看到巨多的功能我们该如何实现呢?如果把这些功能全部写在⼀个服务⾥, 这个服务将是巨⼤的. 巨多的会员, 巨⼤的流量, 微服务架构是最好的选择. 微服务应⽤开发的第⼀步, 就是服务拆分. 拆分后才能进⾏"各⾃开发"@BeanREST(Representational State Transfer), 表现层资源状态转移。
2024-08-12 14:09:27 468
原创 Spring 框架下的 Redis 操作:让你的应用性能飙升!
上篇博客我们讲述了使用Jedis操作Redis,那么如何在Spring中操作Redis?
2024-08-12 10:57:28 336
原创 别再瞎忙了!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 913
原创 Redis和Java的爱恨情仇之常见结构命令
Jedis这个库的本质就是针对Redis的各种命令进行了封装,调用某个方法,就相当于在Redis客户端敲下了对应的命令。
2024-08-11 17:56:33 326
原创 Redis和Java之间的爱恨情仇之使用命令
介绍这些Redis的命令在代码中的操作,挑选一些有代表性的命令,我相信jedis的命令和Redis客户端的命令大差不差!
2024-08-11 17:55:00 277
原创 Redis的边边和角角
有两部分,第一部分是下次光标的位置,另一部分是返回的key,scan是有可能返回空的集合的,如果命令返回的cursor是0,代表遍历结束返回结果不一定是递增的count也不一定是准的。
2024-08-11 17:48:34 1033
原创 Redis客户端-RESP的简简单单介绍
不能编写自定义的qq/王者农药客户端,因为他们并没有公开协议的,但是网上还是有一些自定义的qq自定义的客户端啊?这是因为通过一些抓包/逆向手段,猜测qq的应用层协议是啥样的,猜多猜少靠水平+运气了。
2024-08-11 17:46:02 879
原创 Redis中的zset类型
Question:这里的有序单纯就是升序/降序,那么排序的规则是啥Answer:给zset中的member同时引入了一个属性,分数(score),浮点类型,每个member都会安排一个分数,进行排序的时候,就是按照此处的分数大小来进行升序/降序来排序。
2024-08-11 17:42:01 1131
原创 Redis-Unbuntu安装
这个配置文件就是redis的配置文件,配置文件也就是说一个大的软件包含很多功能,有很多定制的操作,就可以通过配置文件选择开启/设定某些功能。Redis客户端和服务器可以在同一个主机上,也可以在不同主机上。但是目前学习阶段,只有一台电脑,此时客户端和服务器在同一个机器上。在Centos系统安装Redis和Ubuntu系统操作步骤大体一致。redis也是一个客户端-服务器结构的程序,MySQL同样如此。安装如下版本,适用于所以的Ubuntu版本。,将该ip地址改为0.0.0.0。
2024-08-11 17:35:43 1040
原创 Redis中的set类型
集合就是把一些有关联的数据放到一起和list类似,集合中的每个元素也都是string类型(可以使用json这样的格式让string也能存储结构化数据)
2024-08-11 17:29:20 1065
原创 Redis中的Hash类型
Redis自身已经是键值对结构,Redis自身的键值对就是通过哈希的方式来组织的把key这一层组织完成后,到了value这一层,calue其中的一种类型还可以再是哈希后面的field-value是为了防止混淆前面的key。
2024-08-11 17:25:51 1054
原创 Redis中的List类型
列表(List)相当于数组或者顺序表约定最左侧元素下标为0redis的下标支持负数下标 getrange,同时支持左侧和右侧的插入和删除,也就是头插头删,尾插尾删,list内部的结果(编码方式)并非是一个简单的数组,而是更接近于双端队列获取List中的长度,删除元素,获取元素等等因为当前的List,头和尾都能高效的插入删除元素,就可以把这个List当作栈/队列来使用的。
2024-08-11 17:23:24 696
原创 Redis常见数据类型
这里的有序集合,相当于是存储了number之外,话需要存储一个score(权重,分数)Redis底层在实现上述数据结构的时候,会在源码层面,针对上述实现进行特定的优化来达到节省时间/空间的效果,即内部的具体实现的数据结构还会有变数(编码方面会有变数)拿Redis中的哈希表来说,保证查询,插入,删除操作时间复杂度都为O(1),但是在特定情况下会进行一定的调整,不一定是和Java中的哈希表实现方式一模一样类似于买鸭脖,但是商家卖给你鼠脖,口感是一模一样的,类似达到的效果是一样的,让用户感知不到。
2024-08-11 17:15:15 572
原创 Redis中的string类型
指令作用的效果时间复杂度设置指定的key-value结构O(1)get key获取key的值O(1)删除指定的keyO(K)批量设置指定的key和valueO(K)批量获取key的值O(K)incr key指定的key的值+1O(1)decr key指定的key的值-1O(1)指定的key的值+nO(1)指定的key的值-nO(1)指定的key的值+nO(1)指定的key的值追加valueO(1)strlen key获取指定key的值的长度。
2024-08-11 17:07:32 1042
原创 Redis通用命令
基本的全局命令keys:用来查看匹配规则的keyexists:用来判定指定key是否存在del:删除指定的keyexpire:给key设置过期时间ttl:查询key的过期时间type:查看key对应value的类型keys风险:使用keys *可能导致整个系统的崩溃del风险:删除一点影响很小,但是删除很多会导致MySQL乃至整个系统的崩溃redis key过期策略如何实现:定时删除+惰性删除定时器的两种实现方式:时间轮+优先级队列围绕每个数据结构来介绍相关命令。
2024-08-11 17:02:19 1001
原创 Redis持久化
如果子进程里的这个内存数据和父进程的内存数据完全一样了,此时就不会触发真正的拷贝动作(而是父进程和子进程用一份内存数据),但是,其实这俩进程的内存空间,应该是各自独立的,一旦某一方针对内存数据做了修改,就会触发真正的物理内存上的数据拷贝。重启redis服务器,可以看到,redis服务器在重新启动的时候,加载了rdb文件的内容,恢复了内存中之前的状态了。redis生成的rdb文件,是存放在redis的工作目录中的,也是在redis配置文件中,进行设置的。
2024-08-11 13:53:41 936
原创 探索Linux-2-XShell&Xftp&vi/vim&用户管理
vi` 和 `vim` 是类 Unix 系统中最常用的文本编辑器,它们拥有多种模式,允许用户以不同的方式与文本进行交互。Linux用户管理是系统管理的重要组成部分,涉及到用户账户的创建、配置、维护和安全。以下是Linux用户管理的一些基本介绍:- 用户(User):系统中的一个账户,拥有登录系统的权限和特定的用户ID(UID)。- 组(Group):一组用户的集合,拥有特定的组ID(GID),用于权限管理。
2024-07-23 21:49:29 1044
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人