Java性能指标P90 P95 P99详解与实现
在高并发系统中,平均响应时间往往不能真实反映用户体验。P90、P95、P99等百分位数指标能够更准确地评估系统性能表现。本文将深入探讨这些性能指标的定义、计算方法,并提供完整的Java实现方案。 🎯 什么是百分位数?百分位数(Percentile)是统计学中的概念,表示在数据集中有多少比例的数据小于或等于该值。 基本概念 P50(中位数): 50%的请求响应时间小于该值 P90: 90%的请求响应时间小于该值 P95: 95%的请求响应时间小于该值 P99: 99%的请求响应时间小于该值 P999: 99.9%的请求响应时间小于该值 为什么需要百分位数?1234567// 平均响应时间 vs 百分位数对比List<Long> responseTimes = Arrays.asList( 10L, 12L, 15L, 18L, 20L, 25L, 1000L, 2000L, 5000L);// 平均值:约700ms(看起来还不错)// 但P95是5000ms,说明95%的用户体验很差! 📊 性能指标详解P90(90th Percentile)定义: 数...
向量数据库搭建与主流产品对比
向量数据库是现代AI应用的核心基础设施,它不仅解决了传统数据库在高维向量检索上的性能瓶颈,还为大模型应用提供了高效的外部知识库支持。本文将深入剖析向量数据库的技术原理,通过Java代码示例展示实际应用,并详细对比主流产品的技术特点和使用场景。 🎯 向量数据库技术深度剖析向量数据库的本质与价值向量数据库是一种专门为高维向量数据设计的新型数据库系统,它解决了传统关系型数据库在处理向量相似度检索时的根本性问题: 传统数据库的局限性12345-- 传统SQL查询:无法高效计算向量相似度SELECT * FROM documentsWHERE cosine_similarity(embedding, query_vector) > 0.8ORDER BY cosine_similarity(embedding, query_vector) DESCLIMIT 10; 问题: ❌ 性能瓶颈:高维向量相似度计算复杂度O(n²) ❌ 索引失效:传统B-Tree索引不支持向量距离计算 ❌ 扩展性差:无法处理海量向量化数据 向量数据库的核心优势12// 向量数据库查询:毫秒级响应,...
Java异常日志MCP服务架构
在微服务架构中,异常日志不仅是问题排查的重要线索,更是AI辅助诊断的宝贵数据源。本文将详细介绍如何构建完整的Java异常日志捕获、存储和MCP服务架构,让大模型能够智能分析和处理异常信息。 🎯 架构概览系统架构图12345[Java应用] → [异常捕获] → [日志结构化] → [MongoDB存储] ↓ ↓ ↓ ↓[业务逻辑] → [AOP拦截] → [日志模型] → [索引优化] ↓ ↓ ↓ ↓[监控告警] → [实时分析] → [MCP服务] → [大模型调用] 核心组件说明📋 技术栈选型核心技术栈 Spring Boot 2.7+: 微服务框架 MongoDB 5.0+: 文档型数据库 Spring AOP: 异常拦截 MCP (Model Context Protocol): 大模型服务协议 Jackson: JSON序列化 SLF4J + Logback: 日志框架 依赖版本123...
Java高德地图MCP定制旅游路线
使用Java集成高德地图MCP服务,打造智能化的定制旅游路线规划系统。本文将带你从零开始,掌握高德地图Java SDK的使用技巧,实现完整的旅游路线规划功能。 高德地图MCP简介高德地图MCP(Maps Content Platform)是高德地图提供的一套开放平台服务,开发者可以通过API调用获取丰富的地图数据和地理信息服务。高德地图Java SDK提供了完整的Java封装,让Java开发者能够轻松集成高德地图的各项功能。 为什么选择高德地图MCP? 数据丰富准确:中国最权威的地图数据提供商 服务稳定可靠:企业级SLA保证,服务可用性99.9% 功能全面:覆盖路径规划、地理编码、POI搜索等全方位服务 Java SDK完善:官方维护的Java SDK,更新及时 成本可控:按需付费,适合各种规模应用 合规安全:符合中国法律法规,支持数据加密传输 核心功能详解1. POI搜索(兴趣点搜索)POI(Point of Interest)搜索是地图应用的基础功能,用于查找附近的景点、餐厅、酒店等。 123456789101112131415161718192021222324252...
Spring AI打造自己的LLM应用
Spring AI是Spring官方推出的AI框架,为Java开发者提供了原生的AI开发体验。本文将带你从零开始,掌握Spring AI的核心概念和Spring Boot集成技巧,打造属于自己的AI应用。 Spring AI简介Spring AI是Spring官方推出的AI框架,专门为Java和Spring开发者设计,提供了一套简洁、直观且符合Spring生态的AI开发API。它集成了多种主流的AI模型和服务,让开发者能够轻松构建AI驱动的应用。 为什么选择Spring AI? Spring生态完美集成:无缝集成Spring Boot、Spring Cloud等 官方维护:Spring官方项目,质量保证 简洁的API:直观的编程模型,学习成本低 企业级支持:完整的生产环境特性支持 多模型支持:支持OpenAI、Azure OpenAI、Ollama等多种模型 工具集成:内置丰富的工具和增强器 社区活跃:Spring社区强大的支持 核心组件详解1. ChatClient(聊天客户端)ChatClient是Spring AI的核心组件,提供简洁的聊天交互API。 1234567...
LangChain4j打造自己的LLM应用
LangChain4j是Java生态中强大的框架,帮助开发者快速构建基于大语言模型的应用。本文将带你从零开始,掌握LangChain4j的核心概念和Spring Boot集成技巧,打造属于自己的AI应用。 LangChain4j简介LangChain4j是一个开源框架,专门为Java开发者设计,用于开发基于大语言模型的应用程序。它提供了一套完整的工具链,包括模型集成、提示工程、链式调用、记忆管理、代理系统等核心组件,并与Spring Boot等Java生态完美集成。 为什么选择LangChain4j? Java原生支持:专为Java生态设计,与Spring Boot完美集成 类型安全:利用Java的类型系统,提供更好的开发体验 简化开发流程:提供标准化组件,减少重复代码 模型无关性:支持多种LLM,如OpenAI、Anthropic、Hugging Face等 可扩展性:模块化设计,易于定制和扩展 生产就绪:内置错误处理、日志记录等企业级功能 社区活跃:拥有完善的文档和活跃的开源社区 核心组件详解1. Models(模型)LangChain4j支持多种类型的模型,包括大语言...
Web3从入门到精通:区块链互联网的未来
Web3正在重塑互联网的未来。本文将带你深入理解Web3的核心概念、技术架构、应用场景和发展挑战,让你全面掌握这个区块链驱动的新一代互联网。 Web3简介:互联网的新纪元Web3代表着互联网发展的第三个阶段,它建立在区块链技术之上,致力于创建一个更加开放、透明和去中心化的网络世界。与传统的Web2(以社交媒体和移动应用为代表)不同,Web3强调用户主权、数据所有权和价值互联网。 Web3的演进历程互联网的发展可以分为三个主要阶段: Web1.0 (1990s-2000s):只读互联网 静态网页单向信息传递以内容消费为主2. Web2.0 (2000s-2020s):读写互联网 社交媒体平台用户生成内容大数据和AI应用问题:数据垄断、隐私泄露、平台审查3. Web3.0 (2020s-):读写拥有互联网 区块链技术支撑用户拥有数据和身份去中心化应用 (dApps)加密经济系统 Web3的核心技术架构区块链:Web3的基石区块链是Web3的核心基础设施,它提供了: 去中心化:无单一控制点 不可篡改:数据永久记录 透明性:公开可验证 安全性:加密算法保护 123456789...
jenkins三种部署方式
Jenkins 是一款开源 CI&CD 软件 持续集成(CI)123持续集成是指多名开发这在开发不同功能代码的过程中,可以频繁的将代码合并到一起并且相互不影响工作。持续集成是在版本控制的基础上,通过频繁的代码提交、自动化构建和单元测试加快集成周期和问题反馈速度,从而及时验证系统可用性。为了保证后续的系统质量,在持续集成过程中,还会加入代码规范扫描、安全漏洞扫描、集成测试等活动,用来保证代码形成过程符合质量要求。持续集成的频率达到每天多次、频繁的集成,可以提前发现问题尽早解决冲突,使后续的持续集成更顺畅。 持续部署(CD)123持续部署是基于某种工具或者平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表一个开发团队的更新迭代速率。持续部署并不特指通过质量验证的制品自动部署到生产环境的特定环节。在持续集成过程中不断生成可执行的制品,需要尽快验证是否存在功能性能等方面的问题,或者尽可能快速的让最终用户可以使用这些功能。通过持续部署到测试环境、准生成环境中,可以使测试团队尽快开始测试,开发团队获得快速的反馈并响应。使研发和测试的协同加...
规则枚举
规则枚举一些简单的猜想实现,用来去除ifelse或者switch,虽然在jdk17中已经引入了新的switch语法,但是还是想做一些尝试 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849package com.tthk.inland.ticket.core.enums.czloworder;import lombok.AllArgsConstructor;import lombok.Getter;import java.util.Arrays;/** * @author Foam * @Description 枚举 * @date 2023/5/4 17:12 */@Getter@AllArgsConstructorpublic enum LowOrderEnums { UNLIMITED("枚举1"){ @Override public boolean check(Intege...
http工具类统一封装
http工具类统一封装 个人封装使用,仅供参考,用来捕获接口异常,并且通知到企业微信 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354package com.tthk.inland.ticket.core.utils.https;import cn.hutool.http.HttpRequest;import cn.hutool.http.HttpResponse;import com.alibaba.fastjson.JSONObject;import com.tthk.framework.base.api.dto.CommonResult;import com.tthk.inland.ticket.core.enums.result.ResulEnum;import com.tthk.inland.ticket.core.enums.wechat.WeChatEnums;import com.tthk.inland.ticke...
