- 博客(61)
- 收藏
- 关注
原创 一文搞懂高并发性能指标:QPS,TPS,RT,并发数,吞吐量
QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。RT(Response-time)响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。处理时间是完成请求要求的工作所需的时间,等待时间是请求在被处理之前必须在队列中等待的时间。响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。
2025-04-24 20:12:07
271
原创 [从零开始学习RabbitMQ]如何确保MQ的可靠性和消费者可靠性
在上一篇文章中,我们介绍了如何确保生产者的可靠性,确保消息一定可以到达MQ。但是MQ自己也是会丢失消息的,比如MQ的突然宕机或者消息过多造成的阻塞,因此我们这篇文章来介绍一下如何确保MQ的可靠性和消费者可靠性默认情况下,RabbitMQ会把接收到的消息保存在内存中来降低消息收发的延迟,但这样会导致两个问题一旦MQ宕机,内存中的消息会丢失内存空间有限,当消费者故障或者处理过慢的时候,会导致消息的积压,引发阻塞。数据持久化Lazy Queue。
2025-04-24 13:02:59
738
原创 【从零开始学习RabbitMQ】如何确保生产者的可靠性
在现代的分布式系统中,消息队列扮演着至关重要的角色,它不仅为应用程序提供了异步处理的能力,还帮助实现了服务之间的解耦。RabbitMQ作为业界广泛使用的消息队列之一,以其高可靠性、易用性和灵活性而受到开发者的青睐。然而,即便拥有如此强大的工具,确保生产者在发送消息时的可靠性仍然是一个挑战。要确保生产者的可靠性,主要有两种生产者重连生产者确认。
2025-04-22 21:10:39
405
原创 [苍穹外卖 | 项目日记] 第三天
今日收获:今日的这几个接口其实和之前写的对员工的操作是一样的,都是一整套Curd操作,所以今天在技术层面上并没有太大的收获,顶多算是更加熟练的掌握了Curd操作。但是思想上的提升比较大。因为菜品的数据库操作比较复杂,有多表关联(多对多怎么设置中间表)问题,例如在新增和删除菜品表的同时,也要同步更新口味表,在删除菜品表的时候,还有考虑当前要删除的菜品是否在套餐当中,如果在套餐当中,那么我们是不可以进行删除的。这就要求我在写项目的时候,从以前的转变为。因此我觉得今天最大的收获就是。
2025-04-18 23:37:28
295
原创 [从零开始学Java] Serializable
一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化。Serializable是java.io包中定义的、用于实现Java类的序列化操作而提供的一个语义级别的接口。Serializable序列化接口没有任何方法或者字段,只是用于标识可序列化的语义。实现了Serializable接口的类可以被ObjectOutputStream转换为字节流,同时也可以通过ObjectInputStream再将其解析为对象。
2025-04-17 22:30:17
721
原创 [从零开始学习JAVA ] 动态代理
作为一种强大的编程技术,不仅为我们提供了灵活性和可扩展性,还为软件开发和系统设计带来了许多优势。通过动态代理,例如我们想为一个类添加新的成员方法,以往我们使用的就是直接往类里面进行添加,我们把这种方法叫做侵入式添加,而这种添加在代码体积大的时候,可能会引起想不到的错误,因此我们引出了动态代理这个概念,而。
2025-04-16 18:16:13
977
原创 [从零开始学习JAVA ] 反射
Java中的反射是一项强大而灵活的功能,它允许程序在运行时动态地获取、操作和利用类的信息。通过反射,我们可以在运行时检查和修改类的属性、调用类的方法,甚至创建和操作对象实例。这种能力为Java提供了很多灵活性和扩展性,使得我们能够编写更加通用、可插拔和动态的代码。然而,反射也是一种高级特性,需要谨慎使用,因为它可能牺牲了一些性能和类型安全性。在本文中,我们将深入探究Java反射的原理、用法和最佳实践。
2025-04-12 13:55:57
296
原创 MAVEN利器:一文带你了解MAVEN中的依赖管理
强大的构建工具——Maven。作为Java生态系统中的重要组成部分,Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用,Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等任务。在上一篇文章中,我们学习了如何在IDEA中配置MAVEN环境以及如何创建MAVEN工程。从最开始我们就介绍过MAVEN的强大就在于他有中央仓库和私有仓库,通过这两个仓库我们可以快速的使用我们想用的依赖项,加快项目进展。
2025-04-11 12:16:47
745
原创 [从零开始学习JAVA] UDP的三种通信方式
在我们初学的时候,我们就介绍过两个极其重要的协议,分别是TCP协议和UDP协议,我们在今天就要介绍一下UDP协议的三种。
2025-04-09 11:44:54
343
原创 [苍穹外卖 | 项目日记] 第二天
这里的文件上传主要是图片文件,我们整体的思路是 利用阿里云OSS服务器,把图片上传到阿里云的OSS服务器后,利用后端接收OSS服务器返回的图片URL,然后再返回给前端,前端调用URL进行图片回显。简单的来讲,就是把所有需要对这四个字段进行修改的方法提前进行拦截,在我们的 通知 中就对这四个字段进行赋值,然后再进行被拦截的方法。(由此可以看出我们这里的通知是。也就是说引用另一个配置类中的信息,这是因为我们的项目会经历开发,测试,维护三个阶段,而这三个阶段可能使用的数据库等等配置类不一致,因此我们。
2025-04-08 13:15:15
765
原创 [苍穹外卖 | 项目日记] 第一天
这里是为了完成我仿外卖项目 苍穹外卖项目,为了督促自己每天坚持写以及记录项目知识点,所以用这种项目日记的方式鞭策自己简洁的说:正向代理就是隐藏客户端,而反向代理是隐藏服务器正向代理是客户端发送请求后通过代理服务器访问目标服务器,代理服务器代表客户端发送请求并将响应返回给客户端。正向代理隐藏了客户端的真实身份和位置信息,为客户端提供代理访问互联网的功能。反向代理是位于目标服务器和客户端之间的代理服务器,它代表服务器接收客户端的请求并将请求转发到真正的目标服务器上,并将得到的响应返回给客户端。
2025-04-07 13:44:05
861
原创 [从零开始学习JAVA] 初学网络编程
在Java中,网络编程是指使用Java语言和相关的API来实现各种网络应用程序的开发过程。它涵盖了建立网络连接、数据传输和通信协议等方面。网络编程就是在网络通讯协议下,不同计算机上运行的程序进行的数据传输。
2025-04-02 18:21:09
1006
原创 [从零开始学习JAVA] 深入JAVA锁机制
在多线程编程中,线程之间的协作和资源共享是一个重要的话题。当多个线程同时操作共享数据时,就可能引发数据不一致或竞态条件等问题。为了解决这些问题,Java提供了强大的锁机制,使得多线程程序能够安全地共享资源、实现线程间的同步。Java锁机制允许我们控制多个线程对共享资源的访问,确保在任何时刻只有一个线程可以访问公共数据或执行特定的代码块。这种机制既可以用于保护共享变量的一致性,也可以用于实现对临界区的互斥访问。
2025-04-01 11:05:23
636
原创 [从零开始学习JAVA ] 了解线程池
在Java编程中,线程池是一个强大的工具,它能够管理和复用线程,提供高效的并发处理能力。通过线程池,我们可以有效地控制并发线程的数量,并降低线程创建和销毁的开销。本文将引导你深入了解Java中的线程池,探索其原理、用法和优势,为你提供一个更高效的编程方式。线程池的作用就是管理线程数量,减少线程频繁的创建和销毁线程池是一种用于管理和复用线程的技术,它可以有效地处理并发任务并提高程序的性能和响应能力。线程池维护着一个线程队列,其中包含了一定数量的线程。
2025-03-30 12:25:09
764
原创 [从零开始学习JAVA ] 深入多线程
当今软件开发领域中,多线程编程已成为一项至关重要的技能。然而,要编写出高效、可靠的多线程程序并不容易。多线程编程面临着许多挑战,如线程安全性、资源共享、死锁等问题。因此,对于初学者来说,深入理解Java多线程的工作原理和机制是至关重要的。只有通过掌握多线程的核心概念、了解常见问题和解决方案,我们才能写出健壮且高性能的多线程应用。本文将为大家逐步深入介绍Java多线程的重要概念和机制。我们将从线程的创建和启动开始,讨论如何使用线程池管理线程,并探讨线程间的通信和同步技术。
2025-03-29 13:08:11
1430
原创 [从零开始学习Java] Redis设置密码无效 解决方案
根据网上资料,得知设置redis密码需要在redis安装目录下的redis.windows.conf中找到requirepass,将注释去掉,并设置自己需要的密码。通过反复查阅资料,发现,系统设置了redis自动启动,如果redis设置了自动启动,则无法设置redis启动时加载配置文件,所以需要取消redis自动启动。最后通过redis-cli中检查密码是否设置成功,但是与大多数教程不同的是,我的设置没有生效,仍然不需要密码就可以set key value。,设置redis启动时加载配置文件。
2025-03-27 19:14:48
334
原创 [从零开始学习JAVA] 应用多线程
多线程的引入不仅仅是提高计算机处理能力的技术手段,更是适应当前时代对效率和性能要求的必然选择。在本文中,我们将深入探讨多线程的应用和实践,帮助读者更好地理解和应用多线程技术,提升计算机的处理能力,迎接挑战的世界。
2025-03-27 08:51:38
547
原创 [从零开始学习JAVA] 初识多线程
本章节我们将开始学习多线程,多线程是一个很重要的知识点,他在我们实际开发中应用广泛并且基础,可以说掌握多线程编写程序是每一个程序员都应当必备的技能,很多小伙伴也会吐槽多线程比较难,但因为其实用性和广泛性,我们一定要学好多线程。
2025-03-26 10:56:53
868
原创 [从零开始学习JAVA] IO流下的高级流
在前面我们从IO流体系出发,分别介绍了字节流和字符流,并且详细讲解了其下沿的各种基本流,而在今天我们就要学习一下IO流中的几个高级流。
2025-03-25 15:15:02
601
原创 [从零开始学习JAVA] IO流
在前文我们知道,如果我们想要实现对于程序的存档功能,就一共需要实现两个功能:1.将数据存到文件当中,这也就是我们上一篇文章File类的作用2.实现程序对文件数据的读取功能,这也就是我们接下来几篇所介绍的IO流的作用在Java中,IO流(Input/Output Stream)是用于处理输入和输出的机制。它提供了读写数据的方式,允许程序与文件、网络等交互。Java中的IO流分为字节流和字符流两种类型。字节流操作以字节为单位进行输入和输出。
2025-03-24 13:37:40
943
原创 【从零开始学习JAVA 】 异常(下)
文我们详细的为大家介绍了整个异常体系的框架,本篇我们将为大家介绍Exceptions异常,我们会讲解他的作用以及如何捕获,这一篇很重要!!在搭建后端以及与前端交互的时候是一个很好用的技能(Spring体系中的全局异常处理器就可能需要我们自己针对业务设置相关的异常并且进行处理),因此我们即使不看本篇文章,也一定要自己积极主动了解相关内容!!在Java中,可以通过创建自定义异常类来实现用户定义的异常。自定义异常类可以根据特定的业务需求或异常情况,提供更具体、更清晰的异常信息,并允许开发者以自定义的方式处理异常。
2025-03-22 14:35:18
1200
原创 【从零开始学习JAVA】异常体系介绍
本文我们将为大家介绍一下异常的整个体系,而我们学习异常,不是为了敲代码的时候不出异常,而是为了能够熟练的处理异常,如何解决代码中的异常。
2025-03-21 09:19:09
700
原创 [从零开始学习JAVA ]方法引用
4. 维护性和一致性:使用方法引用可以使代码更具有一致性和易于维护。当需要修改方法逻辑时,只需要修改被引用的方法,而无需修改引用该方法的所有地方。5. 高效性:方法引用本质上是通过对已经存在的方法进行复用来实现的,因此在执行效率上可能会更高一些。需要注意的是,方法引用并不是适用于所有场景,它有一些使用限制,比如需要。
2025-03-20 12:46:05
985
原创 [从零开始学习JAVA] Lambda表达式
Java Lambda表达式是Java 8中最重要的新特性之一。它们是一种可传递的匿名函数,可以作为参数传递给方法或存储在变量中,因此可以在需要的时候调用它们Lambda的主要目的是简化Java代码,使其更易于阅读和编写。
2025-03-19 13:46:11
888
原创 [从零开始学习JAVA] Stream流
本文我们将学习,他就像流水线一样,可以对我们要处理的对象进行逐步处理,最终达到我们想要的效果,是JAVA中的一大好帮手,值得我们了解和掌握。(通常和lambda 匿名内部类 方法引用相配合)
2025-03-18 15:30:50
1390
原创 [从零开始学SSM] Bean的配置
由运行结果可知,Spring创建的bean那么如果我想创建非单例的bean怎么办,这时候就需要用到配置的方式完成了:在<bean>的属性中添加一个,该属性默认是singleton,把他换成prototype打印结果就是两个不同的地址了。
2025-03-17 21:42:58
337
原创 [从零开始学习JAVA] 不可变集合
本文我们将为大家介绍JAVA中的不可变集合,它将内容锁死,不能随意改变内容,是JAVA中很常见的一个内容板块,大家要对此有较好的掌握程度。
2025-03-17 13:37:43
893
原创 [从零开始学SSM] IOC/DI案例入门
然后才能在resources文件中配置Spring然后创建一个applicationContext.xml文件配置bean(现在用注解了解就可以了!通过<bean/>标签来配置IoC容器中的beans,将未来需要的bean放入容器中一个典型的<bean>id:为bean指定一个唯一的标识符。class:指定bean的全限定类名。scope:定义bean的作用域(例如,singleton、prototype、request等)。lazy-init:指定bean是否延迟加载。和。
2025-03-15 13:30:23
490
原创 [从零开始学JAVA ] 单列集合的遍历
本篇我们会讲解关于单列集合的几种遍历方式,可以说是对于集合要求掌握的最低技能,因此我们要熟练的掌握遍历集合的方式。在这里我们不讲for循环遍历,for循环无法对单列集合的set子集合进行遍历,因为set集合的特点就是无序,无法用索引进行遍历。
2025-03-14 08:50:14
1119
原创 [从零开始学习SSM] 初识Spring
现在运行我们的程序,假如说需要使用service对象,IoC容器直接就可以给对象使用了,问题来了,运行service需要dao,但是你光给我创建了个service对象,而我service对象需要dao才能运行,运行还是报错,IoC一看既然你service需要依赖dao运行,并且这俩对象都在IoC容器里,干脆把service和dao之间的依赖关系绑定上,也就是说现在这个dao对象直接把这个东西给你不就能运行了吗,这种思想就叫。
2025-03-13 22:05:51
630
原创 【从零开始学习JAVA 】BigInteger
本篇我们将介绍BigInteger这个比较实用一点的API,这个API在我们实际写项目中都是很实用的API,因此大家应该对这个API有更加熟练的掌握。
2025-03-12 10:01:57
672
原创 [从零开始学习JAVA] 新版本idea的数据库图形化界面
在看黑马javaweb的时候,发现视频中的版本是老版本,而我的是新版本 为了记录新版本的数据库界面图形化操作我打算写下这篇博客。
2025-03-11 13:15:43
549
原创 [ 从零开始学习JAVA ] 常见API介绍 System
system 是一个很底层的 API,是一个工具类,提供了一些与系统相关的方法。他在我们写项目的时候提供了一些非常实用的方法,本篇将会介绍一些实用的system API 的方法调用。
2025-03-11 13:06:04
432
原创 [从零开始学习JAVA] 常见API介绍 Math
本篇往后我们会详细介绍一些常用的API,今天我们介绍的是Math的常用方法。但是其实我们不需要记住所有的方法,在日常工作中自己学会查询API文档就可以了。
2025-03-10 10:35:05
353
原创 [从零开始学习JAVA] 初识内部类
内部类是类的五大成员。一个类的其他的成员分别是属性,方法,构造方法,代码块。本文将详细介绍什么是内部类,以及内部类的意义。
2025-03-09 21:37:15
813
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人