- 博客(839)
- 收藏
- 关注
原创 docker使用及基础常用命令,保存起来当手册用,containerd常用命令
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。有些容器必须要以前台交互式模式运行,而有些容器不需要比如说redis、mysql,后台守护式运行之后,redis就会在容器中启动,并不会退出。attach 直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止。exec 是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止。
2023-04-07 17:40:19
1126
原创 Kubernetes(k8s)使用及操作文档
https://kubernetes.io/zh/docs/reference/kubectl/overview/https://kubernetes.io/zh/docs/reference/kubectl/overview/#%E8%B5%84%E6%BA%90%E7%B1%B B%E5%9E%8Bhttps://kubernetes.io/zh/docs/reference/kubectl/overview/#%E6%A0%BC%E5%BC%8F%E5%8C%9 6%E8%BE%93%E5%87%BA
2022-07-10 21:11:52
1795
原创 nginx安装与配置详解
目录一、安装Nginx:二、使用Nginx:简单与单台Tomcat整合三、详细使用(nginx就是去配置其文件而已),如下所示:一、安装Nginx:1 : wget下载: http://nginx.org/download/nginx-1.4.2.tar.gz2 : 进行安装: tar -zxvf nginx-1.6.2.tar.gz3 : 下载锁需要的依赖库文件: yum install pcre yum install pcre-dev...
2021-02-18 09:15:21
6715
12
原创 mysql常用操作汇总大全
1.本地登录MySQL命令://root是用户名,输入这条命令按回车键后系统会提示你输入密码2.指定端口号登录MySQL数据库将以上命令:mysql-uroot-p改为6即可,注意指定端口的字母P为大写,而标识密码的p为小写。MySQL默认端口号为33063.指定IP地址和端口号登录MySQL数据库命令格式为:mysql-hip-uroot-p-P3306例如:mysql-h127.0.0.1-uroot-p-P3306。
2020-12-17 17:33:47
2736
1
原创 elasticSearch之API:文本分词,分词器的使用(下)
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行—个匹配操作,默认的中文分词是将毎个字看成一个词,比如“我爱中国”会被分为"我"“爱”“中"国”,这显然是不符合要求的,所以我们需要安装中文分词器IK来解决这个问题。如果要使用中文,建议使用IK分词器!IK提供了两个分词算法: ik_smart和 ik_max_word,其中 ik_smart为最少切分,ik_max_word为最细粒度划分!
2026-01-26 14:13:22
145
原创 elasticSearch之API:文本分词,分词器的使用(上)
本文基于ES7.10版本(阿里云ES稳定版也是7.10版)。映射索引时,可以使用分析器映射参数为每个文本字段指定分析器。// 为索引中的某个字段,指定分词器"title": {分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行—个匹配操作,默认的中文分词是将毎个字看成一个词,比如“我爱狂神”会被分为"我"“爱”“狂"神”,这显然是不符合要求的,所以我们需要安装中文分词器IK来解决这个问题。
2026-01-22 18:16:21
641
2
原创 遗传算法:模拟生物自然选择和遗传变异的【随机搜索优化算法】详解
遗传算法(Genetic Algorithm,GA)是模拟生物自然选择和遗传变异的随机搜索优化算法,核心是通过 “优胜劣汰” 的迭代过程,从海量候选解中找到近似最优解。-- Jenetics遗传算法框架 --> < dependency > < groupId > io.jenetics </ groupId > < artifactId > jenetics </ artifactId > < version > 5.2.0 </ version > </ dependency >
2026-01-10 00:15:00
683
原创 FASTJSON库:阿里出品java界json解析库,使用与踩坑记录
是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库。与fastjson使用同一套API。fastjson v1版本已经被淘汰了,所以以后就直接用fastjson v2版本。
2026-01-07 02:15:00
651
原创 云原生 API 网关:apisix使用详解
Apache APISIX 是 Apache 软件基金会下的顶级项目。它是一个具有动态、实时、高性能等特点的云原生 API 网关。可以使用 APISIX 网关作为所有业务的流量入口,它提供了动态路由、动态上游、动态证书、A/B 测试、灰度发布(金丝雀发布)、蓝绿部署、限速、防攻击、收集指标、监控报警、可观测、服务治理等功能。Apache APISIX 作为云原生 API 网关,内置70 + 插件,覆盖认证授权、流量控制、安全防护、可观测性、请求转换、缓存、流量管理等核心场景。
2026-01-05 00:30:00
1352
原创 python实现离线文字转语音:pyttsx3 库
pyttsx3 是 Python 轻量级的离线文本转语音(TTS, Text-to-Speech) 库,区别于 gTTS(需要联网),它直接调用操作系统内置的语音引擎,无需网络即可实现文本转语音,响应速度快,且支持跨平台(Windows、macOS、Linux)。
2025-12-31 23:30:00
769
原创 python监听文件变化:Watchdog库
watchdog是 Python 生态中处理文件系统事件的主流库,跨平台(Windows/Linux/macOS)、效率高,支持监听文件 / 目录的创建、修改、删除、移动等事件,是工业级的解决方案。# 安装 pip install watchdog。
2025-12-31 23:15:00
924
原创 python实现语音识别:SpeechRecognition库
SpeechRecognition 是 Python 生态中最主流的语音识别第三方库,它封装了多个国内外主流语音识别引擎的接口,让你无需关注各引擎的底层实现(比如 API 签名、数据格式转换),只需调用简单的 Python API 就能快速实现 “语音转文字” 功能。你希望详细了解Python的SpeechRecognition库的功能、使用方法,并通过具体案例掌握它在不同场景下的应用,我会从库的基础介绍、核心概念,到不同使用场景的实战案例逐步讲解,让你既能理解原理,也能直接上手使用。引擎网络要求。
2025-12-31 22:45:00
1011
原创 python实现定时任务:schedule库、APScheduler库
适用场景:复杂时间规则的定时任务(如每天8点打卡、每周一18点统计数据、每月1号凌晨2点备份),是最常用的触发器。适用场景:需要在某个具体时间点执行一次的任务(如2025年1月1日0点执行新年祝福发送、定时执行一次数据备份)。(内存存储,重启丢失),也支持Redis/MongoDB/SQLAlchemy(数据库)等持久化存储。适用场景:动态管理任务(如临时暂停某个任务排查问题、不再需要的任务直接移除)。适用场景:调度器重启后任务不丢失(如服务重启后,定时任务自动恢复)。
2025-12-31 22:15:00
1620
原创 SkyWalking:开源分布式链路追踪神器,一文学透
SkyWalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。在 Spring Boot 项目中排查问题时,我们通常需要查看日志。但当请求量较大或者接口调用链路较长时,很难区分日志属于哪一次请求。MDC 是SLF4J提供的 线程级日志上下文存储。它内部通过保存上下文信息。当在某个线程里执行时,traceId 会存入当前线程的 ThreadLocal 中。
2025-12-30 16:55:34
1205
转载 JAVA25新特性:AOT优化启动性能
以前Java启动慢是出了名的,特别是云原生场景下,冷启动时间直接影响用户体验。一个Spring Boot应用启动要十几秒甚至几十秒,这在Kubernetes这种需要频繁启停容器的环境里,简直就是灾难。用户请求来了,容器还在启动,等半天才能响应,体验差得不行。后来发现大部分时间都花在类加载和链接上了,每次启动都要重新加载一遍类,解析字节码、验证类、准备类、解析符号引用,这些操作都要时间,特别是类多的时候,这时间就上去了。
2025-12-26 00:45:00
234
转载 JDK 25 新特性:结构化并发(JEP 505)简化多线程编程
结构化并发在JDK21引入,作为一个预览特性。本文案例是基于JDK25测试。如果有最新版idea直接引入JDK25即可,如果是用命令行编译执行,需要进行以下操作才能使用预览特性(默认不开启预览特性的使用)# 编译,指定版本25 javac --enable-preview --release 25 . \ StructuredConcurrencyExample.java # 执行,同样开启预览 java --enable-preview StructuredConcurrencyExample。
2025-12-26 00:30:00
150
原创 OpenResty+redis实现基于ip的代理层灰度发布
用户无论访问应用服务还是静态页,都要经过Nginx代理层,我们可以在Nginx这里做灰度发布,如下图:zhangsan、wangwu使用A应用zhaoliu使用B应用192.168.211.1/192.168.211.2 IP的用户使用A应用192.168.211.3 IP的用户使用B应用我们为了测试系统,通常把公司内部IP设置为测试IP,也就是使用灰度系统的IP,此时内部员工测试直接访问服务器即可,但是访问服务器又分为静态资源访问和动态服务访问,都有不同的实现策略。
2025-12-24 00:30:00
629
原创 Zookeeper原理与核心深入剖析
尽管拜占庭的“幽灵”很难处理,但在实际工作应用中, 却并不需要过分去考虑它,因为对于大多数系统来说,内部环境里,硬件故障导致消息错误的概率本身就很低,还要按照拜占庭叛徒的策略来处理故障就更为困难了。3.如果N大于该Acceptor已经响应过的所有请求的编号,那么它就会将它已经接受过(已经经 过第二阶段accept的提案)的编号最大的提案作为响应反馈给Proposer,如果还没有的accept提案的话返回{pok,null,null}空信息,同时该Acceptor承诺不再接受任何编号小于N的提案。
2025-12-23 00:15:00
2299
原创 MySQL空间函数详解,MySQL记录经纬度并进行计算
其余(POINT、LINESTRING 等)都是 GEOMETRY 的具体子类,用于存储不同形态的地理/几何信息(如单个点、线、区域、多个点集合等)。(如 POINT + LINESTRING + POLYGON),是最灵活的空间类型(但使用频率较低)。支持“孔洞”:可包含多个线串,第一个是外边界,后续是内边界(孔洞,如区域内的湖泊);点的顺序:外边界按“顺时针”或“逆时针”排列,内边界(孔洞)顺序相反(避免交叉)。,配合空间函数(如距离计算、范围判断)和空间索引,实现高效的地理/几何运算。
2025-11-30 00:15:00
1159
2
原创 MySQL聚合函数详解——让查询变得很简单
是一个用于将分组中的多个值连接成一个字符串的聚合函数。此查询将返回所有不同的产品类别,并将其格式化为以单引号包裹的字符串,适用于动态生成 IN 子句。例如,将一个订单中所有商品的名称连接成一个字符串,便于显示或进一步处理。可以将分组内的多个记录合并为一个字符串,方便展示。例如,列出每个部门的所有员工姓名。,可以将同一组内的多个值合并为一个由指定分隔符分隔的字符串,简化数据展示和分析。可以通过 SEPARATOR 子句自定义分隔符,以满足不同的需求。函数用于在分组查询中,将组内的多个值连接成一个字符串。
2025-11-27 23:30:00
1282
原创 Java操作视频大全(持续更新)
开源地址:https://github.com/bytedeco/javacv参考资料:https://blog.csdn.net/eguid_1/article/details/108010456
2025-11-27 00:30:00
292
原创 testng:Java界功能强大的单元测试框架
TestNG(Test Next Generation)是 Java 生态中功能强大、灵活度高的自动化测试框架,专为解决单元测试、集成测试、功能测试等全场景测试需求设计,弥补了 JUnit 早期版本的局限性(如缺乏分组、并行执行、灵活参数化等)。
2025-11-21 23:15:00
1813
原创 Java内存数据库:H2、mariaDb4j
H2数据库是一个开源的关系型数据库。H2是一个采用java语言编写的嵌入式数据库引擎,只是一个类库(即只有一个 jar 文件),可以直接嵌入到应用项目中,不受平台的限制。MariaDB4j 是一个 Java 项目,旨在提供一个无需安装和外部依赖的 MariaDB(MySQL 的兼容替代品)嵌入式解决方案。它允许开发者在 Java 应用中直接启动 MariaDB 数据库,非常适合用于集成测试、开发环境以及简单的应用程序包。
2025-11-21 00:30:00
997
原创 elasticSearch之java客户端详细使用:文档搜索API
通过脚本(Script)动态计算排序值,支持复杂的自定义排序逻辑(如多字段组合计算、条件判断等)。关键参数:脚本(Script):定义排序值的计算逻辑。排序类型(NUMBER(数值型)或STRING(字符串型),需与脚本返回值类型匹配。// 脚本逻辑:按 (price * 0.8 + score * 0.2) 计算排序值(数值型)
2025-11-11 23:30:00
1064
原创 elasticSearch之java客户端详细使用:文档按条件删除和修改API
Elasticsearch 中,scroll 是一种用于批量获取大量查询结果的机制(类似数据库的游标)。当查询结果集很大时(比如几十万、上百万条),一次性返回所有结果会占用大量资源,而 scroll 可以将结果分批返回:第一次查询时,ES 会创建一个查询结果的快照(snapshot) 并保留上下文(包含快照的引用、当前位置等信息),同时返回第一批结果和一个 scroll_id。后续通过这个 scroll_id 可以继续获取下一批结果,直到所有结果取完。
2025-11-11 00:30:00
1263
原创 elasticSearch之java客户端详细使用:文档通过ID操作基本API
对目标文档(由 routing 或文档 ID 定位到的主分片),随机选择该主分片或其所有副本分片之一执行查询,且会在多个请求间做「轮询负载均衡」,避免单个分片 / 节点过载。只有当集群中至少有这么多分片(主分片+副本分片)处于活跃状态时,才会执行写操作;,强制文档存储到 / 查询时定位到「唯一的主分片」—— 简单说,就是给文档分配一个 “分片定位标识”,让 ES 不用默认逻辑,而是按你指定的规则找主分片。只会在「主分片 3」和「它的副本分片」中找本地节点的分片,不会去其他主分片(如主分片 4)的节点。
2025-11-08 13:58:35
1264
原创 elasticSearch之API:建议器(suggest)
ES建议器本质是通过“预计算”或“实时相似度匹配”,在用户输入过程中(或输入后)提供优化建议,解决两大核心问题:输入效率:通过自动补全减少用户输入量(如搜索框实时联想)。输入准确性:通过拼写纠错修正用户的错误输入(如“appel”修正为“apple”)。所有建议器均通过ES的_searchAPI中的suggest字段触发,不影响主查询结果,仅返回建议内容。核心作用:针对“实时前缀补全”设计,比如搜索框输入“iph”时,实时返回“iphone”“iphone 15”等结果,速度极快(毫秒级)。
2025-10-28 19:39:01
1162
原创 elasticSearch之API:Ingest Pipeline & Painless Script
Pipeline ——管道会对通过的数据(文档),按照顺序进行加工Processor——Elasticsearch 对一些加工的行为进行了抽象包装Elasticsearch 有很多内置的Processors,也支持通过插件的方式,实现自己的Processor一些内置的ProcessorsSplit Processor : 将给定字段值分成一个数组Remove / Rename Processor :移除一个重命名字段Append : 为商品增加一个新的标签。
2025-10-28 15:57:38
991
原创 elasticSearch之API:索引操作
Lucene 实现的倒排索引,一旦生成后,就不允许修改如果希望改变字段类型,可以利用 reindex API,重建索引原因:如果修改了字段的数据类型,会导致已被索引的数据无法被搜索但是如果是增加新的字段,就不会有这样的影响。
2025-10-28 15:43:00
1491
转载 Elasticsearch 入门教程
目录一、安装二、基本概念2.1 Node 与 Cluster2.2 Index2.3 Document2.4 Type三、新建和删除 Index四、中文分词设置五、数据操作5.1 新增记录5.2 查看记录5.3 删除记录5.4 更新记录六、数据查询6.1 返回所有记录6.2 全文搜索6.3 逻辑运算七、参考链接全文搜索属于最常见的需求,开源的Elasticsearch(以下简称 Elastic)是目前全文搜索引擎的首选。它可..
2025-10-28 15:21:36
4398
原创 Elasticsearch并发更新冲突问题与解决
当多个线程并发更新同一文档时,第一个线程更新成功后版本会递增,后续线程的更新请求会发现版本不匹配(本地版本 < 服务器当前版本),从而抛出。服务器重试的是“更新操作”本身,若更新逻辑依赖客户端本地计算(如基于旧值累加),可能导致错误(因为服务器无法获取客户端的计算逻辑);,将更新逻辑(如累加、字段合并)放在服务器端脚本中执行,避免客户端“先查询再更新”的窗口期,从根源减少冲突概率。
2025-10-25 14:53:47
911
原创 ElasticSearch索引分片,一文讲透索引分片的好处与坑
集群是由多个节点(Node)组成的集合,这些节点通过相同的(默认)识别并加入同一集群。作用:存储海量数据(单节点容量有限,集群可通过增加节点扩展存储);提供高可用(单个节点故障,其他节点可接管服务);分担压力(查询请求可分散到多个节点处理)。核心角色:主节点(Master Node):负责集群元数据管理(如索引创建、分片分配),不处理数据读写(默认所有节点可竞选主节点,可通过配置限制);数据节点(Data Node):存储数据分片,处理数据读写请求;
2025-10-25 14:09:19
1031
原创 Spring配置文件处理工具类:PropertyPlaceholderHelper、PropertiesLoaderUtils、YamlPropertiesFactoryBean
专门用于解析字符串中的${key}风格占位符,支持默认值(如),是 Spring 处理配置占位符的底层工具。若需频繁解析大量字符串,建议复用 PropertyPlaceholderHelper 实例(其内部无状态,线程安全)。// 1. 自定义占位符为 #{...},默认值分隔符 :// 2. 准备值(不包含 city)// 3. 待替换的字符串(包含默认值)// 4. 执行替换(city 未定义,使用默认值 Beijing)
2025-10-25 00:30:00
882
原创 SpringAOP常用工具类:AopProxyUtils、AopContext、AopUtils
是一个核心工具类,主要用于简化 AOP 代理对象的相关操作(如判断代理类型、获取原始目标对象等)。它位于包下,提供了一系列静态方法,帮助开发者在处理代理对象时更便捷地获取底层信息。常用于:判断一个对象是否是 AOP 代理;区分代理类型(JDK 动态代理还是 CGLIB 代理);从代理对象中获取原始目标对象或目标类。AopUtils。
2025-10-24 01:00:00
1111
原创 Spring中常用的反射工具类:ReflectionUtils、ClassUtils、ResolvableType、MethodInvoker
是 Spring 框架中用于简化反射调用方法的工具类,它封装了方法调用的完整流程(包括方法查找、参数匹配、权限处理、异常转换等),避免开发者手动处理反射操作的繁琐细节(如Method对象获取、处理等)。通过查找方法(需处理方法不存在、参数不匹配等问题);调用突破访问权限(如私有方法);调用执行方法(需处理等受检异常)。对上述流程进行了封装,开发者只需配置目标类/对象、方法名、参数,即可通过简单的 API 完成调用,且将反射相关的受检异常转换为非受检异常子类),简化异常处理。
2025-10-24 00:30:00
1177
java==比较int值问题
2022-08-19
java覆写jar包代码不生效
2022-08-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅