- 博客(123)
- 收藏
- 关注
原创 远程管理不再难!ESXi部署Ubuntu虚拟机并实现SSH远程访问的完整步骤
本篇文章讲解如何在VMware ESXi中创建Linux虚拟机,并结合 Cpolar内网穿透工具配置公网地址,轻松实现随时随地通过SSH远程访问管理本地创建的虚拟机。VMware Workstation它是一款专业的虚拟机软件,可以在一台物理机上运行多个操作系统,支持Windows、Linux等操作系统,可以模拟多台虚拟机,支持网络虚拟化,可以模拟多台虚拟机之间的网络连接、文件共享、资源共享等。
2024-11-18 21:06:45 818 16
原创 RabbitMQ几大应用问题
所以幂等性保障,就是可以正确的处理相同重复的消息。当消费者收到消息后,就可以根据唯一ID判断该消息是否已经被消费过,如果已经被消费观过,则可以不做处理,进而可以避免重复消费的问题。消费者消费完成后没有及时对消息进行确认,或者确认丢失,MQ可能认为消息未发送成功进而重试,也会导致消息处理的顺序性问题。当存在多个消费者的时候,消息被哪一个消费者消费是不确定的,也可能并行处理,就会导致消息的顺序性无法保证。消息积压,指的是在消息队列中,待处理的消息数量超过了消费者的处理能力,导致消息在队列中不断堆积的现象。
2024-10-30 16:50:06 1121 2
原创 rabbitmq高级特性(2)TTL、死信/延迟队列、事务与消息分发
(1)死信队列的图解正常队列中的消息因为一些原因就会变成死信,然后经过一个特定的路由交换,最后到达一个指定的死信队列中,然后再投递给消费者。(2)消息称为死信的原因消息被拒绝,且设置了无法入队消息过期队列达到最大长度。
2024-10-29 21:09:37 1137
原创 rabbitmq高级特性(1):消息确认,持久性,发送方确认和重试机制
这里的消息确认机制,指的是消费者对消息的确认,而不是生产者。(1)背景缘由当消费者把消息发送出去后,就会把消息删除。如果消费者这边处理消息成功,则相安无事;但是如果处理异常,消息也就会丢失。所以就需要设置消费者的消息确认模式(2)消息确认的机制消息确认机制分为两个大类:自动确认和手动确认手动确认又分为三种模式:肯定确认、否定确认、否定批量确认对于rabbitmq的操作有两种,我们主要介绍第二种直接使用amqb提供的包(RabbitMQ Java Client库)使用spring集成进来的。
2024-10-27 17:17:54 1165
原创 RabbitMQ的七种工作模式代码介绍
简单模式(Simple)工作队列模式(Work Queue)发布订阅模式(Publish/Subscribe)路由模式(Routing)通配符模式(Topics)RPC模式(RPC)发布确认模式(Publish Confirms)上述工作模式,其中1-5使用的比较多,6-7较少,代码难度也比较大。
2024-10-20 16:48:35 936
原创 【Redis】zset有序集合的常见命令
(1)zadd1)语法:zadd key [NX | XX] [GT | LT] [CH] [INCR] score member [score member … ]2)含义:添加k-v,一次性也可以同时添加多个3)时间复杂度:O(log(N))4)返回值:本次添加成功的元素个数默认版本使用成功添加三个元素,每个member携带一个score默认下的含义:一次性可添加多个元素,返回添加成功的元素个数;如果当前的member不存在,就会添加新的;如果member存在,就会更新分数。
2024-10-14 21:57:46 1103 1
原创 【Redis】Set类型的常用命令与应用场景
3)差集:A和B求差集,A在前面,则返回A中存在,但B中不存在的元素;B和A求差集,B在前面,则返回在B中存在,但A中不存在的元素。指定count则随机删除count个。2)含义:将member元素从source对应的集合中取出放入destination中。2)并集:两个集合求交集,结果为两个集合的所有元素相加,并去掉重复的元素,只留下一份。4)时间复杂度:O(N*M),N是最小集合的元素个数,M是最大集合的元素个数。4)时间复杂度:O(N*M),N是最小集合的元素个数,M是最大集合的元素个数。
2024-10-09 21:08:33 847
原创 【Redis】List类型的常用命令大全
这里的list列表相当于一个双端队列,也可以认为是双向链表,也可以认为是数组,后续的很多命令都使用到下标。
2024-10-08 21:55:50 1180 1
原创 【Redis】Hash类型的常用命令
背景:redis中存储数据采取key-value键值对的形式,而hash内部也是键值对,为了区别这两个东西,hash内部的键值对称为:field-value,而redis的为key-value,这里的value包括:field-value。对于hash类型的命令和String很像,大多数是在前面加上h,表示hash的意思。
2024-10-06 22:10:43 635
原创 Resdis中关于字符串类型的基础命令
本文主要详解key-value中vaule为字符串类型的情况,value属于其他的数据类型不适应;有几个命令是通用命令。
2024-10-03 22:03:39 1062 5
原创 Spring的热部署工具和数据库密码加盐操作
加密过程:用户输入的密码+盐值 --> 字符串1,然后使用md5对字符串1加密得到字符串2,然后字符串2+盐值 --> 字符串3,这个字符串3就是存储在数据库中的密文。背景:如果我们的密码明文存储在数据库中,要是被窃取了是非常的危险的,所以我们在数据库中存储的密码不能是明文的,需要进行加密后存储,也就是数据库中存储的是密文。解密过程:取出数据库中的盐值和用户输入的密码得到字符串1,使用md5对字符串1加密得到字符串2,然后验证字符串2和数据库中的密文即可。做好以上的步骤,你项目中的热部署就已经做好了。
2024-09-28 17:35:13 916 2
原创 Redis的基础认识与在ubuntu上的安装教程
来自Redis的自我介绍我是Redis,一个中间件,职责是把数据存储在内存上,因此可以作为数据库、缓存、消息队列等场景使用。由于可以把数据存储在内存上,因此江湖人称快枪手。
2024-09-27 23:25:11 544 2
原创 Spring:强制登陆与拦截器
上面的第一步我们已经定义好了拦截规则,下面只需要配置就好(上面已经规定了哪些人员不准进入小区,接下来我们需要投放保安到小区的指定路口进行拦截)上述是没有引入拦截器的场景,每个部分都需要引入相同的代码,就会使得代码非常的繁琐,所以我们就可以使用Spring统一功能中的拦截器。在验证完用户信息后,就可以给用户设置令牌并且返回token了,token中设置的信息一般不要设置隐私信息,比如用户密码。(4)客户端后续发起的请求,就会把token放在请求的header中(k-v的形式,token存储在v中)
2024-09-27 20:33:13 1228
原创 Spring项目中的统一结果返回
本文介绍的是通过Spring提供的接口进行结果统一封装,指的是成功返回的结果,不包含异常或者错误情况(这一块移步到统一异常处理)。
2024-09-26 21:37:22 316
原创 初步认识了解分布式系统
背景认识:我们要学习redis,还是得了解一下什么是分布式。为什么呢?因为redis只有在分布式系统中才能发挥它最大的作用,也就是领域展开,所以接下来我们就简单过一下什么是分布式系统一些术语认识:(1)应用(Application)/系统(System)一个服务器程序(2)模块(Module)/组件(Component)一个应用中有许多的功能,每一个单独的功能就是一个模块/组件(3)分布式(Distributed)引入多个主机/服务器,协同配合完成一系列的工作(物理上的主机)
2024-09-26 21:37:14 635
原创 Spring:项目中的统一异常处理和自定义异常
这里的自定义异常也就是定义一个异常类,然后作为@ExceptionHandler捕获的对象(1)先自定义一个普通的异常步骤:实现Exception类或者其子类,然后写构造方法(记得先初始化父类),可以看情况重写几个方法于是我们得到下面的自定义异常类//自定义的错误结果(里面包含错误码和错误信息)//用于throw new ApplicationException(Result.fail("我走的是构造方法"))这种情况/*** 构造方法 用于填充信息*/
2024-09-21 21:33:45 703
原创 在Spring项目中,两个实用的工具(生成类与映射文件、API自动生成)
一定复制下面的网址:http://127.0.0.1:13145/swagger-ui/index.html,并且修改端口号,最后启动项目,才能出现上面的效果。这个需要找到本地maven仓库里面存放关于mysql的jar包路径,也就是:本地存放jar的包路径(在maven学习阶段,也就是配置本地镜像时的知识点)注意点:这些是系统生成的,特别是xml跟原有的dao,不要去修改它,最好的方式就是另起接口。这一步工作量最大,需要该的地方最多,大家先复制好下面的文件,再按照步骤进行修改成自己项目中的配置。
2024-09-20 10:38:28 1000
原创 如何使用浏览器异地远程访问本地Linux搭建的安卓手机模拟环境界面
本文主要介绍如何在Linux Ubuntu系统使用Docker部署docker-android安卓模拟器,并结合cpolar内网穿透工具实现公网远程访问本地部署的Android开发环境。Android应用开发日益成为业界关注的焦点,在开发过程中,对Android应用的测试和部署至关重要,这关系到应用能否在各种设备和环境下稳定运行。然而,传统的Android开发和测试环境搭建过程繁琐,且不易于管理和维护。
2024-09-12 20:49:52 842 14
原创 Win10环境搭建网络直播录屏工具Bililive-go并实现远程管理录屏流程
本文主要介绍如何在Windows系统电脑本地部署直播录屏工具Bililive-go,并结合cpolar内网穿透工具实现远程访问本地Bililive-go服务web界面管理录屏任务。相信很多小伙伴都喜欢看直播,不过如果一旦临时有事看不了直播,可能一般只能在第二天去网上找录屏组的直播录像。但如果找不到,那就很遗憾了。于是,今天就和大家分享一款可以在Windows、MacOS、Linux等多个系统进行部署的开源录屏服务Bililive-go。
2024-08-08 19:32:38 1124 26
原创 MyBatis的入门操作--打印日志和增删改查(单表静态)
下面介绍注解和xml实现crud的操作介绍一下准备工作:数据库信息:环境和代码框架。
2024-07-28 11:10:40 2582 1
原创 Spring Boot 日志 (初级)
什么是日志呢?其实就是一条条的打印语句,我们就可以根据打印出来的日志,去分析程序存在的问题等。虽然作为后端开发人员,日志并不是那么重要,但是在学习的过程中,也是比较重要的,可以使用在我们的项目中,所以我们也要去学习和了解。。
2024-07-22 19:10:35 1184 12
原创 【Linux】如何使用docker快速部署Stirling-PDF并实现远程处理本地文档
本篇文章我们将在Linux上使用Docker在本地部署一个开源的PDF工具——Stirling PDF,并且结合cpolar的内网穿透实现公网随时随地访问。Stirling PDF一个强大的本地托管的基于Web的PDF操作工具,使用Docker,允许您对PDF文件执行各种操作,如分割、合并、转换、重组、添加图片、旋转、压缩等。这个本地托管的Web应用程序最初是一个100%由ChatGPT制作的应用程序,现在已经发展到包含了一系列的功能,以满足您所有的PDF需求。
2024-07-22 18:57:40 3549 35
原创 Spring Boot配置文件的语法规则
名字是很固定的,必须是:application.properties或者application.yml,这两个都是配置文件的格式,一般我们使用其中一个即可(一般yml使用的较多)。(3)当项目中properties和yml都存在,并且里面的内容冲突时,会以properties中的为配置项,也就是其优先级更高。一般双引号里面的东西不会被被转义,单引号里面的会被转义,也就是\n在单引号下就只是一个串,在双引号下是换行。=左边的就是key,=右边的是value,在获取配置文件时,需要填入完整的key。
2024-07-21 12:36:34 1281 3
原创 【软件测试】编写测试用例篇
背景:我们在写程序或者刷题的时候,要想验证自己写的程序是否正确,都会代入几个特殊值去测试该程序,通过程序的结果就能判断出来。而对于我们的项目也是一样,但是测试用例会非常的多喝复杂,所以也就需要我们去学习,做到全方面的想出测试用例。因此,对于设计测试用例有一个原则:测试用例中一个必需部分 是 对预期输出或者结果进行定义什么意思呢?使用当前的测试用例,就一定会有一个预期的结果,是通过或者失败。然后通过测试,就能显而易见的对比结果了。(1)对新自行车进行测试对于一个新项目,我们需要测试。
2024-07-16 11:04:08 2683 6
原创 Windows电脑安装Python结合内网穿透轻松搭建可公网访问私有网盘
本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言,在自己的电脑上搭建一个共享文件服务器,并通过cpolar创建的公网地址,打造一个可以随时随地远程访问的私人云盘。数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有广泛的应用,对于个人用户也有很强的实用意义。也正因如此,大量数据共享软件被开发出来,云存储的概念也被重复炒作。对于爱好折腾的笔者来说,用最简单的工具找寻私人共享和存储解决方案,也是件很有趣的事。
2024-07-11 19:01:32 1131 24
原创 Windows系统搭建Focalboard看板管理服务并实现团队远程协作
本篇文章将介绍如何在Windows系统本地快速部署Focalboard项目管理工具,并且结合cpolar内网穿透进行公网访问,远程团队协作,提高工作效率!Focalboard是一个开源项目管理工具,可以替代Asana、Trello和Notion等软件,帮助个人和团队规划每个项目并达到每个里程碑。由于Focalboard是开源项目,可以将其部署在自己的本地服务器上,数据内容掌握在自己手里,更加安全可靠。下面将介绍如何使用Docker部署Focalboard。
2024-07-01 20:42:18 926 19
原创 【软件测试】对于测试中各式的概念,你了解多少?
在学习后面的知识前,先来熟知一个概念什么是软件测试:软件测试就是验证软件产品特性是否满足用户的需求。
2024-06-28 17:52:55 699 3
原创 http协议
前置知识1.什么是http协议?答:http协议是处于应用层的一个协议,用来约定数据在网络传输中的格式等2.使用场景?答:网页和服务器的交互、手机app和服务器的交互3.如何学习http协议格式?答:学习一个协议,就要认识它的报文结构;我们可以通过“抓包”工具,就可以捕获到http协议的请求报文和响应报文的内容4.一条http请求和响应是什么样的?
2024-06-21 18:02:08 718 1
原创 八股文之JVM
在判断谁是垃圾这一步,Java是采取很保守的做法,也就是可以保证只会释放后续不会再使用的对象,后续仍会使用到的对象,是不会进行回收的,所以才用的策略是:判断某个对象是否存在引用指向,如果没有引用指向,就可以判断为垃圾,反之不行。如果自己的代码中写的类的名字和标准库/扩展库冲突了,JVM会确保加载的类是标准库的类(不会加载自己写的类),如果标准库中的类无法加载,那么Java进行就没有办法正常工作了。而对于堆,保存的主要是对象,换句话说,也就是主要回收对象,那怎么回收对象呢?所以这就是引用计数最大的一个问题。
2024-06-17 16:51:57 1334 1
原创 网络编程入门之UDP编程
在前面,我已经介绍过一次方法了,现在又准备介绍一次,是为了水字数吗?那当然不是,前面两个类中的一些方法,只是为了让你认识到这些类,和实例化了对象后该怎么去做。接下来,我们再进一步结合代码来介绍方法,而且主要是和DatagramPacket有关的方法。(1)获取ip地址和端口号直接调用方法分别获得方法解释获取ip地址获取端口号在代码中的体现(2)求数据长度这里是什么意思呢?你一定看过这些代码这些求数据长度的有什么区别?该怎么使用?为什么要这样写?就是我们接下来要介绍的字符和字节的区别。
2024-05-08 21:11:10 1267 34
原创 网络基础知识
(1)协议,其实就是一种约定,一种规则。通信双方,对于通信规则的约定,一定是通信双方都可以得到认可的。(2)例子A和B约定某一天网恋见面,因为没有真实见过面,所以他们就会事先约定好一种规则。比如A穿一条白色连衣裙,B穿着西装。两个人之间,也是可以称为一种协议的。(3)为什么通信需要协议一般通信都是指不同主机之间发生的,但是两个主机往往都不一样(设备、操作系统、硬件),所以需要约定协议。
2024-05-05 11:53:05 1080 2
原创 CAS原理及其API原子类
(1)问题来源CAS的核心操作是:比较相等,然后进行交换操作。也就是说,只要发现两个对象相等,就会进行交换操作。因此,就会存在一个问题:两个对象相等,但是不代表某个对象没有被修改过,CAS也无法发现问题。也就是其中一个对象的值从A被修改成B,最后又修改回A,然后进行比较操作,也是相等的。所以ABA问题也就是:CAS无法区分,当前的数据在比较相等前,是否被修改过。虽然ABA问题产生有危害的Bug几率很小,但是某些情况,就是严重问题。
2024-04-28 12:46:35 930 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人