- 博客(45)
- 资源 (3)
- 收藏
- 关注
原创 (5)Java内存模型的happens-before规则及其增强
Java内存模型的happens-before规则为多线程编程提供了清晰的内存可见性保证。随着Java版本的更新,JMM不断得到增强,特别是Java 9引入的VarHandle机制和Java 21正式发布的虚拟线程,为开发者提供了更强大、更灵活的并发编程工具,同时保持了对happens-before规则的兼容。这些增强使得Java在保证内存安全的同时,能够更好地适应现代多核处理器架构,提高并发程序的性能和可靠性。
2025-05-21 10:16:43
244
原创 (4)Java虚拟线程与传统线程对比
Project Loom虚拟线程通过轻量级内存模型和高效调度机制,从根本上解决了传统线程的资源瓶颈。虚拟线程特别适合I/O密集型应用,能以极低资源成本支持百万级并发。设计百万级并发服务需综合考虑虚拟线程技术、I/O优化、资源管理、内存优化、架构设计、监控限流、数据层优化和缓存策略等多方面因素,通过合理组合这些技术,可构建高性能、高可靠的大规模并发系统。
2025-05-20 15:32:33
623
原创 (3) Java 模块系统(JPMS)的设计哲学
问题类型描述版本冲突当类路径上存在同一个库的多个版本时,JVM只会加载找到的第一个版本,可能导致不兼容问题隐式依赖类路径机制没有提供明确声明依赖关系的方式,导致运行时可能出现意外的类缺失封装性差无法有效隐藏内部API,所有公共类都可被访问脆弱的部署难以确保所有必要的JAR都在类路径上,且顺序正确启动性能问题JVM需要扫描整个类路径来查找类Java模块系统(JPMS)的设计哲学围绕着强封装性可靠配置平台模块化和可扩展性展开。
2025-05-20 09:58:24
205
原创 (2)JVM 内存模型更新与 G1 垃圾收集器优化
Java 17 中的 JVM 内存模型更新主要围绕更好的容器适配性、更高效的内存管理和更低的延迟进行了优化。在容器化环境中优化 G1 垃圾收集器,关键是理解容器资源限制,并据此调整 GC 策略,平衡吞吐量、延迟和内存占用。最佳实践是从保守配置开始,通过监控实际 GC 行为,逐步调整参数以达到最佳性能。🚀Java 17 的内存模型更新为容器化环境带来了显著的性能提升,掌握这些优化技巧将使你的应用在云原生环境中运行更加高效。🚀💡。
2025-05-20 09:30:20
647
原创 Elasticsearch 集群管理秘籍 [特殊字符]
原理理解🧠选举算法法定票数计算实战经验💪参数调优脑裂处理架构能力🏗️跨机房设计角色分离延伸问题“如何安全更换Master节点?”(答案:先排除旧节点,再滚动重启新节点)“8.x版本为什么移除?”(答案:改用简化配置)💡记住:一个好的ES集群设计可以让你少掉几根头发💡。
2025-05-18 10:00:00
613
原创 Elasticsearch 的Script_Score 终极指南
核心能力🧠脚本编写分数合并策略性能意识⚡避免循环/字符串操作预计算优化工程思维🏗️脚本安全管理灰度发布延伸问题“如何对结果做归一化处理?”(答案:使用script返回painless脚本与Groovy脚本的主要区别?”(答案:Painless更安全且性能更好)💡记住:好的脚本让搜索更智能,糟糕的脚本让集群更崩溃💡。
2025-05-18 10:00:00
774
原创 Elasticsearch 性能优化面试宝典
本文是Elasticsearch性能优化的面试宝典,涵盖了设计调优、写入调优、查询调优和综合设计四个主要方向。文章通过具体的面试题目和详细解答,帮助候选人深入理解如何在不同的场景下优化Elasticsearch的性能。设计调优部分讨论了索引设计、分片策略、Mapping优化和生命周期管理;写入调优部分则聚焦于高并发写入、Bulk API使用和写入一致性保障;查询调优部分则探讨了深度分页、聚合查询的优化策略;最后,综合设计部分展示了如何在一个电商平台中实现高性能的写入、查询和统计。通过这些内容,候选人可以全面
2025-05-17 15:18:41
936
原创 Elasticsearch Fetch阶段面试题
Elasticsearch的Fetch阶段是分布式搜索中的关键环节,主要用于从分片获取完整文档内容。其设计将搜索过程分为Query和Fetch两个阶段,以减少网络传输和优化并行处理。在Fetch阶段,性能优化尤为重要,常见手段包括Source Filtering、DocValue Fields和分页控制,以降低数据传输量和提升查询效率。错误排查时,需关注大字段、分片不均衡和字段过滤缺失等问题,并通过限制返回字段、检查分片均衡和优化字段存储来解决。场景设计中,合理使用字段过滤、存储结构优化和缓存策略,可确保高
2025-05-17 15:06:59
883
原创 ElasticSearch 8.x新特性面试题
原理理解🧠Async Search、Bulk 异步化等机制实战能力💪错误处理性能调优架构设计API 熟练度🛠️Java 客户端的使用(如延伸问题“如何监控异步任务的资源占用?”(答案:通过和_tasksAPI)“异步写入如何避免数据丢失?”(答案:结合Translog和flush机制)
2025-05-17 11:22:46
1306
原创 Elasticsearch 查询与过滤(Query vs. Filter)面试题
概念理解🧩query与filter的本质区别性能优化⚡缓存机制条件拆分实战设计🛠️混合使用query和filter解决复杂需求排错能力🔍识别错误用法并提出改进方案延伸问题“如何强制某个filter条件不使用缓存?”(答案:设置filter缓存的生命周期是如何管理的?”(答案:随Segment生命周期存在,默认不失效,除非数据变更)
2025-05-17 10:15:36
1758
原创 Elasticsearch 分词与字段类型(keyword vs. text)面试题
👉 查看参考答案通过analyzer和"my_analyzer": { // 自定义分词器},"analyzer": "my_analyzer", // 写入时分词"search_analyzer": "simple" // 搜索时分词(可选)写入时:“Hello World” →(移除停用词并小写)搜索时:若使用 simple 分词器,查询词也会被简单拆分keyword:精确值、聚合、排序,不分词 🎯text:全文检索,写入时分词,搜索时按分词匹配 🔎关键区别。
2025-05-16 11:35:49
1455
原创 Elasticsearch倒排索引核心原理面试题
原理理解🧩 - 结构、搜索流程、扩展功能(位置、高亮)实战能力💪 - 性能优化、问题排查、同义词/纠错实现底层思维🔍 - 数据结构选择、资源权衡。
2025-05-16 11:08:31
775
原创 Elasticsearch 分片机制高频面试题(含参考答案)
本套面试题围绕Elasticsearch 分片机制能力维度考察点基础概念分片 vs 副本、路由规则、分片数影响实践经验分片策略设计、问题排查与调整手段原理理解分片对读写性能的影响机制场景设计结合业务需求合理规划分片与副本。
2025-05-15 16:48:49
790
原创 Elasticsearch 常用语法手册
本文为Elasticsearch常用语法手册,涵盖了索引操作、文档操作、查询操作、聚合查询、健康与状态查看等内容。索引操作部分介绍了如何创建、查询、修改和删除索引,以及如何添加IK分词器。文档操作部分包括添加、查询、更新和删除文档的语法。查询操作部分详细说明了条件查询、短语匹配、过滤器查询和高亮显示的使用方法。聚合查询部分介绍了terms和avg聚合的语法。
2025-05-15 16:16:52
276
原创 Elasticsearch相关面试题
1. 基于Lucene底层引擎:ES的核心搜索能力依赖于Apache Lucene库。Lucene是一个高性能、功能强大的全文检索工具包,提供了倒排索引、分词、评分机制等核心搜索功能。扩展封装:ES在Lucene基础上进行了分布式和高可用性封装,简化了Lucene的复杂API,使其更易用。2. RestfulHTTP接口:ES提供基于HTTP协议的RESTful API,用户可以通过简单的JSON请求实现索引管理、搜索和集群操作,无需依赖特定客户端。
2025-05-15 15:40:33
563
原创 ES8.x基础知识学习提纲
Elasticsearch是基于Lucene的Restful分布式实时全文搜索引擎,能快速存储、搜索和分析海量数据。(面试题)基本特点:分布式、高扩展性、实时数据分析能力等。数据模型:使用JSON作为文档序列化格式,支持多种数据类型,数据存储在索引中。查询和分析API:提供丰富的查询和分析方式,如全文搜索、结构化搜索等。应用场景:全文搜索、日志分析、实时监控、商业BI系统等。
2025-05-15 15:38:38
749
原创 解决:(坑)MyBatis 分页插件 PageHelper 每页记录数 和总记录数 一样问题
解决:(坑)MyBatis 分页插件 PageHelper 每页记录数 和总记录数 一样问题
2022-10-10 16:32:04
1101
原创 解决 : c# 执行拼接sql
c# 执行拼接sql通过 string 进行 字符串拼接 组成两个sql 语句添加到list 中执行sql public bool DAddTransportationRoute(string fSqlConnectString, MT_RouteTransportation model) { try { ArrayList list = new ArrayList();
2022-05-26 09:39:38
1647
原创 解决: c# dataTable添加列 添加平均值
c# dataTable添加列 添加平均值原因: 导出excel 中缺少字段 “平均值” ,是sql 查询中返回的datatable 没有该字段,只能后计算添加1.添加列 System.Data.DataColumn column = new DataColumn("FAvgDay", typeof(int)); dt.Columns.Add(column);2.然后遍历每个row,遍历每行各列 求和 最后求平均值 完成赋
2022-05-26 09:33:03
919
原创 springboot 多数据源配置
springboot 多数据源配置yml文件修改多数据源spring: datasource: dynamic: primary: master # 配置默认数据库 # master master: #基本属性 jdbc-url: jdbc:mysql://183.2.181.238:3306/jointcloud_login?useUnicode=true&characterEncoding=utf-8&use
2022-05-20 14:13:44
1669
原创 记:Visual Studio 快捷键
刚接触 visual studio 先记下快捷键 ,可能有些不全,后续发现会补上项目相关Ctrl + Shift + B生成项目Ctrl + Alt + L显示Solution Explorer(解决方案资源管理器)Shift +Alt + C添加新类Shift + Alt + A添加新项目到项目编辑相关Ctrl + Enter在当前行插入空行Ctrl+Shift + Enter当前行下方插入空行Ctrl +.
2022-04-24 12:04:16
320
原创 解决: C# 多个dataTable添加到 dataSet中
解决: C# 多个dataTable添加到 dataSet中项目中用到 查询多个结果集此处调用多个sql语句 返回多个dataTable 后进行封装成一个dataSet ,然后返回先定义 多个dataTable 和一个返回dataSet DataSet ds = new DataSet(); DataTable dt0 = new DataTable(); DataTable dt1 = new DataTable
2022-04-20 12:10:38
3861
原创 Supervisor客户端命令
supervisor 的常用命令supervisor客户端命令supervisorctl status // 查看进程运行状态supervisorctl start 进程名 //启动进程supervisorctl start laravel-worker:* // 批量启动进程supervisorctl stop 进程名 //关闭进程supervisorctl restart 进程名 //重启进程supervisorctl update // 重新载入配置文件supervis.
2022-04-20 11:20:28
447
原创 记: SQLSERVER 调用存储过程命令 两种方式
记: SQLSERVER 调用存储过程命令 两种方式第一种:EXEC [dbo].[p_Web_Query_Report_LBSTrackPoints]@FAgentGUID='25a48ca5-a844-4732-8af4-afa2a9d5c6dc',@FStartTime ='2022-04-13 16:00:00',@FEndTime ='2022-04-15 15:59:59',@FTableDate ='20220413,20220414,20220415'查询结果第二种
2022-04-16 17:05:29
5976
原创 解决:windows 开启 telnet
解决: windows 系统 开启Telnet打开windows系统的控制面板找到控制面板中的程序单机启用或关闭windows系统找到并勾选TelnetClient验证 是否开启成功telnet ip 端口号例: telnet 192.168.1.1 8080注: telnet 与 ping 区别telnet 是TCP协议,ping 是ICMP协议;telnet用来检测端口是否开放 ; ping 用来检测网络是否畅通,数
2022-04-16 16:38:24
415
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人