- 博客(104)
- 收藏
- 关注
原创 常用的设计模式详解
设计模式是后端开发中的“瑞士军刀”,合理运用可显著提升代码质量。单例模式优化资源管理,减少内存开销;观察者模式实现松耦合的事件处理;策略模式支持灵活的算法扩展。开发者需结合实际需求选择模式,避免教条化应用。通过持续实践与反思,设计模式将成为构建健壮后端系统的强大助力。
2025-05-12 14:43:18
976
原创 GIS开发技术介绍
GIS(地理信息系统)是一种用于采集、存储、分析、管理和展示地理空间数据的技术系统。它将地理位置信息与属性数据结合,支持空间分析、可视化及决策支持。数据采集与管理:通过遥感、GPS、传感器等技术获取地理数据,并存储于数据库(如PostGIS、Spatialite)中。空间分析:如缓冲区分析、叠加分析、路径规划等,用于解决交通、环境监测等问题。可视化与交互:通过地图、热力图、3D模型等形式展示数据,支持用户交互操作(如缩放、标记)。跨领域应用:涵盖智慧城市、自然资源管理、灾害预警、物流规划等多个领域。
2025-05-08 11:17:46
965
原创 ETL介绍及kettle等工具学习
什么是ETL?ETL(Extract, Transform, Load)是数据集成领域的核心流程,用于将数据从多个分散的源系统中抽取、清洗、转换后加载到目标数据仓库或数据湖中,以支持分析、报表和决策。其核心目标是通过规范化、结构化和优化数据,为后续的数据分析提供高质量的数据基础。
2025-05-08 10:27:41
948
原创 前端频繁调用后端接口问题思考
通过组合使用这些策略,可以在不重写系统的前提下显著降低接口调用频率,典型场景可减少50%-90%的不必要请求,同时提升用户体验。建议从监控分析入手,优先优化对用户体验影响最大的关键路径。:实时股票行情、即时聊天、监控仪表盘。:Dashboard多组件数据加载。:搜索建议、窗口resize事件。
2025-04-22 15:54:35
527
原创 Linux中Squid服务常用操作
通过以上步骤,可确保 Squid 配置修改后安全生效,避免服务中断。在 Linux 中 Squid 服务常用操作介绍。
2025-04-06 22:43:52
312
原创 Anolis OS 8.4修复CVE-1999-0554漏洞记录
验证:在非白名单的客户端执行showmount -e <NFS服务器IP>,应返回类似RPC: Authentication error的错误。系统兼容性:Anolis OS 8.4基于CentOS/RHEL生态,上述方法兼容性较高,但需确认tcp_wrappers是否已安装。防火墙规则顺序:确保ACCEPT规则在DROP规则之前,避免误拦截。云服务器操作:修改防火墙前,确保保留SSH等管理端口,避免被锁定。生效条件:无需重启NFS服务,修改后立即生效。执行exportfs -rv刷新配置。
2025-03-30 23:04:45
533
原创 Java 24 学习
Java 24在语言表达能力、并发性能、安全性和AI支持上实现了显著突破,而Java 8的革新主要围绕函数式编程和API现代化。Java 8仍是许多企业的主流选择,但面临安全漏洞和第三方库支持逐渐减少的问题9。Java 24更适合需要高性能计算(如AI推理)、后量子安全或大规模模块化开发的新项目。
2025-03-23 22:33:08
425
原创 Java泛型
Java泛型是Java 5引入的一项重要特性,旨在增强类型安全、减少代码冗余,并支持更灵活的代码设计。掌握泛型能显著提升Java代码的质量和灵活性,尤其在集合操作和通用工具类设计中表现突出。),使得代码可以处理多种数据类型,而无需重复编写逻辑。及其子类,适合读取数据(Producer)。实现,编译时擦除泛型信息,替换为原生类型(如。接口定义类型参数,实现类可指定具体类型。用于增强泛型的灵活性,处理未知类型。表示任意类型,常用于只读操作。类或方法可定义多个类型参数。限制类型参数的范围。
2025-03-16 22:15:35
483
原创 Maven中dependency标签参数
Maven中dependency标签参数如下:一、type有时候我们引入某一个依赖时,必须指定type,这是因为用于匹配dependency引用和dependencyManagement部分的最小信息集实际上是{groupId,artifactId,type,classifier}。在很多情况下,这些依赖关系将引用没有classifier的jar依赖。这允许我们将标识设置为{groupId,artifactId},因为type的默认值是jar,并且默认classifier为null。type的值一般有j
2025-03-09 23:52:03
756
原创 ApplicationContext介绍
ApplicationContext是Spring框架中的一个核心接口,它扩展了BeanFactory接口,并提供了更全面的功能。ApplicationContext不仅包含了BeanFactory的所有功能,还添加了国际化支持、资源访问、事件传播、以及更高级的容器特性,如自动装配和生命周期管理等。它是Spring应用中的核心容器,负责管理和配置应用中的对象(称为beans)。
2025-03-02 22:30:37
826
原创 python爬虫相关
(4)动态网页处理 有些网页通过 JavaScript 加载数据,requests 无法直接抓取。参考文章:https://blog.csdn.net/weixin_45710998/article/details/144348263。抓取的数据可存储到文件(如 CSV、JSON)、数据库(如 MySQL、MongoDB)等介质中,便于后续分析。爬虫通过解析 HTML 提取有用信息,如标题、图片、表格等。(2)解析 HTML 数据 使用 BeautifulSoup 提取 HTML 中的内容。
2025-02-24 08:26:15
1799
1
原创 Mysql全文索引
MySQL 中使用全局变量 ngram_token_size 来配置 ngram 中 n 的大小,它的取值范围是1到10,默认值是 2。剔除一半匹配行以上都有的词,例如,每行都有this这个词的话,那用this去查时,会找不到任何结果,这在记录条数特别多时很有用,原因是数据库认为把所有行都找出来是没有意义的,这时,this几乎被当作是stopword(中断词);一般的数据库搜索都是用的SQL的like语句,like语句是不能利用索引的,每次查询都是从第一条遍历至最后一条,查询效率极其低下。
2025-02-17 00:57:05
664
原创 Python与人工智能
与此同时,根据基于 Google Trends 数据的PYPL指数,在 Google 上搜索编程语言教程时,近 30% 是针对 Python 的,几乎是排名第二的 Java的两倍。随着人工智能扩展到新的行业和用例,以及 Python 功能的不断发展,对精通该语言的开发人员的需求将激增。这是一项重要的技能,对未来的开发人员来说至关重要。有许多因素使 Python 成为 AI 开发的理想选择,包括其易用性、丰富且不断发展的 AI 库和工具包生态系统,以及可用于提高其执行速度和可扩展性的库和工具。
2025-01-12 23:48:28
353
原创 Python常用算法
快速排序是一种分治算法,它选择一个基准元素,分区操作使得比基准元素小的元素放在左边,比基准元素大的元素放在右边,然后递归地对两边进行排序。它重复地遍历要排序的列表,比较相邻的元素并交换它们的位置,如果它们的顺序错误。归并排序是一种分治算法,首先将数组分成两个小数组,分别进行排序,然后将排好序的子数组合并成一个有序的数组。插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。选择排序的工作原理是不断地从未排序部分选择最小(或最大)的元素,放到已排序部分的末尾。
2025-01-05 22:55:15
554
原创 Python之函数
函数是将一段实现功能的完整代码,使用函数名称进行封装,通过函数名称进行调用。以此达到一次编写,多次调用的目的。函数分为两种:一种是Python的开发人员将带有某些特殊功能的代码封装成函数,这也叫内置函数;另一种是咱们在写代码的时候,自己定义的函数来实现某种功能,这也叫自定义函数。常见的内置函数:Input、print、eval、math…def 函数名(参数列表): # 函数名要符合定义标识符的规范// 函数体... // 函数的功能[return 返回值列表] // []内的内容可有可无。
2024-12-30 09:51:25
968
原创 Python面向对象三大特征
这个概念我们在上一小节中也已经学习过了,我们主要是去了解其在代码中是如何去实现的:通过有着类似 访问修饰限定符 功能的下划线来实现。根据上面的访问方式,我们可以推测出:被 protected、private 所修饰 方法与 属性只是在类中对应的名称发生了变化,而我们不知道,但是可以通过特殊手段知晓,从而继续访问。但是上面的方式不是很推荐,类似与 Java中的反射机制了,有点反常规。2、在1的基础上,通过 @property 装饰器 来修饰方法,使其变为属性,就变为访问与修改属性了,最终也会变的很简单。
2024-12-16 09:21:31
305
原创 CAP定理
*可用性(Availability,A):**系统能随时响应请求,哪怕返回的是不太准确的数据。**分区容错性(Partition Tolerance,P):**网络出问题时,系统还能继续提供服务。**一致性(Consistency,C):**所有节点看到的数据必须是一样的。这种场景更倾向于高可用性,牺牲一致性。**分区容错性(P):**网络断连时,Zookeeper 保证“少数服从多数”,继续维护一致性。这时候,系统会优先保障一致性,即便某些节点挂掉,整个服务变慢,也得保证数据“账账相符”。
2024-12-09 08:50:17
786
原创 OpenSSL信息泄露漏洞(CVE-2016-2183)修复方案
OpenSSL是OpenSSL团队的一个开源的能够实现安全套接层(SSLv2/v3)和安全传输层(TLSv1)协议的通用加密库。OpenSSL 的 TLS、SSH和IPSec协议和其它协议及产品中使用的DES和Triple DES密码算法存在信息泄露漏洞。TLS、SSH和IPSec协议以及其他协议和产品中使用的DES和3DES算法,约40亿个块存在生日冲突问题,这使得远程攻击者更容易通过针对长时间加密会话的生日攻击获取明文数据,在CBC模式下使用3DES的HTTPS会话,被称为“Sweet32”攻击。
2024-12-02 08:44:12
1185
原创 Frp与WireGuard
它由Jason Donenfeld等人用C语言编写,旨在解决困扰其他VPN协议(如IPSec/IKEv2、OpenVPN或L2TP)的问题,并提供高效、安全、易用的VPN连接体验。FRP(Fast Reverse Proxy)是一个使用Go语言开发的高性能的反向代理应用,它可以帮助用户轻松地进行内网穿透,对外网提供服务。frp和WireGuard是两种不同的工具,它们各自实现了不同的功能和协议。frp主要用于内网穿透和反向代理,而WireGuard则是一种VPN协议,用于建立安全的VPN连接。
2024-11-20 15:24:23
830
原创 视频对接rtsp协议学习
多媒体应用:在需要控制多媒体流的应用中,RTSP提供丰富的控制选项,方便用户操作,并且能够穿越NAT和防火墙3。流媒体服务器:如FFmpeg、GStreamer等开源项目,提供了对RTSP的支持,用于流媒体服务的控制和传输。- 兼容性:支持多个版本的RTSP,包括1.0和2.0,其中2.0是2016年发布的最新标准12。- 视频监控:网络摄像头通常支持RTSP协议,用于实时监控视频的传输和控制2。网络摄像头:大多数网络摄像头支持RTSP协议,用于实时监控视频的传输和控制。
2024-11-17 22:31:27
1015
原创 Kafka的架构学习
试想,一个消费者从当前 Leader(副本0) 读取并处理了 Message4,这个时候 Leader 挂掉了,选举了副本1为新的 Leader,这时候另一个消费者再去从新的 Leader 读取消息,发现这个消息其实并不存在,这就导致了数据不一致性问题。在众多的分区副本里面有一个副本是 Leader,其余的副本是 follower,所有的读写操作都是经过 Leader 进行的,同时 follower 会定期地去 leader 上的复制数据。AR=ISR+OSR。但是分区之间的消息是不保证有序的。
2024-11-10 22:31:46
1047
原创 浏览器 hash 和 history 路由
popstate 事件:当用户通过浏览器的前进或后退按钮导航时,或者通过 JavaScript 调用 history.back()、history.forward() 或 history.go() 方法时,会触发 popstate 事件。History 路由的主要优点是它提供了更加友好的 URL 格式,不再依赖于哈希值,并且可以实现更灵活的路由管理。这样,我们就可以通过 History API 实现基于 history 路由的页面导航,而不会引起页面的重新加载。// 更新页面内容的函数。
2024-11-04 09:44:31
963
原创 Spring Boot 的 自动配置
自动配置的核心在于 “约定优于配置”(Convention over Configuration),Spring Boot 会通过一定的默认规则,根据开发者的类路径、依赖项和环境判断需要装配哪些 Bean,并自动进行配置,减少手动编写配置文件和代码的复杂度。根据类路径中的依赖和配置自动注册常见的组件。Spring Boot 的 自动配置(Auto-configuration) 是指框架根据项目的依赖和应用程序的环境自动配置 Spring 应用上下文中的 Bean 和组件,目的是简化开发者的配置工作。
2024-10-28 08:59:17
517
原创 Apache Doris简介
Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后, 更名为 Doris ) ,在百度内部, 有超过 200 个产品线在使用, 部署机器超过 1000 台, 单一 业务最大可达到上百 TB。Apache Doris 是一个现代化的 MPP (Massively Parallel Processing,即大规模并行处理) 分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。
2024-10-21 08:43:32
725
原创 Java新特性
在Java 16以前,当我们使用instanceof来检查一个对象是否是某个类型的实例时,如果检查成功,还得显式地将这个对象转型为对应类型,然后才能调用这个类型的方法或访问它的字段。在这个例子中,我们首先检查obj对象是否是String类型的实例,然后将obj对象转型为String类型,并将结果赋值给str变量,最后调用str变量的length()方法。这个方法接收一个指定条件,它可以从一个有序的Stream中取出满足条件的所有元素,一旦遇到不满足条件的元素,就会停止处理后续元素。其实这个方法等价于!
2024-10-09 11:43:27
949
原创 Spring源码学习
Spring MVC 是 Spring 框架的核心组件之一,用于构建基于 Web 的应用程序。它实现了 Model-View-Controller(MVC)模式,使开发者可以方便地管理业务逻辑、视图和数据交互。以下是 Spring MVC 请求处理的主要流程及源码解析。Spring MVC 的核心流程通过 DispatcherServlet 调度请求,根据请求 URL 查找处理器,然后通过 HandlerAdapter 调用处理器执行业务逻辑,最终由 ViewResolver 解析视图并返回结果。
2024-09-29 17:54:26
887
原创 Docker与Kubernetes学习
Docker 是一个流行的容器化平台,允许开发人员在容器中创建、部署和运行应用程序。Docker 提供了一组工具和 API,使开发人员能够构建和管理容器化应用程序,包括 Docker Engine、Docker Hub 和 Docker Compose。Kubernetes 是一个开源容器编排平台,可自动执行容器化应用程序的部署、扩展和管理。Kubernetes 提供了一组 API 和工具,使开发人员能够跨多个主机和环境大规模部署和管理容器化应用程序。
2024-09-23 08:32:21
1095
原创 Nginx中return和rewrite的区别
rewrite用于修改请求 URI,并将请求重定向到另一个地址,通常用于URL重写或内部转发。rewrite:重写请求的 URI,并根据新的 URI 重新进行一次请求。如果只是简单的重定向需求,推荐使用 return,而如果需要更复杂的 URI 重写逻辑,则可以使用 rewrite。return 比 rewrite 更高效,因为它在 Nginx 的内部进行处理,不会引起额外的请求-响应往返。在Nginx中,return和rewrite都用于重定向请求,但还是有区别,写法也不一样。
2024-09-16 08:14:20
996
原创 分布式锁的实现与处理策略
分布式锁的实现涉及选择合适的技术和策略来解决锁的可靠性、宕机恢复以及锁过期问题。通过了解 Redis、Zookeeper 和 Etcd 等分布式锁实现的优缺点,结合具体业务场景,可以设计出高效、可靠的分布式锁机制。在实践中,合理配置锁的过期时间、实施心跳机制、设计重试逻辑和监控告警,将有效地应对分布式锁带来的挑战。
2024-08-26 07:53:13
900
原创 Mysql主从复制
MySQL数据库默认是支持主从复制的,不需要借助于其他的技术,我们只需要在数据库中简单的配置即可。MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的 二进制日志 功能。就是一台或多台MySQL数据库 从另一台MySQL数据库进行日志的复制,然后再解析日志并应用到自身,最终实现 从库 的数据和 主库 的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。
2024-08-05 08:11:06
607
原创 FFmpeg研究
FFmpeg的全称是“”,组件由命令行应用程序和函数库两部分组成。通俗概括来说,FFmpeg 是一个免费的开源程序库,一个多媒体音视频处理分析工具软件,且提供命令行方式调用,专门用来编辑处理各种音视频或图像。它的源码是由 C 语言编写的,基于 Linux 系统中开发,不过在其它操作系统中都可以运行,跨平台性良好。ffmpeg:功能强大的处理音视频文件的软件,可以实现音视频的录制、转码、剪辑、合成等功能。ffplay。
2024-07-29 08:01:40
1298
1
原创 linux防火墙
防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全。目前Linux系统的防火墙类型主要有两种:分别是iptables和firewalld。
2024-07-22 08:30:53
415
原创 linux编译安装命令详解
等这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。是源代码安装的第一步,用来检测安装平台的目标特征的。主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包。会检测是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile或者makefile(Linux区分大小写)中读取指令,然后编译。是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
2024-07-14 23:38:53
1228
原创 Spring的循环依赖
循环依赖是指两个或多个Bean相互依赖,形成一个闭环。Bean A依赖于Bean BBean B依赖于Bean A这种依赖关系就形成了一个循环,导致Spring容器在初始化Bean时无法确定哪个Bean应先创建。Spring循环依赖是一个复杂的问题,理解其工作原理和解决机制对于开发高质量的Spring应用程序至关重要。通过合理的设计和最佳实践,可以有效避免和解决循环依赖,确保应用程序的稳定性和可维护性。:缓存某个 beanName 对应的经过了完整生命周期的bean;
2024-07-08 00:07:43
619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人