- 博客(480)
- 资源 (31)
- 收藏
- 关注

原创 线上问题排查思路及命令
文章目录服务器磁盘整个服务器磁盘占用情况某个目录下文件夹大小查看文件大小磁盘IO性能CPU内存网络DOS攻击应用线程查找繁忙线程查询线程详细信息内存获取内存快照监控内存的OOMGC日志MySQL慢SQL查询当前事务情况查看慢SQL是否开启开启慢SQL连接过多监控死锁获取事务隔离级别查询数据库死锁日志长事务查询Redis内存不足连接过多慢命令网络延迟服务器磁盘常用参数-h:使用人类可读的形式展示整个服务器磁盘占用情况df -h示例:[root@localhost lli]# df -h
2021-04-29 15:18:20
927
2

原创 研发常用在线网站
日常maven库搜索 https://search.maven.org/阿里云仓库搜索 https://maven.aliyun.com/mvn/searchGis在线WKB、GEOJSON展示验证 http://dev.openlayers.org/examples/vector-formats.htmlhttps://clydedacruz.github.io/openstreetmap-wkt-playground/http://geojson.io/#map=2/20.0/0.0———
2021-03-29 16:42:17
935
3

原创 Typora Markdown 使用教程、使用技巧
Typora使用教程、使用技巧Typora是什么?Typora 是一款支持实时预览的 Markdown 文本编辑器。它有 OS X、Windows、Linux 三个平台的版本,并且由于仍在测试中,是完全免费的。官网下载地址:点击下载生成目录只需在相应的位置键入[TOC],目录便会呈现,并且支持点击跳转。@[toc]快捷方式标题级别只需按快捷键Ctrl+1,Ctrl+2,……,Ctrl+6,就可以依次输入一级到六级标题文字加粗、倾斜、下划线Ctrl+B/I/U进入加粗/倾斜/下划线源
2020-12-14 17:10:37
2790
11
原创 如何系列 如何使用OpenCV进行图像操作
OpenCV (Open Source Computer Vision Library) 是一个计算机视觉和机器学习的开源库,其提供了丰富的图像处理和计算机视觉算法。OpenCV 最初是为 C++ 编写的,但现在也支持 Java 编程语言。你就认为是个增强版的ps工具图像读取和显示:OpenCV 可以读取多种图像格式,并提供图像显示的功能。图像处理:OpenCV 提供了各种图像处理工具,包括滤波、增强、色彩转换、几何变换等。特征检测与描述。
2023-09-28 14:33:04
160
原创 从零搭建开发脚手架 顺应潮流开启升级 - SpringBoot 从2.x 升级到3.x
之前的SpringBoot starter插件自动注册原理是依赖。移除Druid连接池(当前不支持SpringBoot3)升级JDK 8 -> JDK17。组件,可以在项目某个模块的。
2023-09-26 15:20:36
87
原创 IntelliJ IDEA - Maven 在控制台Maven编译正常,但是在IDEA中不正常,表现不一致
IDEA内置了一套绑定的Maven,我们在Windows控制台编译Maven项目时,使用的是环境变量中配置的JDK和MavenHome,这就是不一致的原因。一个Maven项目,当导入到IDEA后,无法在IDEA中正常的编译和下载jar依赖,类似下面的截图。在IDEA中就是PowerShell执行,需要引号。更改IDEA中MAVEN和JDK的配置。执行后看日志第一行的变化。设置–>项目设置–>
2023-09-20 14:14:20
335
原创 从零开发短视频电商 使用Spring WebClient发起远程Http调用
让我们从一个对客户端发送的 HTTP GET 请求进行计数的过滤器开始。我们将定义的第二个过滤器将版本号附加到请求 URL 路径。我们利用*ClientRequest.from()*方法从当前请求对象创建一个新的请求对象并设置修改后的 URL。.build();WebClient 默认使用 Project Reactor 提供的线程池来执行异步操作。但是,你可以根据应用程序的需求进行自定义线程池配置。调度器(Schedulers):WebClient 使用调度器来管理线程,例如。
2023-09-13 13:44:59
378
原创 图解系列 图解直播推拉流流程
HLS协议规定,视频的封装格式是TS(Transport Stream),除了TS视频文件本身,还定义了用来控制播放的M3U8文件(文本文件)。HLS协议的工作原理是把整个视频流分割成一个个小的TS格式视频文件来传输,在开始一个流媒体会话时,客户端会先下载一个包含TS文件URL地址的M3U8文件(相当于一个播放列表),给客户端用于下载TS文件。在 CDN Origin 设置时,添加自定义 Header 字段及值,源站对请求中的字段检查,若不含有该 Header 字段及值,则返回错误码。
2023-09-08 15:10:20
168
原创 从零开发短视频电商 自动化测试SikuliX-编程方式
来执行基本的 UI 操作。让我们看一下与 Sikuli 进行 UI 交互的一些重要方法。Sikuli 可能会识别不同的对象,因此在这种情况下我们可以使用 Pattern 类来唯一地标识对象。Screen类包含用于屏幕元素上所有常用操作的预定义方法,如单击、双击、向文本框提供输入、悬停等。因此,如果可能的话,将查找操作限制在较小的区域对象(例如。Sikuli 使用图像进行对象识别,因此,每个方法都将至少接受一个参数作为图像文件的路径。,因此类 Region 的所有方法都可用于 Screen 对象。
2023-09-07 14:02:10
259
原创 图解系列 图解Kafka之Producer
它会连接bootstrap.servers参数指定的所有Broker,Producer启动时会发起与这些Broker的连接。因此,如果你为这个参数指定了1000个Broker连接信息,那么很遗憾,你的Producer启动时会首先创建与这1000个Broker的TCP连接。指定bootstrap.servers,地址的格式为。指定acks配置,默认值是all(版本3.x)在消息发送的过程中,涉及到了两个线程——指定Key和Value的序列化方式。线程中创建了一个双端队列。
2023-09-06 14:42:17
383
原创 从零开发短视频电商 自动化测试WebUI端到端测试-Playwright
chi_sim.traineddata(中文简体)、eng.traineddata(英文)、jpn.traineddata(日文)三个语言库,存放在 resources 的 data 目录下(如下图所示,osd.traineddata 与页面分割模式有关,这里也一并下载了)默认情况下,测试以无头方式运行,这意味着运行测试时不会打开浏览器窗口,并且结果将在终端中看到。然后,下载对应的语言资源,可以手动下载设置也可以使用jar包内置的资源。,获取验证码图片的方式,可以直接定位到img元素,对元素截图即可。
2023-08-18 14:24:23
524
1
原创 如何系列 如何使用Resilience4j提高应用弹性和容错
官网Github是一个轻量级容错库,灵感来自 Netflix Hystrix,但专为函数式编程而设计。提供装饰器,以通过断路器、速率限制器、重试或舱壁增强任何功能接口、lambda 表达式或方法引用。您可以在任何函数式接口、lambda 表达式或方法引用上堆叠多个装饰器。断路器模式(Circuit Breaker)当操作连续失败时快速失败或执行默认操作,Resilience4j实现了断路器模式,它可以在系统出现故障时自动切换到开启状态,阻止请求继续发送到故障的组件。
2023-08-10 10:20:55
83
原创 如何系列 如何实现主线程等待子线程超时(多种解决方案)
在某些情况下,我们希望执行一个任务,但不能无限期地等待其完成,而是需要在一定的时间范围内获取任务的结果或决定任务超时并进行相应的处理。方法,我们等待任务的执行结果,最多等待5秒钟。注意,任务的实际执行时间是3秒,因此在5秒的超时时间内,任务可以正常完成。这样,主线程可以等待任务的结果,但如果任务在规定的时间内没有完成,主线程会继续执行其他操作。方法的参数表示最多等待的时间(毫秒),如果在该时间内任务线程没有执行完毕,主线程会继续执行。方法在主线程中等待任务完成,并在超时时间内唤醒主线程。
2023-08-04 09:18:43
150
原创 图解系列 非对称加密应用场景
非对称加密使用一对密钥,分别是公钥(public key)和私钥(private key)。加密场景 公钥加密、私钥解密:这种场景适用于保护数据的机密性,并确保只有特定接收方(私钥持有者)能够解密和查看数据。一个典型的应用是在SSL/TLS协议中用于安全地传输敏感数据,如网银交易、密码登录等。加签验签场景 私钥加密、公钥解密:这种场景适用于数字签名的应用。发送方使用私钥对数据进行签名,接收方通过使用发送方的公钥来验证签名的真实性和数据的完整性,确保数据没有被篡改,并且确保是由私钥持有者发送的。总结:
2023-08-03 15:37:29
143
原创 图解系列 DNS查找过程和DNS缓存
可查看源码InetAddress 和 InetAddressCachePolicyjava dns解析缓存之源码解析如果打开Java中的DNS缓存将不会失效。否则,可访问的DNS解析缺省缓存30秒,不可访问的DNS解析缺省缓存10秒。关于(域名缓存时间),给出“对于多条A记录是采用什么策略返回IP的结论:在缓存有效期内,取到的IP永远是缓存中全部A记录的第一条,并没有轮循之类的策略。缓存失效之后重新进行DNS解析,因为每次域名解析返回的A记录顺序会发生变化(
2023-08-02 14:42:49
896
1
原创 从零开发短视频电商 单元测试(TestNG)
官网TestNG是一个基于 Java 的开源测试框架。该框架受到 JUnit 和 NUnit 的启发,但引入了一些新功能,使其更强大且更易于使用。您可以在测试实施期间创建 HTML 报告。它具有分组测试、注释、参数化等功能,有助于更快地创建测试。TestNG的核心特性在任意大小的线程池中运行测试,并提供各种可用策略(所有方法都在自己的线程中,每个测试类一个线程等等)。测试您的代码是否是线程安全的。灵活的测试配置。支持数据驱动测试(使用支持参数。强大的执行模型(不再是TestSuite。
2023-07-18 22:00:01
1470
2
原创 炫技亮点 使用Optional类优化代码,提升可读性和简化空值处理
Optional 是 Java 8 中引入的一个类,它的主要目的是解决空值处理的问题。Optional 可以包装一个值,这个值可以是 null,也可以是非 null。通过使用 Optional,我们可以避免显式的空值判断,从而简化代码逻辑。存在值的状态,表示对象不为空。空值状态,表示对象为空。
2023-07-11 21:34:27
142
原创 从零开发短视频电商 Jmeter基础介绍和使用心得
是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求,也可以使用 Java 类型的请求进行自定义编写。:运行脚本成功后生成的html图形化报告的绝对路径,如果不需要此结果,删除“-e -o /usr/laker/result/WebReport”
2023-07-10 20:59:59
509
原创 从零开发短视频电商 使用nimbus-jose-jwt进行对称签名和非对称签名的JWT实现
JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于安全地在各方之间传输信息,其格式为JSON对象。这些信息可以被验证和信任,因为它们是数字签名的。JWT可以使用对称算法(使用HMAC算法)或非对称算法(使用RSA或ECDSA的公钥/私钥)对进行签名。尽管JWT可以加密以实现机密性(JWK),但我们更多使用的是签名令牌(JWS)。签名令牌可以验证声明的完整性,而加密令牌则隐藏这些声明,不让其他方看到。
2023-07-05 21:56:51
383
原创 可观测性-Metrics-Spring Websocket监控
介绍:DistributionSummary用于计算一组值的分布统计信息,如平均值、最大值、最小值和百分位数等。适用场景:适用于度量一组值的分布情况,如请求响应时间、响应大小等。测量响应大小分布示例// 记录响应大小 summary . record(2048);// 记录响应大小 summary . record(512);// 记录响应大小 // 获取统计结果 long count = summary . count();
2023-06-29 13:49:30
1303
原创 炫技亮点 Spring Websocket idle check原理
Spring Websocket 是基于 WebSocket 协议的实现,它提供了一种在客户端和服务器之间实时双向通信的方式。其中,idle check(空闲检查)是一种机制,用于检测 WebSocket 连接的空闲状态。连接丢失检查是一种检测与另一个端点的连接是否丢失的功能,例如由于wifi或移动数据信号丢失。检测是双向的,因此服务器可以检测到丢失的客户端,而客户端可以检测到与服务器的连接丢失。Java_websocket提供了主动发送Ping消息的机制,原理在下面有。即等于每10秒check一次。
2023-06-28 10:58:16
786
原创 炫技亮点 Websocket集群解决方案汇总
WebSocket的连接在不同的服务器之间是无法共享的,因此无法将WebSocket的Session存储在共享的存储中。通过将消息发送到中间件,然后再将消息广播给订阅的服务器,类似于广播的方式,只要订阅了消息,就能接收到消息的通知。例如,在一个WebSocket集群中,当一个客户端连接到节点A时,而其他节点(B、C)不知道这个连接存在,当节点B收到一条消息并尝试将其推送给该客户端时,它会失败,因为它不知道该客户端连接到了节点A。在集群中的每个服务节点上发送群发消息,以确保消息能够覆盖到所有连接的客户端。
2023-06-26 17:24:52
1859
5
原创 如何系列 如何在单机和集群环境保证代码线程安全
线程安全是程序设计中的术语,指某个函数函数库在多线程环境中被调用时,能够正确地处理多个线程之间的公用变量,使程序功能正确完成。以上来自维基百科举个例子来说明线程安全的重要性。假设有一个电影院播放一场电影,座位总数为10个。如果没有线程安全的保护措施,当多个人同时抢购电影票时,可能会出现剩余座位数大于0的情况,导致售出过多的票,不符合预期。示例代码System . out . println("抱歉," + user + ",剩余票数不足!");return;
2023-06-24 21:08:23
290
原创 如何系列 如何使用SikuliX执行自动化任务
SikuliX(西库里)可自动执行在运行Windows,Mac或某些Linux / Unix的台式计算机屏幕上看到的所有内容。它使用OpenCV提供的图像识别功能来识别GUI组件。在无法轻松访问GUI内部或要操作的应用程序或网页的源代码的情况下,这非常方便。SikuliX支持脚本语言Python语言级别2.7(由Jython支持)支持运行RobotFramework文本脚本Ruby语言级别1.9和2.0(由JRuby支持)JavaScript(由Java脚本引擎支持)
2023-06-21 15:26:03
1453
1
原创 从零开发短视频电商 Jmeter插件安装和常用插件
下载地址:https://jmeter-plugins.org/install/Install/:主要显示平均响应时间,活动线程数,成功/失败交易数等。:监控服务器硬件,如CPU,内存,硬盘读写速度等。:主要显示吞吐量,连接时间,每秒的点击数等。: websocket请求插件。目录,重启JMeter。
2023-06-16 14:54:30
1518
原创 踩坑笔记 Spring websocket并发发送消息异常
在本篇博文中,我们讨论了在使用 Spring WebSocket 进行并发发送消息时可能遇到的异常情况。我们深入分析了异常的原因,并提供了三种解决方案:加锁同步发送、使用和自研事件驱动队列(借鉴 Tomcat)。每种方案都有其适用的场景和注意事项,你可以根据自己的需求选择合适的方法来解决并发发送消息的异常问题。希望本文对你有所帮助,让你在使用 Spring WebSocket 时能够避免类似的坑。如果你对本文有任何疑问或意见,欢迎在评论区留言,我们将尽力为你解答。
2023-06-14 23:35:17
1757
原创 如何系列 JMeter如何录制脚本
方式推荐星级备注手动编写⭐️⭐️⭐️适合少量接口,自己手撸JMeter录制⭐️⭐️⭐️自己的录制,不需要任何安装,但是要配置代理,录制的脚本还可以Fiddler录制cURL⭐️录制完的脚本,导入到JMeter后很垃圾,要改很多Fiddler录制JMX⭐️⭐️⭐️还可以吧,中规中矩Badboy录制⭐️⭐️有的时候页面会卡主。。。Blazemeter录制⭐️⭐️⭐️⭐️⭐️非常好用,但是需要梯子。
2023-06-13 10:05:05
1602
原创 炫技亮点 利用卫语句降低代码复杂度,提升可读性和可维护性
卫语句是一种编程技巧,也被称为前置条件(Guard Clauses)。它通过提前对条件进行判断并在条件不满足时立即返回或执行相应的逻辑,从而避免嵌套的条件判断和深层嵌套的代码块。卫语句能够使代码更加扁平、易读和易于理解。代码扁平化:卫语句能够将嵌套的条件判断转换为扁平的代码结构,减少了嵌套层级,使代码更易读和理解。代码可读性提升:每个条件判断都独立处理,代码逻辑更加清晰,容易跟踪和理解。可维护性增强:卫语句使得修改和调整条件判断更加方便,不需要担心影响其他条件判断的逻辑。
2023-05-31 14:24:37
419
原创 图解系列 图解Spring Boot 最大连接数及最大并发数
根据您的具体需求,您可以根据服务器的负载和资源配置来调整 MaxKeepAliveRequests 的值,以平衡并发连接和服务器资源的利用率。:轮询器,轮询是否有事件达到,有请求事件到达后,以NIO的处理方式,查询Selector取出所有请求,遍历每个请求的需求,分配给Executor线程池执行。时,新来的请求不会收到服务器拒绝连接响应,而是不会和新的请求进行3次握手建立连接,一段时间后(客户端的超时时间或者Tomcat的20s后)会出现请求连接超时。等待另一个 HTTP 请求的时间,然后关闭连接。
2023-05-30 21:16:15
3086
2
原创 如何系列 如何在Windows和Linux安装Nginx
Nginx是一款高性能的开源Web服务器和反向代理服务器,被广泛用于构建现代化的Web应用和提供静态内容。本篇博文将教你如何在Windows和Linux操作系统上安装Nginx,以便你能够轻松搭建自己的Web服务器。Nginx有两个版本可供选择:开源版本(Nginx Open Source)和商业版本(Nginx Plus):启用真实IP模块,用于从代理服务器接收到的请求中提取真实的客户端IP地址。:接受的客户端连接总数,示例中为12个。:客户端请求的总数,示例中为1636个。查找最新的版本,使用。
2023-05-15 14:43:12
452
1
原创 炫技亮点 任务编排使用CompletableFuture优化业务流程
CompletableFuture是Java8提供的一个强大的异步编程工具,可以用于并发执行多个异步任务。与传统的线程池和Future接口相比,CompletableFuture提供了更强大的任务编排和组合的能力,使得异步编程变得更加简单、高效、易读。在CompletableFuture中,任务之间可以串行执行,也可以并行执行,甚至可以嵌套执行。而且,我们还可以使用各种组合操作来实现任务的链式编排,这使得我们可以方便地创建复杂的任务流程,而不需要编写复杂的控制逻辑。
2023-05-07 20:29:52
641
原创 炫技亮点 SpringBoot下消灭If Else,让你的代码更亮眼
当使用if-else或switch语句进行复杂条件判断时,代码会变得难以阅读和维护。这时,使用策略模式和工厂模式可以有效消除条件判断语句,使代码更加优美、简洁、易于维护。当你coding时碰到if-else或switch语句,你就要想一想能不能用策略模式和工厂模式来优化它使用策略模式和工厂模式的场景包括选择算法、支付方式、优惠方式、根据类型调用不同的系统等。策略模式和工厂模式的优点包括扩展性好、符合开闭原则、符合单一职责原则、可读性好、便于维护、避免多层判断等。然而缺点。
2023-04-29 20:09:53
1068
原创 从零搭建开发脚手架 自定义打包构建研发输出产物
在打包项目时,通常只需要生成一个可执行的jar文件。然而,有时候需要将启动脚本或外部配置文件附加到该jar文件中,这时候就可以使用。此工具可以根据自己的需求将所需的文件打包到指定的目录中。配置assembly.xml文件路径。
2023-04-24 15:08:24
299
原创 从零搭建开发脚手架 异步线程池场景下增强Trace功能
下面两篇文章是之前写的trace功能的基础和原理。但是在业务中有异步线程场景下,trace功能有点儿瑕疵,具体看下面的描述。我们看到日志有两个问题。
2023-04-15 21:28:24
433
原创 从零搭建开发脚手架 验证码出不来并报错cannont invoke ScriptEngine error
经过百度了解JavaScript引擎在Java高版本移除掉了,所以报这个错误。
2023-04-14 13:42:23
212
原创 从零搭建开发脚手架 Maven 构建错误 Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:3.1.0
然后在idea总重新加载maven项目。
2023-04-14 13:24:56
73
原创 Windows网络流量监控工具整理
DU Meter【国外】是计算机的网络带宽监视器。可以显示当前网速、CPU 及内存利用率,支持嵌入到任务栏显示,支持更换皮肤、历史流量统计等功能。EasyNetMonitor【国外】获取本地网络中计算机在线信息的最简单、最快捷的方式。NetSpeedMonitor【国外】是Windows任务栏的轻量级网络监视工具栏。TrafficMonitor【国产】开源的网速监控悬浮窗软件。是一款用于 Windows 平台的网速监控悬浮窗软件。火绒安全软件【国产】里面内置了网络监控。【国外】是一款专业的。
2023-04-13 18:33:59
2636
原创 Nginx用作 内网CDN / edge cache 服务
首先要明白什么是CDN?CDN英文全称Content Delivery Network,中文翻译即为内容分发网络。它是建立并覆盖在承载网之上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。CDN应用广泛,支持多种行业、多种场景内容加速,例如:图片小文件、大文件下载、视音频点播、直播流媒体、全站加速、安全加速。加速原理如下以下内容来着阿里云假设您的加速域名为,接入CDN开始加速服务后,当终端用户在北京发起HTTP请求时,处理流程如下图所示。
2023-04-12 20:09:33
846
原创 判断内网IP是否为同一个子网
CIDR(Classless Inter-Domain Routing)是互联网中一种新的寻址方式,与传统的A类、B类和C类寻址模式相比,CIDR在IP地址分配方面更为高效。其中/8表示8位网络ID,即32位二进制地址中前8位是固定不变的,对应网段为:00001010.00000000.00000000.00000000。00011111.11111111,可以得出前19位(8*2+3)是固定不变的,则换算为CIDR格式后,表示为:192.168.0.0/19。判断两个IP地址是否在同一个网段,将它们的。
2023-04-11 13:34:58
289
免费 redhat7 yum 安装.zip
2020-11-18
网上收集的最全面试题库.zip
2020-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人