目录指引
目录指引工具类git 版本回退操作 | 涯思构码·易思涯 git - rebase 和 merge | 涯思构码·易思涯 问题篇win 下 docker 遇到的问题 | 涯思构码·易思涯 Nacos 鉴权问题 | 涯思构码·易思涯 其他思考从加密到“一机一密”签名方案的改进与实践 | 涯思构码·易思涯 项目篇1 - ysyThread1-ysyThread-为什么需要动态线程池? | 涯思构码·易思涯 2-ysyThread-如何设计动态线程池? | 涯思构码·易思涯 3-ysyThread-core 模块设计-01 | 涯思构码·易思涯 4-ysyThread-starter 模块设计-01 | 涯思构码·易思涯 5-ysyThread-starter 模块设计-02 | 涯思构码·易思涯 6-ysyThread-通过 Nacos 实现参数配置(模板方法) | 涯思构码·易思涯 7-ysyThread-线程池参数的并发安全刷新 | 涯思构码·易思涯 8-ysyThread-阻塞队列容量热更新 | 涯思构码·易思涯 9-ysyThread-阈值触发告警规则 |...
ysyRAG - 为什么需要 AI 基础设施层
ysyRAG - 为什么需要 AI 基础设施层infra-ai 模块的定位infra-ai 是业务层和模型供应商之间的中间层 业务层只依赖 infra-ai 暴露的三个接口(LLMService、EmbeddingService、RerankService),完全不感知具体供应商。供应商是谁、优先级怎么排、挂了怎么切——这些全部由 infra-ai 内部处理 一些配置供应商配置providers 下面的每个条目定义了一个供应商的连接信息: url:供应商的基础 URL api-key:认证密钥(Ollama 不需要,所以没配) endpoints:按能力类型映射的端点路径 为什么要把端点路径放在配置里?因为不同供应商的端点路径不同 模型候选配置chat、embedding、rerank 三个模型组各自维护一个候选列表 字段 含义 示例 id 唯一标识,用于路由和日志 qwen-plus provider 关联到哪个供应商 bailian model 模型名称,传给供应商...
17-ysyThread-可视化管理服务
可视化管理服务动态线程池架构模式对比像动态线程池的架构,在现有市场上通常有两种实现方式: 一种是基于 配置中心,整体较为轻量,接入简单,但扩展性不足,个性化更新和功能拓展受限,所有操作都依赖配置中心 另一种是不依赖中间件而是 单独部署独立服务与业务交互,功能更丰富、可视化更友好,但需要 额外运维一套中间件,稳定性和运维成本相对更高 抽象 Nacos API 操作1. 核心方法设计NacosProxyClient 包含四个核心方法,可以参考 Nacos Open API 指南 listConfig方法 :查询命名空间下 配置文件集合 getConfig方法 :查询 配置明细信息 publishConfig方法 :发布配置 service方法 :查询 服务明细 2. 参数处理与命名空间隔离NacosProxyClient 在处理参数时,特别注意了命名空间的隔离问题。在 Nacos...
16-ysyThread-Banner 自定义规范
Banner 自定义规范为什么要打印 Banner?1. 品牌标识与框架认知Banner 就像是框架的”身份证”,它在应用启动的第一时间向开发者宣告:”我来了!” 2. 实用价值:版本管理与问题排查版本信息展示在生产环境中,快速确认框架版本对于问题排查至关重要,可以通过日志快速定位版本信息 启动状态确认Banner 的成功打印意味着框架的核心组件已经正确初始化 3. 社区建设与开源文化通过 Banner 展示项目地址和官网链接 Banner 组件设计与实现核心实现解析Banner 内容设计 patorjk.com 在线生成 Banner ps:为什么版本信息为空,下述会讲到 版本信息处理12345public OneThreadBannerHandler(BuildProperties buildProperties) { this.version = buildProperties != null ? buildProperties.getVersion() : "";}String bannerVersion =...
15-ysyThread-观察者模式重构配置动态刷新
观察者模式重构配置动态刷新如何在保持模块独立性的前提下,实现跨模块的高效通信?特别是在配置中心 Starter 需要通知 Web Starter 进行线程池参数更新时,传统的直接依赖方式会带来模块耦合、包体积膨胀等问题。为了解决这一挑战,引入了观察者模式 跨模块通信的设计挑战1. 模块架构概览12345678.└── starter # 动态线程池配置中心组件包,实现线程池结合Spring框架和配置中心动态刷新 ├── adapter # 动态线程池适配层,比如对接 Web 容器 Tomcat 线程池等 │ └── web-spring-boot-starter # Web 容器线程池组件库 ├── apollo-spring-boot-starter # Apollo 配置中心动态监控线程池组件库 ├── common-spring-boot-starter # 配置中心公共监听等逻辑抽象组件库 ├── dashboard-dev-spring-boot-starter # 控制台 API 组件库 └──...
14-ysyThread-回调函数方式防线程池任务丢失
回调函数方式防线程池任务丢失传统线程池关闭的痛点分析1. 任务丢失风险首先是时间竞争问题,JVM 关闭和任务执行之间存在时间竞争,任务可能来不及完成就被强制终止了。其次是资源浪费,已经投入的计算资源和业务逻辑处理可能前功尽弃。最严重的是数据一致性问题,对于涉及数据跑批等任务,强制中断可能导致数据不一致 2. 手动管理的复杂性在 Spring 应用中,正确管理线程池的生命周期 需要开发者手动处理: 123456789101112131415161718192021222324252627282930@Componentpublic class TaskService { private ThreadPoolExecutor executor; @PostConstruct public void init() { executor = new ThreadPoolExecutor( 5, 10, 60L, TimeUnit.SECONDS, new...






