- 博客(81)
- 收藏
- 关注
原创 如何为服务自定义链路追踪(traceID)
链路追踪是一种追踪,监控服务请求的技术概称。主要是为了帮助开发者了解一个请求在服务间的流转路径,执行时间,延迟以及问题追踪定位。特点:可视化请求流:展示一个请求的完整调用路径。性能分析:识别请求在哪个环节出现延迟,优化系统性能。问题排查:快速定位错误发生的位置,提高故障恢复效率。调用关系分析:帮助理解微服务之间的依赖关系。链路追踪的工作流程请求进入系统:用户发起 HTTP 请求,链路追踪系统生成一个Trace ID。请求传播Trace ID。
2025-03-15 15:27:12
611
原创 如何为服务设置合理的线程数
在使用线程池管理线程的过程中,如何设置核心线程数、最大线程数、队列类型和拒绝策略这些都会影响实际能创建的线程数量。比如,每个请求处理时间短的话,线程可以快速回收,但处理时间长的话,线程会长时间占用资源,导致需要更多线程。一般来说,CPU密集型任务的最佳线程数是核心数加一,而IO密集型任务可能需要更多线程,因为线程在等待IO时会阻塞,可以充分利用CPU。比如,每个线程都需要一定的栈内存,默认情况下Java线程的栈大小是1MB(64位系统可能更大),所以如果内存不足,创建太多线程会导致OOM错误。
2025-03-10 23:05:05
465
原创 线程的生命周期与线程池的生命周期(示例代码感受整个生命周期)
线程是进程中的一个执行单元,是 CPU 调度的基本单位,一个进程可以包含多个线程,它们共享该进程的资源。进程是程序在操作系统中的一个执行实例,是操作系统进行资源分配和调度的基本单位。特点每个进程都有自己独立的地址空间、数据、代码、文件等资源,进程之间相互独立。不同进程之间不能直接访问彼此的内存,需要通过 管道(Pipe)、消息队列(Message Queue)、共享内存(Shared Memory)、Socket 等 方式进行通信。// 当前持有锁的线程// 锁状态while (!
2025-03-10 22:39:55
655
原创 异或的用法(神奇)
给定一个整数数组,所有数字都出现两次,只有一个数字出现一次,找出这个唯一的数字。异或(XOR,Exclusive OR)是一种逻辑运算和按位运算。的数组中,缺失一个数。的完整序列,结果即为缺失数。假设发送方发送了一组数据。解法:异或所有元素和。
2025-03-06 23:10:33
184
原创 浅聊一下日本的开发与国内开发
博主在国内工作了几年,觉得技术学的用的也差不多了,加上会点日语,就想着去东京看看小日本这边it行情如何,大概是什么样的。就这篇文章,想简单说说感想吧,给一些准备来日本干开发或者对这方面感兴趣的人一点直白话。
2025-02-13 11:47:35
261
原创 过滤器(Filter) vs. 拦截器(Interceptor)
请求到达 -> Filter (前) -> Interceptor (前) -> Controller -> Interceptor (后) -> Filter (后) -> 响应返回。,执行一些额外的操作,比如权限校验、日志记录等。它们的作用相似,但底层实现和适用场景有所不同。在 Spring MVC 或 Java Web 开发中,定义一个拦截器,一个过滤器。简单测试看看执行顺序。
2025-02-12 14:57:44
154
原创 Theadlocal之InheritableThreadLocal
底层是一个ThreadLocalMap对象(这个也是线程独有的),里面维护着一个个Entry,Entry的键是 ThreadLocal 实例的引用,而值是存储在 ThreadLocal 中的数据。如果只在当前线程中使用threadlocal,本身没有什么问题,但是如果你开启了子线程,这个时候再想去获取你存放的值,就获取不到了。当前线程启动线程池去执行任务时,线程池是无法获取到已存的ThreadLocal对象的。他们都属于线程自带的属性,是ThreadLocalMap,实际存储的对象。
2025-02-11 21:27:51
326
原创 来看一下对userBean的使用升级点
正常,我们在系统中会使用过滤器(Filter)或者拦截器(Interceptor)来处理用户的token,缓存用户的信息,方便后续继续使用。简单 说一下拦截器与过滤器首先是归属不同,过滤器属于Servlet规范,拦截器属于Spring框架。然后是作用范围,过滤器处理所有Web资源,拦截器只处理Spring MVC的Controller。触发时机的话,过滤器在Servlet之前,拦截器在进入Controller前后。然后是实现方式,过滤器用回调函数实现,拦截器用反射机制实现。
2025-02-11 17:15:26
1061
原创 避开Arrays.asList使用的坑
注:测试Arrays.asList的坑。学习内容来自图灵--徐庶。针对这一现象,只需要将int转为封装类型即可。
2025-02-09 15:12:51
459
原创 从0开始,来看看怎么去linux排查Java程序故障
从上面可以看出fullGC的次数才3次,且回收时间不大,说明内存情况很健康。编写一个简单的让程序不断创建新对象,然后GC在不停地回收,但是又回收不掉地样例。export JAVA_HOME=/usr/local/java/jdk-17.0.2 # 替换为实际解压路径。nano ~/.bashrc # 或 ~/.bash_profile、~/.zshrc(根据Shell类型)观察GC回收状况,从上面命令可以看出内存资源并不紧张,所以这里只做展示。# 当前系统的实时数据面板,按 ctrl+c 退出。
2025-01-31 20:12:16
1311
原创 Python图形界面 GUI -- tkinter(含简单windows桌面项目)
是 Python 的标准图形用户界面(GUI)工具包,用于创建桌面应用程序。它是 Python 标准库的一部分,无需单独安装即可使用。Tkinter 是基于 Tcl/Tk 的一个封装,具有简单易用的特点,是开发 GUI 程序的一个非常流行的选择。
2025-01-22 13:50:56
2026
原创 接上回--综合AIDemo测试
上回外挂了知识库之后,我们需要使用知识库中的信息,让AI为我们实际处理业务上的需求。这里我们让AI扮演公司的人事助手,帮我们处理员工请假的业务。具体流程如下感知用户需要请假提取用户请假信息获取用户数据库中的信息根据用户角色判断请假时长是否符合公司要求(或者是否需要推送给上级审批)不符合返回理由,符合返回确认信息用户确认后往数据库中写入请假信息在获取请假信息这块上,如果我们手动去提取用户的msg,那么会有很大的可能会提取失败,所以这块尽可能让ai从我们的对话上下文去提取所需要的信息。
2025-01-19 15:41:30
594
原创 接上回,AI外挂知识库
这里使用最方便扩展的文本格式txt文档,作为外扩知识库的来源。扩展方向有很多如使用服务器硬盘存储,云端文件存储,数据库DB存储等等。
2025-01-15 20:44:34
295
原创 SpringAi整合免费大模型(NVIDIA)
接上回,发布了springAI整合本地大模型之后,我们来看看怎么去利用别人已经训练好的大模型。同样这里只做一些最基本的调用构造讲解,如果对深入使用比较感兴趣的,请阅读本文最后的Demo讲解。
2024-11-30 14:53:17
1212
原创 响应式网页设计--html
<title>使用 main 标签示例</title><a href="#">首页</a></li><li><a href="#">关于我们</a>
2024-11-10 16:58:16
1566
原创 Windows脚本--指定文件集复制到指定目录
enabledelayedexpansion:启用延迟变量扩展,允许在同一行中使用变量的值,而不需要在变量赋值之后立即获取。echo off:这个命令用于关闭命令的回显,意味着在执行脚本时,后续的命令不会显示在命令行窗口中。将文件后缀改为.bat,并准备一个modified_files.txt文件,放置所有需要迁移文件的绝对路径,然后点击执行即可。通常,命令行会显示正在执行的命令,使用 @ 可以隐藏这一输出。@echo off 的组合效果是,当脚本运行时,不会显示任何命令,只有输出结果会被显示。
2024-11-03 16:14:23
1324
2
原创 初识字节码文件--Java
这个常量在运行时会被视为一个对象,虽然它是一个字符串字面量,但在常量池中会被视为一个。:将操作数栈顶部的值(“你好”)存储到局部变量表的索引1处。:将操作数栈顶部的值(“你好”)存储到局部变量表的索引3处。将常量池中索引为7的字符串“你好”加载到操作数栈中。:再次将常量池中的字符串“你好”加载到操作数栈中。:再次将常量池中的字符串“你好”加载到操作数栈中。在这里,它加载字符串常量。类的构造函数,传入之前加载的字符串“你好”。对象的引用),以便后续调用构造函数时使用。对象引用存储到局部变量表的索引2处。
2024-10-30 22:43:37
435
原创 一句话一个点(Java)--会追加补充
是 Java 中基于红黑树实现的集合类,它能够自动对元素进行排序,因此插入。的元素会按照自然顺序(对于字符串来说就是字典顺序)进行排序。是一个字符类(character class),用于匹配。在字符类外面时,表示字符串的开头(anchor),即匹配。能保证元素按照字典顺序排序。字符(既不是小写字母。
2024-10-29 20:13:59
263
原创 数据结构与算法基础篇--有向无环
力扣-207题要判定一个图是否为有向无环图(DAG, Directed Acyclic Graph),可以使用拓扑排序(Topological Sort)的方法。如果一个有向图存在拓扑排序,那么它就是一个DAG。
2024-08-09 21:25:16
357
原创 Redis缓存在项目中的使用升级
对于redis在项目中的使用与介绍这里就不展开描述,与进行基本的代码构造了。这里针对redis的代码使用进行介绍。
2024-08-09 15:25:09
1026
原创 spring的三级缓存与源码分析--解决循环依赖
一级缓存(内存中的 singletonObjects)二级缓存(earlySingletonObjects)三级缓存(singletonFactories)
2024-08-01 21:56:10
1101
原创 数据结构与算法基础篇--栈
栈(Stack)是一种重要的数据结构,它遵循“先进后出”(LIFO, Last In, First Out)的原则。栈是一种抽象数据类型,意味着它定义了数据的操作而不具体指定如何实现。栈可以通过不同的数据结构来实现,例如数组或链表。
2024-07-27 20:20:31
712
原创 java--jvm虚拟机(都是要点)
请带着以下问题,学习并理解jvm问题一: 为什么fullGC会对系统性能有影响?youngGC却几乎没有?问题二: outofmemory是什么异常?什么时候会出现?如何处理?问题三: 线程安全和不安全在jvm内存模型中是如何表现的?问题四: 提升fullGC回收的速度的方法有哪些?问题五: 为什么频繁fullGC常伴随CPU的满负荷
2024-07-27 19:59:23
982
1
原创 SpringBoot使用Redis(事务异步add + 更新)
Redis(Remote Dictionary Server)是一个开源的内存中数据结构存储系统。内存存储: Redis 主要将数据存储在内存中,因此读写速度非常快,适合需要高性能的应用场景。持久化: Redis 支持将内存中的数据持久化到磁盘,可以通过RDB快照(Snapshotting)或者日志(Append-only file, AOF)的方式实现数据持久化,保证数据在服务重启后不丢失。数据结构多样性。
2024-07-15 19:51:13
1055
原创 SpringBoot之健康监控(Actuator)
这是 Spring Boot 提供的一个扩展模块,用于监控和管理应用程序的生产环境。它通过 HTTP 端点暴露了大量的监控和管理功能,使得开发者可以在运行时查看应用程序的运行状况、配置信息、性能指标等。主要功能:健康检查端点提供应用程序的健康状态。它可以告诉你应用程序是否正常运行,并且可以根据健康检查的结果进行适当的响应。信息端点端点提供应用程序的自定义信息。开发者可以在这里配置任意的信息,比如版本号、描述等。环境信息端点提供应用程序的环境属性信息。这包括配置属性、系统属性、环境变量等
2024-07-15 19:09:29
958
原创 java多线程操作之CAS
CAS(Compare-And-Swap) 比较并交换,用于实现同步和锁机制。经常配合juc中Atomic相关类进行。
2024-07-14 11:36:43
1148
原创 threadLocal详细认识(使用场景与局限性)与样例测试
它是 Java 标准库中的一部分,提供了线程局部存储的功能,这意味着每个线程都有自己独立的变量副本,这些副本在其他线程中不可见。每个请求由独立的线程处理,这意味着后端的每个 HTTP 请求都会在一个新的线程中处理。这些请求都是由不同的线程处理的,所以每个请求中的 ThreadLocal 数据是独立的。线程隔离: 在前后端分离的架构中,每次前端发起一个请求,后端会在一个新的线程中处理这个请求。ThreadLocal 可以避免使用复杂的同步机制,因为每个线程有自己的变量副本,不需要考虑线程安全的问题。
2024-07-11 20:34:21
1218
原创 数据结构与算法基础篇--二分查找
在计算机科学和算法设计中,二分法是一种经典且强大的技术。它不仅仅是一种算法,更是一种思维方式,能够高效地解决各种问题。无论是在查找有序数据中的元素,还是在优化问题的搜索过程中,二分法都展现出了它的独特魅力和广泛应用。
2024-07-10 22:16:31
360
原创 Mysql explain语句详解与实例展示
explain 语句相信大家都不陌生,作为查看执行计划的语句。explain在sql优化分析中会经常会用到。这里值得注意的是:explain并没有真正执行语句,只是展示执行计划。可以看到哪些信息?表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引实际被使用表之间的引用每张表有多少行被优化器查询EXPLAIN SELECT select具体语句如:列名描述补充id每个SELECT关键字都对应一个idSELECT关键字对应的查询类型table表名partitions。
2024-07-07 16:36:02
836
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人