自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于01背包的学习

1049. 最后一块石头的重量 II有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x!= y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块 石头。返回此石头 最小的可能重量。如果没有石头剩下,就返回 0。

2023-08-01 15:03:51 253

原创 SpringCloud学习—Hystrix:服务熔断

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时,异常等,Hystrix能够保证在一 个依赖出问题的情况下, 不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。

2023-07-28 17:28:47 441

原创 python基本知识学习

在控制台输出Hello,World!

2023-07-28 16:58:08 306

原创 SpringCloud学习—Feign负载均衡

Feign是声明式Web Service客户端,它让微服务之间的调用变得更简单,类似controller调用service。SpringCloud集成了Ribbon和Eureka,可以使用Feigin提供负载均衡的http客户端只需要创建一个接口,然后添加注解即可。使用接口方式调用服务Feign,主要是社区版,大家都习惯面向接口编程。这个是很多开发人员的规范。调用微服务访问两种方法1.微服务名字 ribbon2.接口和注解 feign。

2023-07-27 17:59:20 1295

原创 jmeter接口测试、压力测试简单实现

测试查看商品的接口,除了登录接口的其他接口都需要登录时生成的token,也就是上图的jwt值,没有这个值,是无权进行查看接口这个操作。{ "gname": "苹果手机", "num": 1, "price":4000.00, "seller": "root", "username": "${username}" }","code":200,"data":{"jwt":"token值","username":"用户名"}}把验证码接口和登录接口放到循环控制器中,运行测试,查看结果树,可以得到4组测试结果。

2023-07-27 17:34:56 1868

原创 SpringCloud学习—Ribbon:负责均衡及Ribbon

简单的说,就是在配置文件中列出LoadBalancer (简称LB: 负载均衡)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等等)去连接这些机器。即在服务的消费方和提供方之间使用独立的LB设施,如Nginx, 由该设施负责把访问请求通过某种策略转发至服务的提供方!Ribbon就属于进程内LB,它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址!负载均衡简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA (高可用) .客户端负载均衡的工具。

2023-07-24 20:01:21 573

原创 SpringCloud学习(三)—Rest学习环境搭建:服务提供者

1、创建父项目创建一个jdk为1.8的maven空项目2、删除src文件夹因为是父项目,只需要pom.xml即可3、在pom.xml中导入依赖导入springcloud依赖和springboot依赖的版本一定要对应下面是pom文件内容4、创建子项目:api,也是一个普通的maven项目创建一个数据库,数据库里创建一个表,然后在项目中创建一个pojo包,包内创建一个实体类对应数据库的表。数据表实体类pom.xmlapi子项目只是提供实体类的一个项目。

2023-07-21 18:11:28 54

原创 JMeter核心知识(三)—连接数据库、逻辑控制器、定时器

一起使用,读取返回结果中一系列相关的变量。

2023-07-21 17:11:02 97

原创 JMeter核心知识(二)— 断言、关联以及录制脚本

当请求之间有依赖关系,比如一个请求的入参是另一个请求的返回数据,这时候就需要用到关联。:代表非贪婪匹配,找到左边界后,往右查找匹配右边界,只要右匹配的右边界,就会停止查找。操作:右击HTTP请求 --> 添加 --> 后置处理器 --> 正则表达式提取器。.*:找到左边界值后,往右查找右边界,找到最后的右边界,中间的值将会被记录下来。操作:右击http请求 --> 添加 --> 断言 --> 响应断言。作用:对HTTP请求的任意格式响应结果进行断言。作用:针对JSON格式的响应结果数据进行提取。

2023-07-20 17:10:44 120

原创 二分查找法应用场景

解题思路:这道题目暗含着一个有序数列(比num小的数顺序组成的数列arr),num如果是一个平方数,一定能在arr中有一个数字a的平方为num。解题思路:如果珂珂在h小时内吃掉所有香蕉的最小速度是每小时 k 个香蕉,则当吃香蕉的速度大于每小时 k 个香蕉时一定可以在 h 小时内吃掉所有香蕉,当吃香蕉的速度小于每小时 k 个香蕉时一定不能在 h 小时内吃掉所有香蕉。由于每小时最多吃一堆香蕉,即每小时吃的香蕉数目不会超过最多的一堆中的香蕉数目,因此二分查找的上界是最多的一堆中的香蕉数目。

2023-07-20 00:03:09 258

原创 SpringCloud学习—Eureka服务注册中心

Eureka是Netflix的有个子模块,也是核心模块之一。Eureka是基于REST的服务,用于定位服务,以实现云端中间件层服务发现和故障转移,服务注册与发现对于微服务来说是非常重要的,有了服务注册与发现,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了,功能类似于Dubbo的注册中心,比如Zookeeper。Netflix在涉及Eureka时,遵循的就是API原则.

2023-07-19 20:36:13 39

原创 JMeter核心知识(一)—Http请求与jmeter参数

适用于:定义全局变量位置:测试计划页面(一般情况下)配置元件 --> 用户定义的变量步骤:添加线程组添加用户定义的变量添加http请求,引用变量${变量名}添加查看结果树csv数据文化配置(配置元件中)适用于大量的测试数据时的使用用户参数(前置处理器中)适用于少量测试数据用户定义的变量(测试计划 / 配置元件中)定义全局变量。

2023-07-19 15:58:32 777

原创 SpringCloud学习(二)—微服务与SpringCloud的特点

优点:缺点:

2023-07-18 19:57:56 48

原创 JMeter学习(二)—组件介绍

注意:测试计划(项目名称)测试计划中至少有一个线程组线程组中至少有一个取样器测试计划中必须有监听器。

2023-07-18 17:05:21 48

原创 SpringCloud学习(一)—概念

Spring Cloud就是微服务系统架构的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、负载均衡、断路器、数据监控等操作, 而Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。SpringCloud 是一个服务治理平台,提供了一些服务框架,包含了:服务注册与发现,配置中心,消息中心,负载均衡,数据监控等等。

2023-07-17 17:42:45 65

原创 JMeter学习(一)—下载安装

下载后无需安装,解压后即可使用。

2023-07-17 17:36:38 94

原创 接口测试学习

选择post请求方式,输入要请求的url,传参方式以混合表单为例,选择form-data,然后将参数名称和对应的值填入参数区,点击send发送请求,在响应区即可看到返回结果。选择get请求方式,输入要请求的url,传参方式以json为例,选择raw再选择JSON,然后将参数填入请求参数区,点击send发送请求,在响应区即可看到返回结果。接口功能的正确性,输出结果的正确性,以及对各种异常情况的容错处理,权限控制、分页、调用次数的限制。熟悉接口业务,接口地址,鉴权方式,入参,出参,错误码。

2023-07-16 17:32:49 47

原创 SpringBoot+RabbitMQ+Redis实现秒杀功能

三者都成功后,在redis中存储用户id和订单id,作为秒杀成功的记录,如果用户再次进行秒杀时,直接从redis查询是否存在秒杀成功的记录,存在即返回已经秒杀,不存在就下一步。传统处理:如果不涉及到redis的话,最初的用户请求进来的流程大概是先去数据库判断下当前用户是否已经秒杀过当前商品,如果秒杀过的话则返回秒杀失败不能重复秒杀,否则的话则执行减库存,下订单等步骤。秒杀功能的流程是:获得秒杀资格后,需要进行商品数量减少、生成订单、生成秒杀订单的操作,当三者都成功运行后,才能秒杀成功。

2023-07-16 16:48:05 1579

原创 软件测试的流程及测试用例的设计方法

根据需求规格说明书明确测试的内容,提取测试点(软件包含多个功能点,每个功能点包含多个子功能测试点,测试点就是软件功能细分的最小单位)。注意:场景法的重点是测试流程,因此每个流程一个用例即可,流程测试没有问题并不能说明系统功能没有问题了,还需要针对单步的功能进行测试。2、依次对每一个输入项,按从上到下,从左到右的顺序来进行分析,分析约束限制,是否必填,隐形需求(需求中没有提及,,但是应该进行验证的需求,如手机号码的格式)是一种典型的、重要的黑盒测试方法,是把所有可能的输入划分为N个子集合。

2023-07-13 21:02:57 795

原创 软件测试及其分类

软件是计算机系统中的程序和相关文件或文档的总称。使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。

2023-07-13 20:51:28 67

原创 Python的下载安装

IDLE是Python的集成开发和学习环境,全称Integrated Development and Learning Environment,是一个可视化的shell命令行,是一个简单的命令运行窗口,安装后在电脑开始菜单(windows桌面左下角)中生成IDLE快捷方式。在cmd命令窗口的默认路径中使用pip安装或卸载库,一般是安装到python路径下的Lib→site-packages文件夹中,卸载也是卸载python路径下的Lib→site-packages文件夹中的库。print("你好");

2023-07-12 18:39:15 2347

原创 Vue3+ElementPlus仿写csdn博客部分功能demo

往后写的组件如果需要被跳转的,都要来这里注册,以便后续使用。在views文件夹创建一个Index.vue,这个组件是一个容器组件,接下来实现的功能都是在这个组件的基础上实现的。页面的左边是一个功能的菜单栏以及一个发布文章的按钮,在<el-aside></el-aside>模块引入element-plus的菜单组件以及按钮组件,修改一下样式,自己满意即可。然后把编辑器页面的url注册,使用<router-link to="url"></router-link >绑定发表的按钮,通过点击发表访问编辑器页面。

2023-07-09 15:37:33 294

原创 RabbitMQ学习(八)—SpringBoot整合RabbitMQ

创建一个SpringBoot项目,勾选SpringWeb以及RabbitMQ选项。配置类用于声明我们的交换机和队列,需要注册进容器里面。

2023-07-05 19:32:23 178

原创 RabbitMQ学习(七)—主题模式及work模式的入门案例

.s.#可以接收com.s.som、s.com、com.s、s、com.com.s.com.com等。运行生产者代码后,在图形管理界面会生产一个direct_msg_topic交换机,其类型为topic,并且绑定了不同路由key的队列4、5、6。现在将生产者代码中的发送消息给队列的路由key改为s.rabbit,然后运行生产者代码,可以在图形界面看到只有队列5、6存储了一条信息;现在将生产者代码中的发送消息给队列的路由key改为s,然后运行生产者代码,可以在图形界面看到只有队列5存储了一条信息;

2023-07-03 20:00:55 160

原创 RabbitMQ学习(六)—路由模式入门案例

成功运行消费者代码后,只有接收队列1、3的消费者得到了生产者的消息,在图形管理界面,可以发现队列里的消息已经被消费。交换机,查看该交换机,其类型为direct;并增加了三条队列,队列只有绑定routekey为s1的队列有一条信息。成功运行生产者代码后,我们可以在RabbitMQ的图型管理页面发现增加了一个自定义的名为。查看 队列,新增三条队列,绑定路由key为s1的队列1、3接收到消息。如果路由键完全匹配的话,消息才会被投放到相应的队列。查看交换机信息,可以看到交换机类型为:direct。

2023-07-01 18:24:24 112 1

原创 Vue学习之条件渲染

注意:v-if可以和v-else-if、v-else一起使用,但要求结构不能被打断。使用v-if的时,元素可能无法获取到,而使用v-show一定可以获取到。特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉。特点:不展示的DOM元素直接被移除。v-else-if="表达式"写法:v-show="表达式"适用于:切换频率较低的场景。适用于:切换频率较高的场景。v-if="表达式"

2023-06-29 19:13:34 29

原创 RabbitMQ学习(五)—五种模式

一个消费者将消息首先发送到交换器,交换器绑定到多个队列,然后被监听该队列的消费者所接收并消费。生产者将消息发送到direct交换器,在绑定队列和交换器的时候有一个路由key,生产者发送的消息会指定一个路由key,那么消息只会发送到相应key相同的队列,接着监听该队列的消费者消费消息。交换器允许匹配 AMQP 消息的 header 而非路由键,除此之外,header 交换器和 direct 交换器完全一致,但是性能却差很多,因此基本上不会用到该交换器。与路由模式相似,但是,主题模式是一种模糊的匹配方式。

2023-06-29 18:55:42 1058 1

原创 Vue安装及环境配置

由于Node.js 中默认安装了 npm,所以不用额外配置就能在全局命令中使用 npm命令,win+R打开命运行,在cmd中测试一下是否安装成功了:输入 node -v 与 npm –v分别查看版本信息。-g是全局安装,指安装到global全局目录去,如果不加-g,模块就会安装到当前路径下的node_modules文件夹下,没有目录则自动创建。1、在自己想要安装node.js的文件夹下创建两个文件夹node_global及node_cache分别作为默认安装目录和缓存日志目录。安装vue-router。

2023-06-28 19:32:48 961 1

原创 RabbitMQ学习(四)——RabbitMQ的运行流程

生产者连接到 RabbitMQ Broker , 建立一个连接( Connection ),开启一个信道( Channel )。消费者连接到 RabbitMQ Broker,建立一个连接( Connection ),开启一个信道( Channel)。消费者向 RabbitMQ Broker 请求消费相应队列中的消息,可能会设置相应的回调函数,以及做一些准备工作。等待 RabbitMQ Broker 回应并投递相应队列中的消息,消费者接收消息。如果找到,则将从生产者发送过来的消息存入相应的队列中。

2023-06-28 18:10:18 205 2

原创 Vue语法学习(一)——事件处理及事件修饰符

代码:小结:代码:小结:

2023-06-27 20:35:29 40

原创 RabbitMQ学习(三)——入门体验

查看有关自己的虚拟机节点virtual hosts的统计信息,包括其他用户在该节点virtual hosts的活动信息。先运行生产者的代码,然后我们可以在rabbitmq的管理页面看到生成一个队列,在连接选项卡可以看到一个生产者已连接。查看自己的虚拟机节点virtual hosts的queues,exchange 和bindings信息。查看和创建和删除自己的virtual hosts所属的policies 和 parameters信息。查看所有的virtual hosts的全局统计信息。

2023-06-27 20:07:31 59

原创 RabbitMQ学习(二)——Linux下安装RabbitMQ

RabbitMQ是采用 Erlang语言开发的,所以系统环境必须提供 Erlang环境,需要是安装 Erlang。默认情况下,rabbitmq没有安装web端的客户端软件,需要安装才可以生效。首先将下载好的文件上传到服务器,创建一个文件夹用来存放文件,然后切换到。:可以登录控制台、查看所有信息、并对rabbitmq进行管理。安装启动RabbitMQWeb管理界面。插件,首先安装该插件,然后解压安装。登录控制台,查看所有信息。5、启动RabbitMQ服务。4、安装RabbitMQ。然后安装RabbitMQ。

2023-06-26 20:33:44 1542 1

原创 RabbitMQ学习(一)——基本概念

MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。RabbitMQ简单来说就是一个消息队列中间件,用来保存消息和传递消息的一个容器。在此过程中充当一个中间人的作用。AMQP。

2023-06-25 23:41:02 140

原创 Redis学习(三)——Redis的基本知识

它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。:Redis是将所有的数据放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作!),对于内存系统来说,如果没有上下文切换效率就是最高的,多次读写都是在一个CPU上的,在内存存储数据情况下,单线程就是最佳的方案。在redis中无论什么数据类型,在数据库中都是以key-value形式保存,通过进行对Redis-key的操作,来完成对数据库中数据的操作。2、redis是单线程的。

2023-06-23 16:57:24 60 1

原创 Redis学习(二)——Redis的基本概念

Redis(Remote Dictionary Server ),即远程字典服务。是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,一个非关系型的数据库,并提供多种语言的API。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

2023-06-23 16:30:56 39 1

原创 Redis学习(一)——Linux安装Redis

修改redis为后台运行(daemonize(初始状态为no)为yes)等待make命令执行完成之后使用make install命令。6、将redis的配置文件拷贝到在usr/local/bin里。2、将安装包通过x-ftp上传到服务器。10、查看redis的进程是否进行。1、在官网下载redis安装包。11、关闭redis服务?8、启动redis服务器。

2023-06-23 16:16:55 42 1

原创 开发防火墙端口后无法通过宿主机访问容器?已解决!

docker服务启动时定义的自定义链DOCKER,当 centos7 firewall 被清掉时,firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。当你使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后操作 firewalld ,你就需要重启 Docker 进程了。开放Linux的防火墙端口和阿里云的安全组都后,却无法在浏览器通过宿主机访问容器。

2023-06-23 15:46:37 300 1

原创 Docker学习(六)——DockerFile

DockerFile就是用来构建docker镜像的构造文件!命令脚本!

2023-06-23 14:51:22 35 1

原创 Docker学习(五)——容器数据卷

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。(实现容器的持久化、容器之间的继承 + 数据共享)通过测试我们可以发现:数据卷挂载之后,删除容器,存储的数据不会被删除,这实现了容器数据持久化功能。所有的docker容器内的卷,没有指定目录的情况下都是在。4:数据卷的生命周期一直持续到没有容器使用它为止。3:数据卷中的更改不会包含在镜像的更新中。1:数据卷可在容器之间共享或重用数据。2:卷中的更改可以直接生效。使用命令来挂载 -v。

2023-06-23 14:32:44 41 1

原创 Docker学习(四)——容器命令

【代码】Docker学习(四)

2023-06-23 10:59:46 40 1

空空如也

空空如也

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

TA关注的人

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