自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 微服务实现全链路灰度发布

/此时调用时,将request作为参数传给调用方法,在得到服务实例时通过判断请求头中的标识来返回实例});//将request 传给调用方法} else {//得到 Request 对象,[通过方法传递参数得到此对象]//从 Request 对象的 Header 中得到灰度标签//判断灰度列表不为空}else {@Bean。

2024-07-21 16:31:37 294

原创 Spring Cloud Gateway 入门与实战

Component/*** @param exchange 要执行的事件* @param chain 过滤器链*/@Override//此处使用的是相应试 HTTP}else {@Override//过滤器的执行顺序,值越小,越早执行return 0;

2024-07-16 19:02:08 782

原创 Spring Cloud LoadBalancer 入门与实战

自定义负载均衡器只需要参考官方负载均衡器写就可@Autowired} else {} else {} else {} else {} else {try {if (!} else {//获取request 对象//自定义负载据衡器策略,通过ip hash后,取模获取下标//获取服务实例@Resource@Bean。

2024-07-09 23:41:50 1099

原创 OpenFeign 入门与实战

自定义重试类@Overridethrow e;try {//重试间隔时间@Override设置配置文件spring:cloud:nacos:discovery:openfeign:client:config:default: #全局配置connect-timeout: 1000 #连接超时时间read-timeout: 1000 #读取超时时间retryer: com.example.consumer.config.MyRetryer #自定义重试类。

2024-07-07 14:19:00 970

原创 Nacos-注册中心

Nacos 注册中心的底层实现主要依赖于两个关键组件:服务注册(Service Register)和服务发现(Service Discovery)。长轮询:服务器接收到客户端的请求之后,如果没有数据更新,则连接保持一段时间,直到有数据或者超时才会返回。Nacos 配置中心是支持配置项自动刷新的,而其实现的原理是通过。由于在父节点已经添加过相关依赖,在子节点可以不用添加。

2024-06-30 22:25:57 736

原创 Nacos-配置中心

启动成功后就可以使用 http://localhost:8084/nacos 访问 Nacos 的控制台了。注:创建项目时,一定要配置国内源,不然依赖无法加载。

2024-06-26 15:57:24 1028

原创 MySQL函数

(1) 当 interval 作为一个函数是, 它被当做一个比较函数, 即 interval(), 如 interval(4,0,1,2,3,4,5,6), 则在函数中,第一个数 4 作为被比较数, 后面的0,1,2,3,4,5,6 为比较数, 然后将后面的数字依次与4进行比较, 返回小于等于4 的个数, 所以上述结果为5 , 注意,只有将4 后面的数字从小到大进行排列, interval 函数才能正常使用, 若排序混乱, 可以使用,但会影响最终结果。返回第一个取值为true的布尔表达式所对应的值。

2024-05-24 20:13:35 345

原创 Redis

它通过添加多层链表的方式,提供了一种以空间换时间的方式来加速查找。跳跃表由一个带有多层节点的链表组成,每一层都是原始链表的一个子集。最底层是一个完整的数据链表,包含所有的元素。每个更高层级都是下层级的子集,通过添加额外的指针来跳过一些元素。这些额外的指针称为 “跳跃指针”,它们允许快速访问更远的节点,从而减少了查找所需的比较次数。跳跃表的平均查找时间复杂度为 O(log n),其中 n 是元素的数量。这使得它比普通的有序链表具有更快的查找性能,并且与平衡二叉搜索树(如红黑树)相比,实现更为简单。

2024-05-24 20:13:12 894

原创 JavaScript 基础

注意,JS 中的字符串常量可以用单引号表示,也可以使用双引号表示.HTML 中推荐使用双引号,JS 中推荐使用单引号(使用双引号容易出现截断问题)

2024-05-24 20:11:42 304

原创 Git 指令

<<<<<< HEAD” ~ “=====” 之间的内容和 “=====~>>> dev1”之间的内容就是发生冲突的内容,我们可以选择保留的内容,将不需要的进行删除(正常的vim 删除操作),删除完后再进行 add、commit 和 merge 操作。将远程 origin 仓库中的 master 分支拉下来合并到本地的master 分支。合并某个stash版本,本质上和分支合并差不多,也会有合并冲突,因此当我们合并过一个之后,在我们合并第二个时需要先提交此次合并的内容,并且下次合并时可能会发生合并冲突。

2024-04-14 22:59:38 1632

原创 Redis 安装

默认安装的⽬录为/opt/rh/rh-redis5/root/usr/bin/,藏的太深了,不⽅便使⽤.我们通过符号链接(相当于快捷方式),把需要⽤到的关键内容设置到⽅便使⽤的⽬录中:1)根据可执行程序设置符号链接2)针对配置文件设置符号链接3) 启动守护进程4) 设置工作目录先创建工作目录再在配置文件中,设置工作目录5)设置日志目录先创建日志目录再在配置文件中,设置日志目录kill 进程id。

2024-03-27 21:40:27 304

原创 Spring 事务和事务传播机制

声明式事务的实现很简单,只需要在需要的方法上添加 @Transantioinal 注解就可以实现了,

2024-01-25 22:39:32 1186 2

原创 SpringBoot 统一功能处理

Overrideresponse.getWriter().write("当前未登录");@Override//拦截所有接口//排除接口//排除静态资源中image包下的所有资源。

2024-01-23 22:16:44 919

原创 Spring AOP

/表明此类为一个切面@Aspect@Component//定义一个切点,这里使用AspectJ 表达式语法其中pointcut 为空方法,它不需要有方法体,此方法名就是起到一个“标识”的作用,标识下面的通知方法具体指的是哪个切点(因为切点可能会有很多个)切点表达式支持三种通配符::匹配任意字符,只匹配一个元素(包类,或方法,方法参数)..:匹配任意字符,可以匹配多个元素,在表示类时,必须和联合使用。

2024-01-22 00:51:57 986

原创 MyBatis 查询数据库

if>标签,只适用于一个非必填的字段,如果所有要插入的属性都是非必填的属性,就考虑使用<trim>标签结合<if> 标签,对多个字段都采取动态生成的方式.在某些场景,如再添加用户的时候不确定某些字段是否会传递,为了不使数据库中对应的值为null,就需要用到下面的标签.${} 适用场景: 当业务需要传递 SQL 命令时, 只能使用 ${}, 不能使用 #{}。• keyProperty:数据库自增的id 在类对象中对应的属性名,会将数据库中的自增主键的值赋值给该属性。而#{} 是安全的,不存在SQL注入。

2024-01-15 21:27:22 1017

原创 SpringMVC

RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一,它是用来注册接口的路由映射的。路由映射:所谓的路由映射指的是,当用户访问一个url 时,将用户的请求对应到程序中某个类的某个方法的过程就叫做路由映射。//写法一//写法二//写法三post 请求的 2 中写法//写法一//写法二。

2024-01-10 23:34:18 1140

原创 SpringBoot 日志打印

打印日志效果:在代码中我们明明打印了五次,但为什么只打印了三条日志信息呢?这就又涉及到了日志级别。

2023-12-30 14:43:47 1294

原创 SpringBoot 配置文件

理论上 properties 可以和 yml 一起存在于一个项目中,当两者一起存在一个项目中时,如果配置文件中出现了同样的配置,比如 properties 和 yml 中都配置了端口号,那么这个时候会以 properties 中的配置为主,也就是。yml 是树形结构的配置文件,它的基础语法是"key: value",注意 key 和 value 之间使用英文冒号加空格的方式组成的,其中的空格不可省略。properties 可以和 .yml 共存,但实际的业务当中,我们通常只会采取一种同一的配置文件格式。

2023-12-27 23:19:48 1075

原创 Spring的使用-Bean对象的储存和获取/Bea对象的作用域与生命周期

比如 singleton 单例作用域,就表示 Bean 在整个 Spring 中只有一份,它是全局共享的,那么当其他人修改了这个值之后,那么另一个人读取到的就是被修改的值。

2023-12-26 19:56:17 951

原创 性能测试-LoadRunner

在Load Runner 中,为了达到并发这样的机制,就引入了集合点:lr_rendezvous("rendezvous1");事务结束:lr_end_transaction("login", LR_AUTO);开启事务:lr_start_transaction("login");注意:事务必须有开始有结束,开始的事务和结束的事务的名字必须一致。重新设置好参数后点击Parameters可以添加新的参数。(1) lr_log_message("登录")设置日志打印,方便查看日志。

2023-12-19 16:29:27 513

原创 性能测试概述

测试人员借助性能测试工具(Jmeter/LoadRunner),模拟系统在不同的场景下,对应的性能指标是否达到预期。

2023-12-18 19:49:58 1010

原创 Junit+Selenium 自动化测试

标记一个测试用例忽略此条测试用例在所有用例执行前先执行在所有用例执行后再执行在每个测试用例执行前执行在每个测试用例执行后执行。

2023-12-18 19:49:40 397

原创 Spring(Spring/Springboot 的创建) 基础

一. Spring1.1 Spring是什么?Spring 指的是 Spring Frameword(Spring 框架),它是一个开源框架。Spring 是包含了众多工具方法的IoC容器。1.2 什么是容器?容器时用来容纳某种物品的装置。我们之前接触到的容器:• List/Map -> 数据存储容器• Tomcat-> Web 容器1.3 什么是IoC?IoC(Inversion of Control) 翻译成中文是“控制反转”的意思,也就是说sp

2023-12-07 13:42:22 1001 1

原创 自动化测试-Selenium

selenium 是用来做web自动化测试的框架,支持各种浏览器,各种,支持各种语言。

2023-11-25 23:55:30 2278 1

原创 软件测试:测试分类

验证界面内容的完整性,一致性,准确性,友好性,兼容性.比如页面内容对屏幕大小的自适应,换行,内容是否全部清晰展示.验证整个界面布局和排版是否合理,不同板块字体的设计,图片的展示是否符合需求对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用,有效和无效的状态是否设计合理.界面的布局和色调符合当下时事的发展.重叠,截断,文字不合理自动换行等.

2023-11-20 22:42:03 309

原创 软件测试: 测试用例

测试环境,操作步骤,测试数据,预期结果。

2023-11-19 21:16:42 377

原创 网络原理-IP/数据链路层协议

IP协议有两个版本,IPv4和IPv6.我们通常所用的IP协议,若没有特殊说明,默认都是IPv4.IPv4数量=2^32,大约43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址.对于全世界的计算机来说,这个数量是不够的,所以后来推出了IPv6(长度128位,是IPv4的4倍).但因为目前IPv4还广泛的使用,且可以使用其他技术(NAT机制)来解决IP地址不足的问题,所以IPv6也就没有普及.NAT机制把所有的IP地址分成两大类.

2023-11-17 12:59:23 470

原创 网络原理-UDP/TCP详解

由上图可以看出,一个UDP报文最大长度就是65535.• 16位长度,表示整个数据报(UDP首部+UDP数据)的最大长度(注意,这里的16位UDP长度只是一个标识这个数据报长度的字段,并不是这个数据报传输的数据)• 如果校验和出错,就会直接丢弃。:通过网线传输时,电信号使用高低电平来表示0和1.。但是,如果外部环境干扰,就有可能导致低电平->高电平,高电平->低电平,造成比特翻转=>数据就传输错了。校验和就是通过数据报中的数据内容通过计算得到的。值得注意的是。

2023-11-12 23:05:14 3990 2

原创 网络编程

Socket 套接字,是由系统提供用于网络通信的技术,是基于TCP/IP 协议的网络通信的基本操作单元。基于 Socket套接字的网络程序开发就是网络编程。

2023-11-05 17:53:03 514 1

原创 软件测试概念与基础

软件测试就是执行和运行软件的过程,其目的是为了发现软件功能和需求不符合的地方,或者寻找实际输出和预期输出之间的差异。当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能和要求时,就是软件错误。需求就是满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和全能,包含用户需求和软甲需求。

2023-10-10 23:22:05 8

原创 网络初识

IP 地址主要用于表示网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址IP 地址是一个32为的二进制数,通常被分割为4个“8位二进制数“(也就是4个字节),通常用”点分十进制“的方式来表示,即 a.b.c.d 的形式(a,b,c,d 都是0~255之间的十进制整数)。如:100.5.6.3。127.* 的IP地址用于本机环回(loop back) 测试,通常是127.0.0.1。

2023-09-22 14:38:33 765

原创 文件IO操作

进程,使用 PCB 这样的结构来表示,其中有一个结构为 文件描述符表,记载了当前进程都打开了哪些文件,每次打开一个文件,就会在这个表里,申请到一个位置,这个表可以当成一个数组,数组下标就是文件描述符,数组元素就是这个文件在内核中的结构体表示。但是,这个表长度不是有限制的,不能无休止的打开,但是又不释放,一旦满了,继续打开,就会打开失败。构造File对象的过程中,可以使用 绝对路径/相对路径进行初始化.这个路径指向的文件,可以是真实存在的,也可以是不存在的.(注意,有File 对象,并不代表真实存在该文件)

2023-09-17 17:39:13 150

原创 多线程--进阶

ABA问题: 假设存在两个线程t1和 t2 ,有一个共享变量,初始值为 A.接下来,线程t1 想使用 CAS把num 值改成Z,那么就需要• 先读取 num的值,记录到oldNum 变量中.• 使用CAS 判定num的值是否为A,如果为A,就修改成了Z.但是,在t1 执行这两个操作之间,t2 线程可能把num 的值从A变成了B,有从B改成了A.当t1 使用oldNum的值和内存中的值进行比较时,就会发现值没有变,从而执行CAS指令,对num进行赋值.

2023-09-09 20:50:26 156

原创 KMP 算法

当 k回退后,再次匹配 sub.charAt(k) == sub.charAt(i - 1)成功后,我们需要再次判定 next[i]==next[k+1]?KMP 算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速的匹配的目的.具体实现是通过一个next() 函数来实现的,函数本身包含了模式串的局部匹配信息。KMP的精髓就是 next 数组:也就是用 next[ j ]=k 来表示,不同的 j 来对应一个K值,这个K就是你将来要移动的 j要移动的位置。

2023-08-18 17:16:12 53

原创 Day15-Day21

(1) 数据库做join操作时,至少要涉及到几张表?()A. 3B. 1C. 2D. 4答案: B数据库查询语句可以自连接(2) 下面哪一个命令为删除 sample 数据库的 tb_name 表()答案: D当在table 数据库中(使用过use table后),可以使用drop table sample.tb_ame,否则,不可以.而 D 选项不在该数据库中仍可以删除该表.(3) 在 Myaql 中,语句 SELECT IF(-1,5,2)的返回值是:A. 2B. 6。

2023-08-14 13:31:51 237

原创 进程与多线程——初阶

阻塞队列是一种特殊的队列, 也遵守"先进先出" 的原则.阻塞队列是一种线程安全的数据结构,并且具有以下特性:• 当队列满的时候, 继续入队列就会阻塞, 直到有其他线程从队列中取走元素• 当队列空的时候, 继续出队列就会阻塞, 直到有其他线程往队列中插入元素阻塞队列的一个典型应用场景就是"生产这消费者模型". 这是一中非常典型的开发模型。

2023-08-13 12:55:38 233

原创 Day8~Day14

关系数据库中的关系必须满足一定的要求, 满足不同程度要求的为不同范式. 目前关系数据库有六种方式: 第一范式(1NF) , 第二范式(2NF) , 第三范式(3NF) , Boyce-Codd 范式(BCNF) , 第四范式(4NF) 和第五范式(5NF).datapart 参数的取值范围是{yy/yyyy , qq/q , mm/m , dy/y , dd/d , wk/ww , dw/w , hh , mi/n , ss/s ,ms , mcs , ns}若没有给定初始大小,则对应两个空数组.

2023-08-05 11:43:08 54

原创 树与二叉树

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它。它具有以下的特点:1.有一个特殊的结点,称为根结点,根结点没有前驱结点2.除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合Ti (1 <= i <=m) 又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继3.树是递归定义的一个节点含有字树的个数成为该节点的度;如上图:A的度为6。

2023-07-23 18:16:57 41

原创 JVM--八股

2. 如果伊甸区的对象,熬过第一轮 GC ,就会通过复制算法,拷贝到生存区,生存区分成两半(大小均等),一次只使用一半. 垃圾回收扫描伊甸区对象,也是发现垃圾就淘汰,不是垃圾的,通过复制算法,复制到生存区的另一半。程序计数器,就是一个单纯存地址的整数,不需要随着线程一起销毁,栈也是随着线程一起销毁,方法调用完毕,方法的局部变量自然随着出栈操作就销毁了,元数据区/方法区,存的类对象,很少会"卸载"1. 消耗更多的时间,因此某个对象成了垃圾,也不一定能第一时间发现,因为扫描的过程中,需要消耗时间。

2023-07-22 22:54:20 99

原创 Linux 基本使用

cp 指令用于复制文件或目录, 如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中. 若同时指定多个文件或目录,且最后的目的地并非一个已存在的目录,则会出现错误信息.如果指定一个文件或目录,且最后的目的地是一个并不存在的目录,则会创建该目录,并重命名为给定的目录。-p ,--parents 可以是一个路径名称.此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录。

2023-07-18 22:16:18 157

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除