- 博客(23)
- 问答 (3)
- 收藏
- 关注
原创 黑马头条详解(四)
当任务调度以集群方式部署,同一个任务调度可能会执行多次,例如:电商系统定期发放优惠券,就可能重复发放优惠券,对公司造成损失,信用卡还款提醒就会重复执行多次,给用户造成烦恼,所以我们需要控制相同的任务在多个运行实例上只执行一次。如果将任务调度程序分布式部署,每个结点还可以部署为集群,这样就可以让多台计算机共同去完成任务调度,我们可以将任务分割为若干个分片,由不同的实例并行执行,来提高任务调度的处理效率。
2024-02-21 14:02:16
1070
原创 黑马头条项目详解(三)
定时任务:有固定周期的,有明确的触发时间延迟任务:没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件,任务可以立即执行,也可以延迟应用场景场景一:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单;如果期间下单成功,任务取消场景二:接口对接出现网络问题,1分钟后重试,如果失败,2分钟重试,直到出现阈值终止。
2024-02-19 16:59:26
1746
原创 代码实现接口自动化测试
接口自动化:使用工具或代码代替人对接口进行测试的技术测试目的:防止开发修改代码时引入新的问题测试时机: 开发进行系统测试转测前,可以先进行接口自动化脚本的编写。 开发进行系统测试转测后,优先进行系统测试用例的执行,再进行接口自动化脚本的编写。1、选取自动化测试用例 优先级高(先实现业务流程用例、后实现单接口用例) 功能稳定2、搭建自动化测试环境 核心技术: 编程语言:python(也可以使用其他
2023-11-19 21:50:10
497
1
原创 Postman实现接口自动化测试
功能测试从页面发起请求进行测试,接口测试可以借助工具或代码直接将数据发送到服务端进行测试。功能测试和接口测试对应的时间接口测试的流程URL的组成。
2023-11-19 11:30:17
7716
8
原创 JMeter进阶
学习目标能掌握JMeter的逻辑控制器能掌握JMeter的关联操作能掌握JMeter能掌握JMeter能掌握JMeter能知道JMeter的分布式原理。
2023-11-16 16:45:56
303
1
原创 JMeter基础
JMeter是Apache组织使用Java 开发的一款测试工具:1、可以用于对服务器、网络或对象模拟巨大的负载;(高并发)2、通过创建带有断言的脚本来验证程序是否能返回期望的结果。以测试该接口为例:首先要有个测试计划测试计划右键点击添加-线程-线程组线程组右键点击添加-取样器-Http请求想查看结果,右键点击测试计划-添加-监听器-查看结果树,当jmeter执行完接口后会获取结果当需要调用时,使用 ${变量名}
2023-11-15 16:46:38
198
原创 微服务(七)之分布式事务
下单业务整体流程:由于订单、购物车、商品分别在三个不同的微服务,而每个微服务都有自己独立的数据库,因此下单过程中就会跨多个数据库完成业务。而每个微服务都会执行自己的本地事务:交易服务:下单事务购物车服务:清理购物车事务库存服务:扣减库存事务整个业务中,各个本地事务是有关联的。因此每个微服务的本地事务,也可以称为。多个有关联的分支事务一起就组成了。我们必须保证。分布式事务就是解决全局事务同时成功或失败的问题。出现以下情况之一就可能产生分布式事务问题:业务跨多个服务实现业务跨多个数据源实现。
2023-11-06 18:22:03
364
2
原创 微服务(六)之服务保护
微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。例如,购物车服务,有些业务调用服务B,有些调用商品服务,此时商品服务出现了故障,导致购物车服务查询商品服务变得很慢。假如,此时购物车服务访问商品服务的接口的频率很高,此时购物车服务也会阻塞,导师tomcat资源耗尽,然后购物车服务也变得很慢。这样整个调用链路都可能会出现故障,造成雪崩。微服务相互调用,服务提供者出现故障或阻塞。服务调用者没有做好异常处理,导致自身故障。调用链中的所有服务级联失败,导致整个集群故障。
2023-11-06 15:07:26
267
1
原创 微服务(五)之配置管理
到目前为止已经解决了微服务相关的几个问题:微服务远程调用微服务注册、发现微服务请求路由、负载均衡微服务登录用户信息传递不过,现在依然还有几个问题需要解决:网关路由在配置文件中写死了,如果变更必须重启微服务某些业务配置在配置文件中写死了,每次修改都要重启服务每个微服务都有很多重复的配置,维护成本高这些问题都可以通过统一的解决。
2023-11-05 15:53:20
357
1
原创 微服务(四)之网关
无论是还是都支持自定义,只不过编码方式、使用方式略有差别。自定义不是直接实现,而是实现。最简单的方式是这样的://该类的名称一定要以GatewayFilterFactory为后缀!@Component@Override@Override// 获取请求// 编写过滤器逻辑System.out.println("过滤器执行了");
2023-11-04 21:45:50
1747
2
原创 微服务(三)之服务注册
在上一章我们实现了微服务拆分,并且通过Http请求实现了跨微服务的远程调用。不过这种手动发送Http请求的方式存在一些问题。试想一下,假如商品微服务被调用较多,为了应对更高的并发,我们进行了多实例部署,如图:此时,每个的实例其IP或端口不同,问题来了:item-service这么多实例,cart-service如何知道每一个实例的地址?http请求要写url地址,服务到底该调用哪个实例呢?如果在运行过程中,某一个实例宕机,依然在调用该怎么办?如果并发太高,临时多部署了N台实例,
2023-11-02 12:13:07
667
原创 微服务(二)之服务拆分
黑马商城项目的基本结构: 登录模块的流程登录入口在中的方法 1.2、搜索商品在首页搜索框输入关键字,点击搜索即可进入搜索列表页面: 该页面会调用接口:,对应的服务端入口中的方法:1.3、购物车在搜索到的商品列表中,点击按钮,即可将商品加入购物车 同时这里还可以对购物车实现修改、删除等操作。相关功能全部在中: 其中,查询购物车列表时,由于要判断商品最新的价格和状态,所以还需要查询商品信息,业务流程如下:在购物车页面点击按钮,会进入订单结算页面:点击提交订单,会提交请求到服务端,
2023-11-01 21:01:46
438
原创 微服务(一)
顾名思义,整个项目中所有功能模块都在一个工程中开发;项目部署时需要对所有模块一起编译、打包;项目的架构设计、开发模式都非常简单。是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用。如图所示。
2023-10-31 21:14:55
124
1
原创 Docker
镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。举个例子,我们要从0部署一个Java应用,大概流程是这样:准备一个linux服务(CentOS或者Ubuntu均可)安装并配置JDK上传Jar包运行jar包那因此,我们打包镜像也是分成这么几步:准备Linux运行环境(java项目并不需要完整的操作系统,仅仅是基础运行环境即可)安装并配置JDK拷贝jar包配置启动脚本。
2023-10-30 10:36:23
554
1
原创 RabbitMQ(五)之延迟消息
生产者发送消息时指定一个时间,消费者不会立刻收到消息,而是在才收到消息。:设置在一定时间之后才执行的任务延迟消息的实现有两种:死信交换机,延迟消息插件。
2023-10-21 18:34:26
1543
1
原创 RabbitMQ(四)之消息可靠性
以支付服务为案例进行分析问题一、在扣减余额和更新支付状态之后,支付服务会发送消息通知交易服务更新状态,如果在支付服务与MQ之间出现了网络故障,消息无法到达MQ,交易服务无法收到消息。问题二、消息投递到了MQ,但在MQ将消息传递给交易服务之前,MQ挂掉了,消息也会丢失。问题三、消息投递到了交易服务,但在处理的过程中抛出异常,也会丢失消息。
2023-10-20 21:09:49
791
1
原创 RabbitMQ基础(二)之安装使用
publisher:消息发送者。consumer:消息的消费者。queue:队列,存储消息。(消费者与队列绑定)exchange:交换机,负责路由消息。(消息先发送给交换机,然后交换机选择将消息路由给一个或多个队列):虚拟主机,起到数据隔离的作用。(不同服务使用同一个RabbitMQ服务器,创建任意多个虚拟主机,实现数据隔离,每个虚拟主机只能访问自己的数据)
2023-10-17 20:10:39
59
1
原创 RabbitMQ基础(一)之同步异步
实时通信,例如,微信语音通话,打电话是实时的,当你说话之后,对方立马就能收到,并对你做出回应。:非实时通讯,例如,微信短信聊天,当你发送短信之后,对方可能稍等一会才会给你回信。一般情况下,我们只能跟一个人进行实时的通话,别人打进来会占线,而短信则没有这种情况,你可以同时接收多条短信,并逐步回信。
2023-10-15 16:45:56
508
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人