- 博客(18)
- 资源 (2)
- 收藏
- 关注
原创 java导入excel列表时读取里面的图片(只适用于浮动图片,嵌入的需解析xml比较麻烦),兼容03与07两版本
摘要:本文介绍了从Excel文件中提取图片并上传到服务器的实现方法。代码支持处理2003和2007版本的Excel文件,使用POI库读取图片数据,根据行列编号命名图片文件,并将本地存储的图片上传到FastDFS文件服务器。主要流程包括:1)判断Excel版本;2)获取图片数据并保存到本地;3)上传到文件服务器获取URL;4)将图片URL与Excel行数据匹配。代码中使用了Hutool工具类进行Excel读取和文件操作。
2025-07-16 16:06:40
53
原创 调整elasticsearch分词器,达到like搜索效果 -基于elasticsearch 6.8
摘要:本文介绍了在Elasticsearch 6.8中如何将Standard分词器替换为keyword分词器以实现类似MySQL的LIKE搜索功能。主要步骤包括:1)创建新索引并设置keyword分词器;2)通过_reindex复制数据;3)删除旧索引;4)建立别名。文章提供了详细的DSL操作示例,包括索引创建、数据迁移、别名管理和常见问题处理(如日期类型设置和fielddata异常解决)。同时建议参考官方文档学习更多ES知识,并展示了字段分析、查询测试等实用操作命令。
2025-07-16 15:25:33
181
原创 java异常报警发送钉钉群
本文介绍了Spring Boot WebFlux项目中实现异常监控和报警的解决方案。首先通过自定义注解@ServiceJobExcepCatch标记需要监控的方法,然后使用切面编程在Service层捕获异常。当异常发生时,系统会通过WebClient调用钉钉机器人API发送告警信息,告警内容包含异常详情、环境信息等。该方案主要包括三个部分:1)自定义注解定义监控范围;2)切面处理捕获异常;3)WebFlux方式实现告警推送。这种实现方式既能保证业务逻辑的完整性,又能及时通知开发人员处理异常。
2025-07-15 17:51:38
110
原创 Mysql优化
本文主要介绍了MySQL死锁优化的方法:1)通过show processlist查看进程,生成并执行杀连接命令;2)优化频繁执行的SQL语句;3)调整Druid连接池参数,包括扩大max-active、设置连接检测机制等。此外还提供了内存优化方案:修改innodb_buffer_pool_size配置并重启MySQL。最后介绍了通过navicat修改root密码的步骤。这些优化措施可以有效解决数据库死锁问题,提升系统性能。
2025-07-15 17:47:48
361
原创 cron脚本清理服务器大文件日志
本文介绍了一种使用Shell脚本自动清理服务器日志的方法。主要步骤包括:1)通过crontab设置定时任务(如每分钟或每天6点执行);2)创建cleanlog.sh脚本,包含清理指定目录下日志文件的操作;3)建立日志文件记录清理过程。脚本功能包括跳转目标目录、清空日志文件(web.log/web1.log/web2.log)以及记录执行时间。文章还提到可通过crontab -l查看任务,并建议未来可扩展时间判断和路径循环功能。该方法实现了日志清理自动化,避免了手动操作。
2025-07-15 17:46:13
71
原创 mysql5.6切到5.7(阿里云RDS换到自建库)
3.如果直接下载的是 mysql-5.7.35-linux-glibc2.12-x86_64.tar ,这样tar结尾的文件需要先 tar -xvf mysql-5.7.35-linux-glibc2.12-x86_64.tar, 然后发现这是一个大包里面有.gz文件,再tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz。出于成本考虑,把阿里云RDS换到自己搭建的库了,版本顺便也升级下,从5.6到5.7,特此记录。注意=的空格 ,参考。
2025-07-15 17:42:52
475
原创 Git常见问题
Git常用命令与游离状态解决方案 Git常用命令包括分支管理(创建/切换/删除/合并)、远程操作(推送/删除远程分支)和版本控制(回滚/撤销提交)。重点介绍了cherry-pick的使用方法和冲突解决技巧。 针对游离状态(detached HEAD),提供了完整解决方案: 获取远程分支 创建本地分支跟踪远程分支 创建临时分支保存游离状态提交 合并到主分支并推送 清理临时分支 该方案解决了传统方法无法切换到主分支的问题,通过完整步骤实现游离状态的恢复。
2025-07-15 17:41:03
327
原创 Neo4j使用命令
本文摘要了Neo4j图数据库的基本操作命令,包括:1) 节点创建与约束设置(CREATE CONSTRAINT、CREATE);2) 查询操作(MATCH、WHERE条件、正则、排序分页);3) 关系操作(创建/修改/删除节点间关系);4) 属性操作(SET、REMOVE);5) 删除操作(DELETE节点和关系);6) 高级查询(WITH管道、MERGE合并、路径查询*0..2);7) 约束管理(CREATE/DROP CONSTRAINT);8) 统计和分组(COUNT、DISTINCT)。这些命令涵
2025-07-15 17:38:41
167
原创 prometheus使用四(alertmanager&grafana告警及服务发现)
本文介绍了Prometheus的告警配置与自动服务发现功能。在告警方面,详细讲解了Alertmanager的安装、配置邮件/微信告警规则,以及Grafana的简易告警设置;在服务发现方面,重点说明基于Consul和文件两种方式的自动服务发现机制,包括Consul注册中心的配置和Prometheus的对接方法,以及通过文件动态更新监控目标的实现方案。两种告警方式各具特点(复杂灵活vs简单多样),两种服务发现方式(Consul动态发现vs文件静态配置)可根据实际需求选择使用,为构建完整的监控告警体系提供了实现方
2025-07-15 17:35:16
667
原创 prometheus使用三(自定义监控指标实现)
p90或p99 histogram_quantile(0.9, sum(rate(histogram_bucket[5m])) by (le)) 等等。prometheus提供了一系列的export帮助采集各种容器和中间件的运行指标,但有时我们还需要更灵活的监控指标,介绍一下自定义监控指标。然后在prometheus的prometheus.yml上配置一个job,参数prometheus二中方法配置即可。本文用来监控dubbo的服务提供者的被调用指标,包括调用次数,p99等。service层如下。
2025-07-15 17:32:25
256
原创 prometheus使用二(export与grafana接入)
export是prometheus的监控组件,搜集好数据给prometheus,然后通过grafana展示。
2025-07-15 17:28:55
409
原创 Prometheus安装使用一
Prometheus是一款开源的云原生监控系统,相比传统监控工具(如Nagios、Zabbix)具有显著优势:单二进制文件部署、易管理、高性能(每秒处理数十万数据点)、支持多语言客户端、良好可视化(支持Prometheus UI、Grafana等)。它更适合监控业务指标和容器,而APM专注于服务链路监控。安装简单,通过下载解压即可运行。配置文件包含全局设置、告警管理、规则定义和监控目标配置。启动后可通过9090端口访问Web界面,提供强大的监控数据查询和可视化功能。
2025-07-15 17:26:58
499
原创 常用工具和命令
摘要:本文整理了多种技术场景的实用操作指南,包括:1) Lua批量删除Redis键;2) Git冲突解决方法;3) Tomcat免项目名访问配置;4) Guava核心库使用;5) Log4j SQL日志配置;6) Linux端口查看命令;7) 清空Catalina.out日志;8) Redis执行Lua脚本;9) Eclipse同时执行Maven clean与install;10) 彻底清空数据库表。这些方法涵盖了开发运维中的常见需求,提供快速解决方案参考。
2025-07-15 17:21:41
651
原创 Redis迁移复制数据,主从关系建立实践
本文介绍了Redis主从数据复制的操作步骤。首先在从服务器执行slaveof命令配置主服务器IP,若同步失败需检查日志,常见问题是主服务器需要密码验证。解决方法是配置主服务器密码后重启从服务。同步完成后可使用slaveof noone解除主从关系,使从服务器变为主服务器。不同Redis版本间(如3.2.10和4.0.11)的主从复制可以正常进行。文中特别强调了密码配置的关键性,提醒这是许多教程忽略的重要细节。
2025-07-15 17:16:06
127
原创 SpringAOP的自定义注解实践
摘要:本文介绍了使用SpringAOP实现自定义注解进行权限校验的方法。通过定义@Authority注解和切面类AuthorityAspect,实现Controller方法的前置权限验证。重点讲解了如何通过@Before注解拦截带权限注解的方法,获取请求参数进行权限判断,并处理无权限情况。文章还指出配置文件中需要同时添加aop:aspectj-autoproxy才能生效,并说明多个相同注解的执行顺序问题。这种AOP方式具有配置灵活、复用性强、无性能损耗等优点,比拦截器更方便实用。
2025-07-15 17:13:07
312
原创 Redis分布式锁实践
本文介绍了Redis分布式锁的实现方案,重点讲解了基于Lua脚本的手动实现方法。针对多实例并发场景下用户年龄修改的数据一致性问题,通过对比无锁时32个并发线程导致年龄被减为-2的情况,展示了分布式锁的必要性。具体实现采用UUID作为锁标识,配合200ms自动过期机制防止死锁,并使用Lua脚本保证解锁操作的原子性。测试结果表明该方案有效防止了并发问题,最后建议在生产环境中按用户ID分锁以提高并发效率,并指出单实例Redis更适合实现此类锁机制。
2025-07-15 17:09:05
466
原创 nginx使用
nginx中有六种动态内置变量,分别是“http_”、“sent_http_”、“upstream_http_”、“upstream_cookie”、“cookie_”,“arg_”。目前在nginx的http模块中有六种内置动态变量,分别是“http_”、“sent_http_”、“upstream_http_”、“upstream_cookie”、“cookie_”,“arg_”sudo nginx -c /usr/local/etc/nginx/nginx.conf # 停止后的启动。
2025-07-15 16:50:11
718
原创 字典传值传统实现
在以前的项目中所认知的字典联动传值都是点击AJAX二次请求,或者是DWR的,今天为了减少一次请求,特地来了来了个一次传值。于是开始了折腾之路。 字典A是select项目 类型,字典B是项目类型子项,A改变,B也跟着相应的改变,前面值变化影响后面,这是项目中应用非常非常多的场景。我首先写了后台sql,DB2数据库,select a.id,a.TITLE,
2016-11-29 22:53:59
446
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人