个人学习
文章平均质量分 66
lgily-1225
这个作者很懒,什么都没留下…
展开
-
几种监控工具学习
在Linux上有很多监控工具,比如Zabbix、Prometheus、APM和ELK监控工具是确保系统稳定运行的关键组件之一,它可以帮助系统管理员和开发人员及时发现并解决问题。原创 2024-05-13 08:14:01 · 571 阅读 · 0 评论 -
视频国标学习
GB/T28181协议,全名叫《安全防范视频监控联网系统信息传输、交换、控制技术要求》,是由中国国家标准委员会发布的一种国家级的标准。它主要对视频监控系统的各个方面做了明确的规定,使得不同厂商生产的视频监控设备能够相互连通,信息共享,提高整个监控系统的效率和可靠性。28181协议从2011年发行第一个版本以来已经连续迭代了3个版本,最新发布版本为GB/T28181-2016,最新的协议文档可通过点击文末的阅读原文获取。原创 2024-04-15 09:38:27 · 1076 阅读 · 0 评论 -
流行的API架构学习
优点:RESTful 一种基于现有 Web标准和 HTTP协议的设计和构建网络应用程序的架构风格,旨在提供一种简洁、可扩展、可靠和可互操作的方式来进行网络通信。优点:SOAP 是一种基于 XML 的通信协议,具有良好的跨平台和跨语言支持。适用场景:SOAP 适用于需要高安全性和复杂数据交换的企业级应用程序和 Web 服务场景,尤其是需要实现事务处理和消息传递机制的场景。适用场景:GraphQL 适用于需要灵活数据获取和精确控制的应用程序,特别是面向移动设备的应用程序和需要聚合多个数据源的场景。原创 2024-04-01 09:57:47 · 1219 阅读 · 0 评论 -
PostgreSQL与MySQL对比
PostgreSQL和MySQL都是流行的关系型数据库管理系统,但它们在多个方面存在显著差异,这直接影响了它们各自的应用场景。原创 2024-03-24 22:02:35 · 739 阅读 · 0 评论 -
openSSH学习
当有100台主机,你需要创建100个密码,全部一样,你管理的时候每台主机都要输入密码,那如果全部不一样呢,那就更麻烦了!需要你输入密码是用户认证,先进行主机用证在进行用户验证,平时就是用户验证,就第一次验证需要输入yes,后面输入密码即可登录。服务器端——sshd,配置文件在/etc/ssh/sshd_config (可以优化服务端的配置)客户端——ssh,配置文件在/etc/ssh/ssh_config (这个配置文件不需要修改)telnet // 远程登录协议,23/TCP,认证明文,数据传输明文。原创 2024-03-18 08:47:00 · 292 阅读 · 0 评论 -
Linux系统free命令
free 命令可以显示Linux系统中 空闲的、已用的物理内存 及 swap内存,及 被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。free命令:可选参数:参数 说明-b 以Byte为单位显示内存使用情况-k 以KB为单位显示内存使用情况-m 以MB为单位显示内存使用情况-g 以GB为单位显示内存使用情况-h 根据内存大小自动选择合适的单位显示-o 不显示缓冲区调节列-s 持续观察内存使用状况-c 和-s配合使用。原创 2024-03-11 08:46:48 · 985 阅读 · 0 评论 -
JVM类加载机制
之所以以这样的一个加载顺序,让标准库先加载,然后再扩展库,最后再是用户写的类,是为了防止用户可能会写出一些标准库或者扩展库已经存在的类的,就比如 java.lang.String,而这个是标准库中已经存在的类的,按照上述的加载顺序,JVM 最后加载出来的就是标准库中的类,而不是用户自己写的;初始化: 针对类对象里面的内容进行初始化,加载父类,执行父类静态代码块,父类静态变量赋值,子类静态代码块,子类静态变量赋值,父类初始化模块,父类普通变量,父类构造器,子类初始化模块,子类普通变量,子类构造器…原创 2024-03-04 08:46:33 · 583 阅读 · 0 评论 -
工厂模式学习
2、可扩展性:由于每个具体产品都有对应的具体工厂,可以轻松地添加新的具体产品类和对应的工厂类,而不会影响现有的代码结构。总的来说,简单工厂模式适用于对象较少且变化不频繁的场景,但在面对频繁变化的产品类型或产品创建过程复杂的情况下,不太适合使用简单工厂模式。2、增加了系统的抽象性和理解难度:引入了抽象工厂和具体工厂的概念,增加了系统的抽象性,使得系统的理解和学习成本增加。工厂方法模式将对象的实例化放到子类。1、简单工厂模式实现了对象创建和对象使用的分离,客户端只需知道产品的类型,无需关心产品的创建细节。原创 2024-02-26 08:46:13 · 881 阅读 · 0 评论 -
Mysql日志学习
r edo log 是为了防止 Buffer Pool 中的脏页丢失而设计的,那么如果随着系统运行,Buffer Pool 的脏页刷新到了磁盘中,那么 redo log 对应的记录也就没用了,这时候我们擦除这些旧记录,以腾出空间记录新的更新操作。进行事务的过程中,会先把产生的binlog写入到binlog cache中,事务commit(提交)的时候再写入到日志文件当中,而这个日志文件是否写入磁盘,再根据参数 sync_binlog来决定这个事务的binlog日志是否马上写入到磁盘中。原创 2024-01-29 08:49:31 · 412 阅读 · 0 评论 -
国密算法学习
SM2密码算法是国产密码算法标准,是一种基于椭圆曲线密码(ECC,Elliptic Curve Cryptography)的公钥密码,椭圆曲线密码是非对称密码的一种,具有更高的安全性与更低的计算复杂性。数字信封是指在公共信道上传输数据时,使用对称加密算法对数据进行加密,并将加密后的数据和加密所使用的密钥分别用接收方的公钥和私钥进行加密,然后发送给接收方。填充方式为将消息的末尾添加一个1,然后添加若干个0,使得消息长度满足对512取模为448,最后在末尾添加一个64位的长度值,表示消息的长度。原创 2024-01-22 09:51:14 · 507 阅读 · 0 评论 -
Docker学习
Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。LXC,其名称来自 Linux 软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术,为 Linux 内核容器功能的一个用户空间接口。原创 2024-01-08 08:52:15 · 614 阅读 · 0 评论 -
JVM调优相关参数学习
最近在网上看到一些人讨论到java.lang.Runtime类中的 freeMemory(), totalMemory(), maxMemory()这几个方法的一些问题,很多人感到很疑惑,为什么,在java程序刚刚启动起来的时候freeMemory()这个方法返回的只有一两兆字节,而随着java程序往前运行,创建了不少的对象,freeMemory()这个方法的返回有时候不但没有减少,反而会增加。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6。原创 2024-01-02 08:54:51 · 404 阅读 · 0 评论 -
Nginx的stream配置
stream模块一般用于tcp/UDP数据流的代理和负载均衡,可以通过stream模块代理转发TCP消息。也就是说,必须在使用./configure --with-stream编译时添加流模块。流模块的使用方法与http模块相同,语法也基本相同。# 为了让这个配置文件简单一些,将配置stream放入到/etc/nginx/conf.d,并以.stream做后缀名。#stream模块和http模块是并列级别的,所以stream要写在http{}外边。#增加stream配置,开启stream模块。原创 2023-12-11 08:55:30 · 3487 阅读 · 0 评论 -
Linux磁盘不足问题定位及解决
搜索到目标文件被占用的进程,然后kill相应进程即可,如果进程kill之后还在自启动,则输入命令cat /proc/目标进程pid/status找到对应的父进程的pid,然后kill父进程,再kill目标进程,即可释放。:被删除文件可能被某个进程占用,导致状态为deleted,但实际并未释放。第三步:查看哪个目录最大,找到对应文件夹,并逐一进入查找对应大文件。解决方法:第四步前面加上命令sudo给予超级权限即可。第一步:查看哪个挂载目录满了。第四步:删除大文件,释放空间。第二步:切换到对应目录。原创 2023-10-17 15:05:58 · 366 阅读 · 0 评论 -
Frp内网穿透
Frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。服务端运行,监听一个主端口,等待客户端的连接;客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;服务端fork新的进程监听客户端指定的端口;外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。原创 2023-09-25 09:46:14 · 177 阅读 · 0 评论 -
简述Mysql索引
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现高级查找算法。原创 2023-08-07 11:01:05 · 116 阅读 · 0 评论 -
SpringBootAdmin介绍
SpringBootAdmin 是一个非常好用的监控和管理的开源组件,该组件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。原创 2023-07-30 23:51:16 · 274 阅读 · 1 评论 -
MyBatis-Plus条件查询问题解决
最终定位到用户注册的时候,表中的“exception_flag”字段为null,而生成的校验sql语句为“exception_flag 1”,“”并不包含null的情况,用户注册过过的信息始终查询不到,导致用户可以重复注册。首先排查数据生成时间点不同,相差时间有长有短,不是用户同时多次点击的原因,应该是用户这边不同时间重复多次注册导致的,但是程序中防止重复校验的代码没有生效。系统中有用户注册的功能,但是会出现重复注册的现象,代码中有做过重复校验,但是没有生效。原创 2023-07-16 21:46:45 · 369 阅读 · 0 评论 -
HTTP与HTTPS
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。原创 2023-07-10 08:57:03 · 1370 阅读 · 0 评论 -
Mybatis-Plus不能更新对象字段为空值问题解决
在实体字段上,如果不通过@TableField注解指定字段的更新策略,字段默认的更新策略是FieldStrategy.DEFAULT,即跟随全局策略。在使用Mybatis-Plus调用updateById方法进行数据更新默认情况下是不能更新空值字段的,而在实际开发过程中,往往会遇到需要将字段值更新为空值的情况,该如何解决呢?如果你不想修改全局的字段更新策略,又需要项目中某个实体的所有字段都支持空值更新,推荐采用该方法。会忽略字段的更新策略,直接对实体中的每一个字段都执行更新操作。注解指定字段的更新策略为。原创 2023-07-03 10:08:00 · 5347 阅读 · 0 评论 -
MySQL空间数据学习
如果 type 的值为 GeometryCollection(几何体集合),那么该对象必须有变量geometries,其值是一个数组,数组的每一项都是一个 GeoJSON 的几何对象。已知二进制(WKB)格式。用已知二进制(WKB)表示的几何值,用于交换二进制流格式的几何数据,用包含几何WKB信息的BLOB值表示。用已知文本(WKT)表示几何值是为用ASCII格式交换几何数据而设计的。GeoJSON 的最外层是一个单独的对象(object)。格式的,只不过对其名称进行了规范,专门用于表示地理信息。原创 2023-06-26 09:02:46 · 577 阅读 · 0 评论 -
Java的try-catch-finally与try-with-resources
try-with-resources 是 JDK 7 中一个新的异常处理机制,它能够很容易地关闭在 try-catch 语句块中使用的资源。try-with-resources语句在编写必须关闭资源的代码时会更容易,也不会出错,而使用try-catch-finally语句实际上是不可能的。如果你已经有一个资源是 final 或等效于 final 变量,您可以在 try-with-resources 语句中使用该变量,而无需在 try-with-resources 语句中声明一个新变量。原创 2023-05-29 10:22:03 · 228 阅读 · 0 评论 -
注解方式声明bean
`bean` 代指的就是那些被 IoC 容器所管理的对象。我们需要告诉 IoC 容器帮助我们管理哪些对象,可以是 XML 文件、注解或者 Java 配置类,目前常用的为注解方式声明 bean,有以下几种方式:原创 2023-05-08 11:08:06 · 242 阅读 · 0 评论 -
Cookie学习
是限制域名,设置为 www.lilnong.top 的话,cors.lilnong.top 就获取不到了。可以解决客户端与服务端会话状态的问题,这个状态是指后端服务的状态而非通讯协议(HTTP)的状态。域名下的 cookie 一般来说是最大是 4KB,存储是以 Name=Value 的形式。是限制路径,如果设置为 /cors 的话,/api 下的请求就不会携带该 cookie。是当前 Cookie 的过期时间,默认是会话级别。用于服务端辨别用户身份,储存在用户本地的数据。协议下才会发送给服务端。原创 2023-04-23 17:02:59 · 94 阅读 · 0 评论 -
Spring事务的传播机制学习
传播级别一般不需要定义,默认就是PROPAGATION_REQUIRED,除非在嵌套事务的情况。上述描述表格的描述还是比较抽象,下面我们使用一个例子来说明这个传播机制。其管理方法有两种,分别是编程式事务以及声明式事务。参考资料:https://blog.csdn.net/weixin_39885962/article/details/125745395。事务的传播,是指一个方法调用另一个方法并将事务传递给它。事务的转播机制主要针对被调用者而言,控制它是否被传播或者被怎样传播。原创 2023-04-10 15:41:47 · 49 阅读 · 0 评论 -
linux磁盘管理命令学习
Linux 磁盘管理常用三个命令为 df、du 和 fdisk。df(英文全称:disk free):列出文件系统的整体磁盘使用量。du(英文全称:disk used):检查磁盘空间使用量。fdisk:用于磁盘分区。原创 2023-04-06 03:51:07 · 60 阅读 · 0 评论 -
重定向(redirect)和请求转发(forward)
这个跳转时由服务器实现的,而不是在客户端实现的,所以客户端实际上并不知道这个跳转,地址栏显示的还是之前的URL,请求转发是服务器行为。重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。重定向是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的URL,重定向是客户端行为。原创 2023-03-27 10:32:22 · 1545 阅读 · 0 评论 -
nginx中$host、$http_host、$proxy_host的区别
【代码】nginx中$host、$http_host、$proxy_host的区别。原创 2023-03-20 17:41:03 · 1243 阅读 · 0 评论 -
OAuth2.0授权码模式用于系统对接
我们自己开发的系统需要与外部系统做对接,需要做统一认证登录,即外部系统没有登录页面,共用我们系统的登录,在我们系统登录成功的用户可以直接跳转至外部系统。这边直接采用了OAuth2.0授权码模式来实现的原创 2023-03-15 20:40:41 · 571 阅读 · 1 评论 -
OAuth2.0学习
OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方 应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他 们数据的所有内容。OAuth在全世界得到广泛应用,目前的版本是2.0版。协议特点简单:不管是OAuth服务提供者还是应用开发者,都很易于理解与使用;安全:没有涉及到用户密钥等信息,更安全更灵活;开放:任何服务提供商都可以实现OAuth,任何软件开发商都可以使用OAuth;原创 2023-03-06 10:19:31 · 114 阅读 · 0 评论 -
linux常用命令记录
目录名说明根目录 一般根目录下只存放目录,有且只有一个根目录/home家目录 系统默认的家目录,新增用户账号时,用户的家目录都存放在此目录下/root系统管理员root的家目录可执行二进制文件的目录/etc系统配置文件存放的目录光盘默认挂载点/tmp一般用户或正在执行的程序临时存放文件的目录/var这个目录中存放着不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件。原创 2023-02-27 10:31:51 · 60 阅读 · 0 评论 -
Java注解学习
当用户查询注释类型并且该类没有此类型的注释时,将查询类的超类以获取注释类型(默认情况下不是这样)。此注释仅适用于类声明。Repeatable Java SE 8中引入的,@Repeatable注释表明标记的注释可以多次应用于相同的声明或类型使用(即可以重复在同一个类、方法、属性等上使用)。Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。@Target 注释标记另一个注释,以限制可以应用注释的Java元素类型。原创 2023-02-20 02:26:07 · 82 阅读 · 0 评论 -
Druid学习
Java连接数据库有很多中方式,最原始的方式就是直接使用数据库驱动连接数据库,但是这种方式有很多的弊端,如每次执行sql都需要创建和关闭数据库连接器,需要消耗大量的资源,如果没关闭成功还会导致内存泄漏的问题,以及一些线程问题。而数据库连接池主要做的是,预先创建好一定量的数据库连接放到池子中,当需要执行sql语句的时候取出一个数据库连接执行sql语句,用完了放回去,如果系统关闭则断开所有的数据库连接,并释放内存。8)Test-while-idle,指的是控制当连接处于空闲状态时,是否需检测连接的健康状态。原创 2023-02-13 08:13:15 · 88 阅读 · 0 评论 -
JAVA异常与异常处理
Java异常及异常处理原创 2023-02-07 11:07:37 · 66 阅读 · 0 评论 -
版本号比较程序设计
移动开发过程中,许多场景需要用到版本号的比较,根据版本号的大小做不同的逻辑。iOS客户端的版本号传给后台的可能是2段、3段,例如2.3,1.2.1,一般不会出现4段和5段的情况。而Android可能是3段或者4段,例如三段1.3.0,四段 1.10.1.4等。原创 2023-01-11 11:06:49 · 127 阅读 · 0 评论 -
常见加密解密算法学习
常见的加密和解密算法原创 2023-01-03 13:56:45 · 184 阅读 · 0 评论 -
Hutool PinyinUtil结合pinyin4j使用
Hutool PinyinUtil结合pinyin4j使用原创 2022-12-26 01:08:48 · 1003 阅读 · 0 评论 -
Map嵌套java代码设计
最近在工作遇到需要把List列表转化为Map嵌套的格式返回,在此做下记录。原创 2022-12-19 10:09:08 · 400 阅读 · 0 评论 -
浅谈MyBatis中模糊查询LIKE的几种方式
在操作数据库时,查询是最常用的语句,模糊查询也是数据库SQL中使用频率很高的SQL语句,利用MyBatis框架来进行更加灵活的模糊查询,介绍以下两种常用的方式。原创 2022-12-19 08:55:05 · 1457 阅读 · 0 评论 -
获取树结构JAVA代码设计
在日常的开发工作中,我们经常会遇到需要返回树结构的情况,在此记录下一般的处理方式。树结构存在上下级关系,一般子节点会保存父节点的ID(parentId),很多人会采用递归的方式去处理,但通过map,两次循环遍历的办法,可以不用递归即可实现返回树结构。原创 2022-12-05 00:47:50 · 341 阅读 · 0 评论