自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(628)
  • 收藏
  • 关注

转载 spring-boot-starter-parent 与 spring-boot-dependencies区别

我们平常时开发springboot项目时,pom文件中引入的依赖,总是少不了spring-boot-starter-parent 或 spring-boot-dependencies(仅其一),若未引入,会导致我们的项目缺包,今天我们来探讨一些两者的区别。当我们使用 spring 或 spring-boot 开发项目时,需要引入很多依赖,包括 spring 本身的组件、各种 spring-boot-starter、以及其它第三方依赖(如:slf4j、redis)。

2024-01-31 02:09:20 75

原创 execjs执行报: ‘gbk‘ codec can‘t decode byte 0xac in position 62: illegal multibyte sequence

【代码】execjs执行报: ‘gbk‘ codec can‘t decode byte 0xac in position 62: illegal multibyte sequence。

2023-12-22 21:21:43 419

原创 web逆向经验

对于逆向老手而言,“补环境” 这个词不会陌生,当我们每次把辛辛苦苦扣出来的 “js加密算法代码”,并且放在浏览器环境中能正确执行后,就需要将它放到Node环境 中去执行,即对于这段 “js加密算法代码” 而言,我们补出来的环境与浏览器环境一致。将顺序执行的代码混淆成乱序执行,并加以混淆,以下两段代码的执行结果是相同的。要想 “补浏览器环境”,首先我们得知道 “js加密算法代码” 到底。补浏览器环境” 其实是补浏览器有 而Node没有的环境,即。补的越完善,我们能通杀JS环境检测越多。

2023-12-22 15:50:57 1466

原创 直播原理,直播CDN及相关协议

它可以与常见的传输协议如RTP(Real-time Transport Protocol)结合使用,以在网络上传输实时音视频流。HLS(HTTP Live Streaming)是一种基于HTTP的流媒体传输协议,主要用于实现在互联网上通过 HTTP 协议传输音视频内容。由于基于UDP,也可用于一些交互性较高的直播场景,例如直播带货,但如果用于直播场景,则需要在中间架设webRTC服务器。Streaming,ABR),可以根据观众的网络条件和设备性能,动态调整传输的码率,以提供更好的观看体验。

2023-12-16 22:44:17 1027

原创 音视频处理相关软件

虽然主要用于图像处理和计算机视觉,但它也包含了一些用于视频处理的功能,基本要结合FFmpeg的解编码功能进行使用。GStreamer 是一个开源的多媒体框架,用于构建音视频处理的流水线。它提供了丰富的插件体系结构,支持多种编解码器和效果,并可以用于构建各种多媒体应用程序,包括播放器、编辑器和流媒体服务器。在音视频处理中,OpenGL 可以用于创建图形用户界面、渲染视频纹理,以及进行图形加速的渲染操作。它被广泛用于处理和编辑音视频文件,以及在多媒体应用程序和流媒体服务中进行音视频处理。OpenGL 是一个。

2023-12-15 23:06:22 461

原创 音视频参数介绍

I帧(关键帧),P帧(预测帧)和B帧(双向预测帧)是视频压缩中常用的三种帧类型,它们共同构成了视频序列的编码结构。图像分辨率是通过像素的数量来描述的,更高的分辨率通常意味着图像中包含更多的像素,因此能够呈现更丰富的细节。直播中设置gop和帧率的1-2倍的好处就是,画面不容易花屏,当直播中断后,重新拉取流也能更快的重新播放(高帧率可能导致更多的图像变化,特别是在快速运动的情况下,这可能需要更高的码率来维持图像质量。I帧存储了整个图像的信息,是视频解码的起点,也是视频编辑和切割的关键点。

2023-12-15 22:29:47 1172

原创 Java9及之后关于类加载器的新特性

为了保证兼容性,。

2023-12-09 17:49:44 453

原创 scrapyd及gerapy的使用及docker-compse部署

scrapyd是一个用于部署和运行scrapy爬虫的程序,它允许你通过JSON API(也即是web api)来部署爬虫项目和控制爬虫运行,scrapyd是一个守护进程,监听爬虫的运行和请求,然后启动进程来执行它们scrapyd的安装scrapyd服务端: pip install scrapydscrapyd客户端: pip install scrapyd-client启动scrapyd服务在scrapy项目路径下 启动scrapyd的命令:sudo scrapyd 或 scrapyd。

2023-12-02 12:41:21 1201

原创 scrapy-redis

是 Scrapy 框架的一个扩展,它提供了对 Redis 数据库的支持,用于实现分布式爬取。通过使用 Scrapy-Redis,你可以将多个 Scrapy 进程连接到同一个 Redis 服务器,共享任务队列和去重集,从而实现爬虫的分布式调度。主要特点和功能包括:分布式爬取支持: Scrapy-Redis 允许多个 Scrapy进程协同工作,它们可以在不同的机器上运行,共享任务队列和去重集,提高爬取效率。

2023-12-02 09:18:59 431

原创 scrapy爬虫中间件和下载中间件的使用

先看一个内置的中间件:UserAgentMiddlewareinit: 在这里进行中间件的初始化,可以使用 settings 对象获取配置信息from_crawler:在这里通过 crawler 对象创建中间件的实例,可以获取全局配置信息spider_opened(可选): 在这里执行爬虫启动时的初始化操作,例如打开文件、连接数据库等process_request(可选): 在这里对请求进行预处理,例如修改请求头、添加代理等那么同理process_response(可选)

2023-12-02 04:15:53 1515 1

原创 scrapy的建模及管道的使用

不同的pipeline可以处理不同爬虫的数据,通过spider.name属性来区分,不同的pipeline能够对一个或多个爬虫进行不同的数据处理的操作,比如一个进行数据清洗,一个进行数据的保存同一个管道类也可以处理不同爬虫的数据,通过spider.name属性来区分。from myspider.items import MyspiderItem这一行代码中 注意item的正确导入路径,忽略pycharm标记的错误。模板类定义以后需要在爬虫中导入并且实例化,之后的使用方法和使用字典相同。

2023-12-01 18:38:02 578

原创 scrapy介绍,并创建第一个项目

scrapy

2023-12-01 18:06:14 1052

原创 设置Ubuntu 20.04的静态IP地址(wifi模式下)

服务和应用的稳定性:对于运行服务或应用程序的服务器,静态IP地址确保服务或应用程序始终可通过固定的IP地址访问。网络性能优化:在某些情况下,静态IP地址可以提供更快的网络连接和更低的延迟。与动态IP地址相比,静态IP地址减少了DHCP协议的交互过程,从而可能提高网络性能。这意味着每次重新启动系统后,设备都会被分配相同的IP地址,确保网络设备的稳定性和持久性。尽管静态IP地址具有这些好处,但在为Ubuntu设置静态IP地址之前,请确保了解网络的配置要求和相关的网络设备设置。

2023-10-26 12:16:07 1039

原创 linux下python导入特定路径的包

通过调用sys.path.append(“it’s path”)添加,但这种方式是临时的,退出当前会话之后就失效了。此时,可以打印 echo $PYTHONPATH 查看一下是否添加成功。进入python模式下,

2023-10-16 19:34:52 332

原创 Spring Boot启动源码分析

一,前言。

2023-09-20 23:27:38 630

原创 基于Redisson的Redis结合布隆过滤器使用

布隆过滤器的误判是指多个输入经过哈希之后在相同的bit位置1了,这样就无法判断究竟是哪个输入产生的, 因此误判的根源在于相同的 bit 位被多次映射且置 1。这种情况也造成了布隆过滤器的删除问题,因为布隆过滤器的每一个 bit 并不是独占的,很有可能多个元素 共享了某一位。此时我们查询一个没添加过的不存在的字符串inexistent-key,它有可能计算后坑位也是1/3/5 ,这就是误判了。如果这些点, 有任何一个为零则被查询变量一定不在, 如果都是 1,则被查询变量很 可能存在。

2023-07-18 14:38:16 1750 2

转载 Spring Cloud Stream使用

Spring Cloud Stream对Spring Cloud体系中的Mq进⾏了很好的上层抽象,可以让我们与具体消息中间件解耦合,屏蔽掉了底层具体MQ消息中间件的细节差异,就像Hibernate屏蔽掉了具体数据库(Mysql/Oracle⼀样)。如此⼀来,我们学习、开发、维护MQ都会变得轻松。⽬前Spring Cloud Stream原生⽀持RabbitMQ和Kafka,阿里在这个基础上提供了RocketMQ的支持,简单使用Spring Cloud Stream 构建基于RocketMQ的生产者和消费者。

2023-07-13 01:44:09 1148 1

原创 RuoyiCloudPlus结合SkyWalking-9.4.0 docker部署流程

配置文件在config/agent.config,参考配置文档https://skywalking.apache.org/docs/skywalking-java/v8.16.0/en/setup/service-agent/java-agent/configurations/,需要删除原目录数据/home/elasticsearch/data或者重新指定文件目录即可。在官方issue中找到解答,

2023-07-10 15:16:55 1438

原创 RuoyiCloudPlus -防止重复提交

【代码】RuoyiCloudPlus -防止重复提交。

2023-07-09 22:10:01 454 2

原创 MapstructPlus结合RuoyiCloudPlus使用

Mapstruct Plus 是 Mapstruct 的增强工具,在 Mapstruct 的基础上,实现了自动生成 Mapper 接口的功能,并强化了部分功能,使 Java 类型转换更加便捷、优雅。和 Mapstruct 一样,本质上都是一个基于 JSR 269 的 Java 注释处理器,因此可以由 Maven、Gradle、Ant 等来构建触发。Mapstruct Plus 内嵌 Mapstruct,和 Mapstruct 完全兼容,如果之前已经使用 Mapstruct,可以无缝替换依赖。关于。

2023-07-09 21:18:26 811

原创 ruiyo-cloud-plus集成shardingsphere-proxy进行分库分表

Sharding-Proxy是ShardingSphere的第二个产品。它定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等)操作数据,对DBA更加友好。

2023-07-09 17:19:36 385

原创 Python中 *args 和 **kwargs的用法总结

args 和 **kwargs 是 Python 中常用的特殊参数,。

2023-04-24 18:54:56 938 1

原创 aiohttp 异步爬虫实战

这里网页源码过长,只截取输出了一部分,可以看到我们成功获取了网页的源代码及响应状态码 200,也就完成了一次基本的 HTTP 请求,即我们成功使用 aiohttp 通过异步的方式进行了网页的爬取,当然这个操作用之前我们所讲的 requests 同样也可以做到。所以,这里可以按照实际情况处理,参考官方文档说明,看看其对应的返回值是怎样的类型,然后决定加不加 await 就可以了。对于一些返回 coroutine 的操作,前面需要加 await 来修饰,如 response 调用 text 方法,

2023-04-19 03:03:36 471

原创 异步爬虫的原理和解析

以上便是 Python 中协程的基本原理和用法,在后面文章会详细介绍 aiohttp 的使用和爬取实战,实现快速高并发的爬取。

2023-04-19 02:12:25 1340

转载 centos7 centos-home 磁盘空间转移至centos-root下

可以看到home下面100G的磁盘容量已经转移到root下面了,至此,转移任务结束。此为在CentOS7.2系统下测试使用的,在CentOS6版本下还没测试过。由于在安装centos系统的时候,如果在安装时没有分配磁盘空间,选择的是默认分配的,在安装完成后,可以发现大容量磁盘往往分配在了home下面。df -h (centos-home和centos-root每人的名字可能不一样)如果要把home下面的磁盘空间分配到root磁盘下面。卸载时,发现/home在使用中,所以先终止。查看CentOS的系统版本。

2023-02-20 23:31:19 902

原创 使用Client Java构建Exporter程序

在client_java的simpleclient模块中提供了自定义监控指标的核心接口。simpleclient模块由micrometer-registry-prometheus依赖导入。当无法直接修改监控目标时,可以通过自定义Collector的方式,实现对监控样本收集,该收集器需要实现collect()方法并返回一组监控样本。

2023-01-29 00:15:05 1085

原创 Prometheus-Exporter详解

因此,用户只能通过独立运行一个程序的方式,通过操作系统提供的相关接口,将系统的运行状态数据转换为可供Prometheus读取的监控数据。除了直接使用社区提供的Exporter程序以外,用户还可以基于Prometheus提供的Client Library创建自己的Exporter程序,目前Promthues社区官方提供了对以下编程语言的支持:Go、Java/Scala、Python、Ruby。所有的Exporter程序都需要按照Prometheus的规范,返回监控的样本数据。

2023-01-18 17:23:21 4900

原创 使用docker-compose搭建Prometheus+Grafana监控系统

选择完成后,打开新的页面,在HTTP的URL中输入Prometheus的地址http://192.168.3.250:9094, 点击保存并测试。中搜索需要的Dashboard模版,并将其json文件下载下来。也可通过docker ps命令查看是否启动成功。打开http://192.168.3.250:3000,在Grafana菜单栏中第一个+号中,选择import。,在如下图所示中,选择Prometheus。可通过如下命令查看端口策略是否已经生效。

2023-01-18 15:13:37 1730

原创 Prometheus基础

JMX, CloudWatch, EC2, MySQL, PostgresSQL, Haskell, Bash, SNMP, Consul, Haproxy, Mesos, Bind, CouchDB, Django, Memcached, RabbitMQ, Redis, RethinkDB, Rsyslog等等。Prometheus是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底的颠覆,形成了基于中央化的规则计算、统一分析和告警的新模型。,比如Graphite。

2023-01-18 14:30:24 750

转载 Log4j 2 日志框架

Log4j 2 官网:https://logging.apache.org/log4j/2.x/是对 Log4j 的升级,它比其前身Log4j 1.x 提供了显着改进,并提供了 Logback 中可用的许多改进,同时修复了 Logback 架构中的一些固有问题。提高性能:Log4j 2 包含基于 LMAX Disruptor 库的下一代异步记录器。在多线程场景中,异步 Logger 的吞吐量比 Log4j 1.x 和 Logback 高 18 倍,延迟低几个数量级。

2022-12-16 22:44:43 231

转载 Logback 日志框架

Logback 官网:https://logback.qos.ch/Logback 是由 Log4j 创始人设计的又一个开源日志组件。作为流行的 Log4j 项目的继承者,在 log4j 1.x 停止的地方接手。其架构非常通用,可以在不同的情况下应用。目前分为三个模块,logback-core、logback-classic 和 logback-access。logback-core 是其它两个模块的基础模块。logback-classic 是 Log4j 的一个改良版本,

2022-12-16 22:00:37 448

转载 SLF4J 日志门面

官方网址:https://www.slf4j.org/SLF4J( Simple Logging Facade For Java),即简单日志门面。主要是为了给 Java 日志访问提供一套标准、规范的 API 框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,例如 Log4j 或 Logback 等。SLF4J 自身也提供了功能较为简单的实现,但是一般很少用到。对于一般的 Java 项目而言,日志框架会选择 slf4j-api 作为门面,配上具体的实现框架,中间使用桥接器完成桥接。

2022-12-16 21:33:21 349

转载 JCL 日志门面

JCL( Jakarta Commons Logging ),是Apache 提供的一个 通用日志 API。用户可以自由选择第三方的日志组件作为具体实现,像 Log4j 或 JDK 自带的 JUL。common-logging 会通过动态查找的机制,在程序运行时自动找出真正使用的日志框架。其内部有一个 Simple logger 的简单实现,但是功能很弱,所以 common-logging 通常都是配合着 Log4j 以及其他日志框架来使用。使用它的好处就是,

2022-12-16 21:01:15 142

转载 Log4j 日志框架

Log4j(Log for java)是 Apache 的一个开源项目,通过使用 Log4j,可以控制日志信息输送的目的地是控制台或文件等,也可以控制每一条日志的输出格式。通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。使用 Log4j 技术,主要使用的是其配置文件。记录器Loggers(记录器)控制日志的输出级别,规则是:只输出级别不低于设定级别的日志信息。以及引用 Appenders(输出器)。级别(由低至高)描述。

2022-12-16 20:49:55 329

原创 JUL日志框架

JUL(Java Util Logging),它是 Java 原生的日志框架,位于 java.util.logging.Logger 包。相对其他的框架使用方便,学习简单,主要是使用在小型项目中。组件描述Logger(记录器)用于记录系统或应用程序的消息,是访问日志系统的入口程序,用于记录系统或应用程序的消息,是访问日志系统的入口程序Handler(处理器)从记录器获取日志消息并输出,决定日志记录最终的输出位置Filter(过滤器)用于对记录的内容提供细粒度控制,超出日志级别提供的控制。

2022-12-16 18:25:29 510

原创 Java日志框架简介

每一种日志框架都有自己单独的API,要使用对应的框架就要使用对应的API,这就大大的增加了应用程序代码对于日志框架的耦合性。上面涵盖了java世界里主要的日志框架或门面。用来方便有效地记录日志信息。Java原生日志框架。

2022-12-16 15:27:43 525

原创 Spring Boot整合Swagger3.0及Knife4j

Swagger是一组围绕 OpenAPI 规范构建的开源工具,可帮助您设计、构建、记录和使用 REST API。主要的 Swagger 工具包括:Swagger Editor – 基于浏览器的编辑器,您可以在其中编写 OpenAPI 规范。Swagger UI – 将 OpenAPI规范呈现为交互式 API 文档。swagger2于17年停止维护,现在最新的版本为 Swagger3(Open Api3)。knife4j是。

2022-12-15 21:41:27 5559

原创 Java serialVersionUID 有什么作用

当一个对象实现 Serializable 接口时,多数 ide 会提示声明一个静态常量 serialVersionUID(版本标识),那 serialVersionUID 到底有什么作用呢?当不显式定义 serialVersionUID 的值时,Java 根据类的多个方面(具体可参考 Java 序列化规范)动态生成一个默认的 serialVersionUID。测试发现没有什么问题。所以,为了保证在不同的 jdk 编译实现中,其 serialVersionUID 的值也一致,谈到这里,我们大概可以清楚,

2022-11-03 00:20:29 416

原创 JAVA中excel文件导入日期变成数字解决方案

【代码】JAVA中excel文件导入日期变成数字解决方案。

2022-10-20 22:36:07 3396 2

原创 docker下安装fastdfs,并使用java操作api

在执行下面命令时特别需要提醒的时,对应的IP地址,需要修改为tracker服务的IP地址,由于是在同一台电脑上操作,这里使用本机的内网地址即可,22122是tracker对应的端口。先进入storage,查看其对应配置文件中关于http访问的配置,配置文件在/etc/fdfs目录下的storage.conf。关于Docker的安装不同的操作系统有不同的安装方法,这里就不再赘述,默认你的电脑或服务器上已经安装好了Docker,并已启动。上面是关于server的配置,端口与storage的端口一一对应。

2022-10-19 00:14:49 352

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除