- 博客(517)
- 收藏
- 关注
原创 docker远程debug
在 Docker 容器中启动 Java 程序时,需要添加 JVM 调试参数,jdk8以上版本:指定调试传输方式为套接字(Socket)。server=y:表示当前 Java 应用程序作为调试服务器,允许远程调试客户端连接。suspend=n:表示 Java 应用程序不会在启动时暂停等待调试器连接,而是直接启动运行。如果设置为suspend=y,则程序会在启动时暂停,直到调试器连接后才会继续运行。:指定调试端口为5005表示允许任何 IP 地址连接到该端口(如果仅允许本地,用。
2025-03-25 09:37:05
430
原创 windows创建开机启动任务
一个java应用程序,需要做成开机启动,系统为windows系统。创建一个.bat文件(例如),并将其保存到 Java 应用程序的目录中(如其中,是 Java 应用程序的路径,是 Java 应用程序的可执行文件。打开“任务计划程序”,选择“创建任务”。在“常规”选项卡中输入任务名称和描述。在“触发器”选项卡中选择“新建”,设置任务在系统启动时运行。在“操作”选项卡中选择“新建”,输入以下信息:操作:启动程序启动参数:(留空)。点击“确定”保存任务计划。
2025-03-18 17:41:19
345
原创 上、下游通信模式
在这种情况下,上游(A、C、D等)可以通过代理类来调用下游(B)的接口,同时可以在代理类中添加额外的逻辑(如日志、缓存、重试等)。在这种情况下,上游(A、C、D等)可以通过适配器将自己的数据格式或接口转换为下游(B)定义的接口格式。有一个业务,有多个产品A、B、C、D,相互独立,A、C、D是上游,B是下游(A、B、D需要向B传输数据)。上游实现一个适配器类,将自身的接口转换为下游的接口。适配器类实现下游定义的接口,并在内部调用上游的逻辑。上游需要调用下游的接口,但希望添加额外的控制逻辑。
2025-03-13 14:29:38
650
原创 java应用终止进程方式
优先选择优雅退出:通过关闭钩子、标志位或线程中断等方式,确保资源释放和数据一致性。kill -15和 Kubernetes 滚动更新都支持优雅关闭,但超时后会强制终止。避免强制终止:除非进程无法响应,否则尽量避免使用强制终止方法。kill -9是最后的手段,可能会导致资源泄漏或数据不一致。结合实际场景:根据应用类型(如 Spring Boot、守护进程等),选择最适合的终止方式。kill -9和kill -15适用于操作系统级别的进程管理。适用于 Spring Boot 应用。适用于 Docker 容器。
2025-03-06 17:58:29
536
原创 linux查看端口通信检测
telnet是一个简单的网络工具,可以用来测试端口是否开放。示例如果端口通畅,你会看到类似以下的输出如果端口不通,你会看到类似以下的输出。
2025-03-06 14:33:26
187
原创 nginx源码安装
来配置Nginx的编译选项。这些依赖关系确保Nginx在依赖的服务启动之后再启动,避免因依赖服务未就绪而导致启动失败。表示Nginx会在启动时创建一个子进程,而主进程会退出。这是Nginx的典型启动方式。:这里简单描述了这个服务是“Nginx HTTP和反向代理服务器”,用于在。命令,用于重新加载Nginx的配置文件而不中断现有连接。:指定该服务在哪个运行级别(target)下被启动。:指定该服务在哪些目标(target)之后启动。:表示在DNS解析服务可用之后启动。这部分定义了服务的安装和启动目标。
2025-03-03 15:40:09
974
原创 大模型中的token
Token 是一种将文本分割成更小单元的方式。在自然语言处理(NLP)中,Token 通常可以是一个单词、一个标点符号、一个数字,甚至是一个子词(sub-word)。例如,对于句子 “Hello, world!”,它可以被分割成以下 Token:在一些模型(如基于 BERT 的模型)中,单词可能会被进一步分割成更小的子词单元,例如 “playing” 可能被分割成。
2025-02-22 17:18:50
1126
原创 跨域问题处理
跨域问题(Cross-Origin Resource Sharing,CORS)是Web开发中常见的安全机制问题,通常发生在浏览器中。当浏览器尝试从一个域名(源)向另一个域名(源)发起请求时,如果目标服务器没有明确允许跨域请求,浏览器会阻止该请求,从而导致跨域错误。浏览器遵循,即默认情况下,浏览器只允许页面从同一个源(协议、域名、端口)加载资源。如果协议、域名或端口不同,则被认为是跨域请求。和是同源。和(协议不同)。和(域名不同)。和(端口不同)。使用GETPOST或HEAD方法。请求头仅限于。
2025-02-22 15:32:31
402
原创 jdk21虚拟线程
在 JDK 21 中,虚拟线程(Virtual Threads)已经成为正式特性,通过的方法可以创建虚拟线程。以下是使用虚拟线程的简单示例代码,展示如何在 JDK 21 中使用虚拟线程来执行并发任务。
2025-02-21 16:09:29
284
原创 flyway的ignoreMigrationPatterns
ignoreMigrationPatterns 是 Flyway 中的一个配置选项,用于指定在迁移过程中可以忽略的迁移脚本的模式。这个选项通常用于在特定情况下跳过某些迁移脚本的执行,例如在开发环境中跳过某些测试数据脚本,或者在特定条件下忽略某些已经不再需要的迁移。Flyway 6.0.0 引入了,取代了。提供了更灵活的模式匹配功能,支持忽略多种类型的迁移脚本。如果你使用的是 Flyway 6.0.0 或更高版本,建议使用来替代。
2025-02-20 23:12:08
952
原创 RAG 架构
RAG(Retrieval-Augmented Generation)架构,即检索增强生成架构,是一种将信息检索与语言生成相结合的技术架构。RAG 架构旨在通过在语言生成过程中引入外部知识检索机制,来增强语言模型的性能和生成质量。它允许模型在生成文本时,能够动态地从大规模的知识数据库中检索相关信息,并将这些信息整合到生成的内容中,从而使生成的文本更加准确、丰富和有针对性。
2025-02-13 10:55:48
520
原创 AI知识库和全文检索的区别
全文检索是一种基于关键词匹配的信息检索技术,主要用于快速查找包含特定关键词的文档或文本片段。根据具体需求,可以选择单独使用其中一种技术,或将两者结合,构建更强大的信息检索系统。:更适合需要语义理解、推理和生成的场景,能够提供智能化的交互体验。:更适合需要快速查找和匹配关键词的场景,处理海量数据的效率更高。:AI知识库可以处理多种类型的数据,提供更丰富的交互体验。:通过倒排索引等技术,快速查找包含关键词的文档。:根据用户的历史交互数据,提供个性化的回答。:能够结合上下文信息,提供更准确的答案。
2025-02-08 10:53:37
5101
3
原创 selenium定位网页元素
id:最高效,适用于唯一标识。linkText和:适用于超链接。name:适用于表单元素。tagName:适用于获取一组元素。xpath:最灵活,适用于复杂定位。className:适用于具有唯一类名的元素。:性能好,适用于复杂选择器。在实际使用中,可以根据元素的特点和页面结构选择最适合的定位方法。
2025-01-24 17:27:00
1487
原创 HBuilder本地打包
可从Oracle官方下载jre安装包:https://www.oracle.com/java/technologies/downloads/#java8。下面以Windows平台,jre安装目录为“C:\ProgramFiles\Java\jre1.8.0_201”为例,实际操作时请修改为自己安装目录。Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。以上命令运行完成后就会生成证书,路径为“D:\test.keystore”。
2025-01-19 11:05:10
1040
原创 linux删除用户
如果用户当前已登录或该账户下正在运行进程,选项,可以同时删除用户的主目录,命令为。如果不加任何选项,只会从。终止所有用户进程,或者使用。命令删除用户账号,格式为。文件中删除账户详细信息。然后就可以删除用户了。下面是删除失败的情况。
2025-01-11 16:16:13
706
原创 数据权限和角色权限区别
在实际应用中,这两种权限控制策略往往是结合使用的。例如,一个系统可能首先使用角色权限来分配用户可以访问的模块或功能,然后使用数据权限来进一步控制用户在这些模块或功能中可以访问的具体数据。这样可以既保持权限管理的灵活性,又确保数据的安全性。
2024-12-28 11:37:46
470
原创 使用Maven打包javaagent.jar
是 Java1.5 之后引入的新特性,其主要作用是在class被加载之前对其拦截,以插入我们的字节码。java1.5 之前使用的是JVMTI(jvm tool interface)技术来实现对class的拦截,不过这个是用 C++ 编写的,比如 debug 功能就是用这个技术实现的。
2024-12-17 15:40:18
693
原创 linux查看应用程序执行时间
:是查看进程状态的命令。 :是和参数的组合,表示显示所有进程,后面跟的是自定义输出格式。 :表示进程ID。 :表示命令名,即程序名。 :表示进程的开始时间。 :表示自进程开始以来经过的时间。 参数来获取完整的命令行参数 :命令用于过滤结果,参数表示忽略大小写,是我们过滤的关键词,用来匹配所有包含的行。示例月份对应英文简写
2024-12-06 18:11:35
323
原创 mybatis plus打印sql日志
首先,我们需要创建一个实现了接口的类,该类会将所有原本打算以DEBUG级别记录的日志改为以INFO级别记录。
2024-12-06 15:07:43
2181
原创 数据治理和数据处理区别
数据处理:关注于具体的技术操作,如数据的收集、清洗、转换、整合和分析,以支持业务需求。数据治理:关注于建立和维护数据管理的框架,确保数据的质量、安全性和合规性,支持组织的长期发展。通过这个例子,可以看出数据处理和数据治理虽然关注点不同,但都是确保数据有效利用和安全管理的重要组成部分。
2024-11-27 16:40:48
696
原创 centos为用户赋予sudo权限
权限是一个敏感操作,因为它允许用户执行具有系统管理员权限的命令。确保你了解这个操作的潜在风险,并只授予信任的用户。会检查语法错误,防止因配置错误导致的问题。可以在所有主机上作为所有用户执行所有命令。: 保存文件并退出编辑器。执行一个命令来测试权限是否已经正确设置。(CentOS 8及以上)来安装它。如果一切设置正确,你应该能够看到。在CentOS系统中,要为用户。(CentOS 7及以下)或。: 如果系统中没有安装。: 位置在/etc/
2024-11-21 10:54:42
1139
原创 gitlab角色、权限
请注意,这些权限可能会根据GitLab的具体版本和配置有所不同。管理员还可以自定义项目级别的权限,以适应特定的组织需求。此外,GitLab还提供了更细粒度的权限控制,例如对特定分支的保护和对CI/CD管道的访问控制。GitLab是一个基于Web的Git仓库管理工具,它提供了一套完整的角色和权限管理机制,以控制用户对项目和仓库的访问和操作权限。
2024-11-11 14:00:08
1116
原创 本地缓存和分布式缓存
本地缓存适合于单实例应用或者对性能要求极高且数据量不大的场景,而分布式缓存适合于需要跨多个实例共享数据、数据量大、对数据一致性和可用性有较高要求的场景。选择哪种缓存策略,需要根据具体的业务需求、系统架构和性能要求来决定。
2024-11-10 17:11:06
427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人